rendered paste bodyseg000:00894FB0 gg_piperecvhandler proc near ; CODE XREF: sub_892720+1733p
seg000:00894FB0 ; StartAddress+34p ...
seg000:00894FB0
seg000:00894FB0 arg_0 = dword ptr 4
seg000:00894FB0 arg_4 = byte ptr 8
seg000:00894FB0 arg_8 = dword ptr 0Ch
seg000:00894FB0
seg000:00894FB0 mov eax, ds:dword_C67A54
seg000:00894FB5 push esi
seg000:00894FB6 mov esi, dword ptr [esp+4+arg_4]
seg000:00894FBA push edi
seg000:00894FBB mov edi, [esp+8+arg_8]
seg000:00894FBF test eax, eax
seg000:00894FC1 jz short loc_894FE9
seg000:00894FC3 push edi
seg000:00894FC4 push esi ; char
seg000:00894FC5 push offset unk_9BB834
seg000:00894FCA call sub_899CE0
seg000:00894FCF add esp, 4
seg000:00894FD2 push eax ; char *
seg000:00894FD3 mov eax, ds:dword_C67A54
seg000:00894FD8 add eax, 20h
seg000:00894FDB push eax ; int
seg000:00894FDC call sub_894100
seg000:00894FE1 mov eax, ds:dword_C67A54
seg000:00894FE6 add esp, 10h
seg000:00894FE9
seg000:00894FE9 loc_894FE9: ; CODE XREF: gg_piperecvhandler+11j
seg000:00894FE9 lea ecx, [esi-60Fh]
seg000:00894FEF cmp ecx, 2Bh
seg000:00894FF2 ja loc_89526F
seg000:00894FF8 xor edx, edx
seg000:00894FFA mov dl, ds:byte_8952D4[ecx]
seg000:00895000 jmp ds:off_89529C[edx*4]
seg000:00895007
seg000:00895007 loc_895007: ; DATA XREF: seg000:off_89529Co
seg000:00895007 mov cl, [eax]
seg000:00895009 mov esi, 3E9h
seg000:0089500E test cl, cl
seg000:00895010
seg000:00895010 loc_895010: ; CODE XREF: gg_piperecvhandler+17Bj
seg000:00895010 ; gg_piperecvhandler+1A5j ...
seg000:00895010 jnz short loc_895090
seg000:00895012 mov [eax+8], esi
seg000:00895015 mov eax, ds:dword_C67A54
seg000:0089501A mov [eax+0Ch], edi
seg000:0089501D pop edi
seg000:0089501E mov al, 1
seg000:00895020 pop esi
seg000:00895021 retn 0Ch
seg000:00895024 ; ---------------------------------------------------------------------------
seg000:00895024
seg000:00895024 loc_895024: ; CODE XREF: gg_piperecvhandler+50j
seg000:00895024 ; DATA XREF: seg000:008952A0o
seg000:00895024 mov cl, [eax]
seg000:00895026 mov esi, 3EAh
seg000:0089502B test cl, cl
seg000:0089502D
seg000:0089502D loc_89502D: ; CODE XREF: gg_piperecvhandler+18Aj
seg000:0089502D ; gg_piperecvhandler+1B9j ...
seg000:0089502D jnz short loc_895090
seg000:0089502F mov [eax+8], esi
seg000:00895032 mov ecx, ds:dword_C67A54
seg000:00895038 mov al, 1
seg000:0089503A mov [ecx+0Ch], edi
seg000:0089503D pop edi
seg000:0089503E pop esi
seg000:0089503F retn 0Ch
seg000:00895042 ; ---------------------------------------------------------------------------
seg000:00895042
seg000:00895042 loc_895042: ; CODE XREF: gg_piperecvhandler+50j
seg000:00895042 ; DATA XREF: seg000:008952A8o
seg000:00895042 mov eax, ds:dword_9BAC3C
seg000:00895047 lea eax, [eax+eax*4]
seg000:0089504A lea edx, [eax+eax*4]
seg000:0089504D shl edx, 5
seg000:00895050 cmp edi, edx
seg000:00895052 jb loc_89511A
seg000:00895058 call sub_8959E0
seg000:0089505D call sub_895AC0
seg000:00895062 mov eax, ds:dword_C67A54
seg000:00895067 test eax, eax
seg000:00895069 jz short loc_89508B
seg000:0089506B push edi ; char
seg000:0089506C push offset unk_9BB81C
seg000:00895071 call sub_899CE0
seg000:00895076 add esp, 4
seg000:00895079 push eax ; char *
seg000:0089507A mov eax, ds:dword_C67A54
seg000:0089507F add eax, 20h
seg000:00895082 push eax ; int
seg000:00895083 call sub_894100
seg000:00895088 add esp, 0Ch
seg000:0089508B
seg000:0089508B loc_89508B: ; CODE XREF: gg_piperecvhandler+B9j
seg000:0089508B mov esi, 3E9h
seg000:00895090
seg000:00895090 loc_895090: ; CODE XREF: gg_piperecvhandler:loc_895010j
seg000:00895090 ; gg_piperecvhandler:loc_89502Dj ...
seg000:00895090 push edi
seg000:00895091 push esi
seg000:00895092 call gg_piperror
seg000:00895097 test eax, eax
seg000:00895099 jnz short loc_89511A
seg000:0089509B mov eax, ds:dword_C67A54
seg000:008950A0 test eax, eax
seg000:008950A2 jz short loc_8950C6
seg000:008950A4 push edi
seg000:008950A5 push esi ; char
seg000:008950A6 push offset unk_9BB7FC
seg000:008950AB call sub_899CE0
seg000:008950B0 mov edx, ds:dword_C67A54
seg000:008950B6 add esp, 4
seg000:008950B9 add edx, 20h
seg000:008950BC push eax ; char *
seg000:008950BD push edx ; int
seg000:008950BE call sub_894100
seg000:008950C3 add esp, 10h
seg000:008950C6
seg000:008950C6 loc_8950C6: ; CODE XREF: gg_piperecvhandler+F2j
seg000:008950C6 mov eax, ds:dword_C67A54
seg000:008950CB pop edi
seg000:008950CC pop esi
seg000:008950CD mov byte ptr [eax+1Fh], 1
seg000:008950D1 xor al, al
seg000:008950D3 retn 0Ch
seg000:008950D6 ; ---------------------------------------------------------------------------
seg000:008950D6
seg000:008950D6 loc_8950D6: ; CODE XREF: gg_piperecvhandler+50j
seg000:008950D6 ; DATA XREF: seg000:008952CCo
seg000:008950D6 test eax, eax
seg000:008950D8 jz short loc_8950FB
seg000:008950DA push edi ; char
seg000:008950DB push offset unk_9BB7E8
seg000:008950E0 call sub_899CE0
seg000:008950E5 mov ecx, ds:dword_C67A54
seg000:008950EB add esp, 4
seg000:008950EE add ecx, 20h
seg000:008950F1 push eax ; char *
seg000:008950F2 push ecx ; int
seg000:008950F3 call sub_894100
seg000:008950F8 add esp, 0Ch
seg000:008950FB
seg000:008950FB loc_8950FB: ; CODE XREF: gg_piperecvhandler+128j
seg000:008950FB mov esi, 3F8h
seg000:00895100 jmp short loc_895090
seg000:00895102 ; ---------------------------------------------------------------------------
seg000:00895102
seg000:00895102 loc_895102: ; CODE XREF: gg_piperecvhandler+50j
seg000:00895102 ; DATA XREF: seg000:008952B0o
seg000:00895102 mov esi, 3F3h
seg000:00895107
seg000:00895107 loc_895107: ; CODE XREF: gg_piperecvhandler+194j
seg000:00895107 mov ecx, [eax+4]
seg000:0089510A test ecx, ecx
seg000:0089510C jnz short loc_895090
seg000:0089510E mov [eax+8], esi
seg000:00895111 mov edx, ds:dword_C67A54
seg000:00895117 mov [edx+0Ch], edi
seg000:0089511A
seg000:0089511A loc_89511A: ; CODE XREF: gg_piperecvhandler+A2j
seg000:0089511A ; gg_piperecvhandler+E9j ...
seg000:0089511A pop edi
seg000:0089511B mov al, 1
seg000:0089511D pop esi
seg000:0089511E retn 0Ch
seg000:00895121 ; ---------------------------------------------------------------------------
seg000:00895121
seg000:00895121 loc_895121: ; CODE XREF: gg_piperecvhandler+50j
seg000:00895121 ; DATA XREF: seg000:008952B4o
seg000:00895121 mov ecx, [eax+4]
seg000:00895124 mov esi, 3F4h
seg000:00895129 test ecx, ecx
seg000:0089512B jmp loc_895010
seg000:00895130 ; ---------------------------------------------------------------------------
seg000:00895130
seg000:00895130 loc_895130: ; CODE XREF: gg_piperecvhandler+50j
seg000:00895130 ; DATA XREF: seg000:008952B8o
seg000:00895130 mov ecx, [eax+4]
seg000:00895133 mov esi, 3F5h
seg000:00895138 test ecx, ecx
seg000:0089513A jmp loc_89502D
seg000:0089513F ; ---------------------------------------------------------------------------
seg000:0089513F
seg000:0089513F loc_89513F: ; CODE XREF: gg_piperecvhandler+50j
seg000:0089513F ; DATA XREF: seg000:008952BCo
seg000:0089513F mov esi, 3F7h
seg000:00895144 jmp short loc_895107
seg000:00895146 ; ---------------------------------------------------------------------------
seg000:00895146
seg000:00895146 loc_895146: ; CODE XREF: gg_piperecvhandler+50j
seg000:00895146 ; DATA XREF: seg000:008952C0o
seg000:00895146 mov ecx, [eax+4]
seg000:00895149 mov esi, 3F6h
seg000:0089514E mov edi, 0D2h
seg000:00895153 test ecx, ecx
seg000:00895155 jmp loc_895010
seg000:0089515A ; ---------------------------------------------------------------------------
seg000:0089515A
seg000:0089515A loc_89515A: ; CODE XREF: gg_piperecvhandler+50j
seg000:0089515A ; DATA XREF: seg000:008952C4o
seg000:0089515A mov ecx, [eax+4]
seg000:0089515D mov esi, 3F6h
seg000:00895162 mov edi, 0DCh
seg000:00895167 test ecx, ecx
seg000:00895169 jmp loc_89502D
seg000:0089516E ; ---------------------------------------------------------------------------
seg000:0089516E
seg000:0089516E loc_89516E: ; CODE XREF: gg_piperecvhandler+50j
seg000:0089516E ; DATA XREF: seg000:008952C8o
seg000:0089516E mov ecx, [eax+4]
seg000:00895171 mov esi, 3F6h
seg000:00895176 test ecx, ecx
seg000:00895178 mov edi, 0E6h
seg000:0089517D jnz loc_895090
seg000:00895183 mov [eax+8], esi
seg000:00895186 mov edx, ds:dword_C67A54
seg000:0089518C mov al, 1
seg000:0089518E mov [edx+0Ch], edi
seg000:00895191 pop edi
seg000:00895192 pop esi
seg000:00895193 retn 0Ch ; char
seg000:00895196 ; ---------------------------------------------------------------------------
seg000:00895196
seg000:00895196 loc_895196: ; CODE XREF: gg_piperecvhandler+50j
seg000:00895196 ; DATA XREF: seg000:008952ACo
seg000:00895196 mov ecx, [esp+8+arg_0]
seg000:0089519A call sub_8992B0
seg000:0089519F mov edi, eax
seg000:008951A1 mov esi, 3F9h
seg000:008951A6 jmp loc_895090
seg000:008951AB ; ---------------------------------------------------------------------------
seg000:008951AB
seg000:008951AB loc_8951AB: ; CODE XREF: gg_piperecvhandler+50j
seg000:008951AB ; DATA XREF: seg000:008952A4o
seg000:008951AB mov ecx, ds:dword_C67A48
seg000:008951B1 mov ds:dword_C67A38, edi
seg000:008951B7 test ecx, ecx
seg000:008951B9 jnz short loc_895223
seg000:008951BB mov ds:dword_C67A48, edi
seg000:008951C1
seg000:008951C1 loc_8951C1: ; CODE XREF: gg_piperecvhandler+275j
seg000:008951C1 push 1
seg000:008951C3 push 1
seg000:008951C5 push 0Ah
seg000:008951C7 push 7D5h
seg000:008951CC push offset ApplicationName
seg000:008951D1 call sub_896550
seg000:008951D6 add esp, 14h
seg000:008951D9 test al, al
seg000:008951DB jnz loc_89511A
seg000:008951E1 mov eax, ds:dword_C67A54
seg000:008951E6 test eax, eax
seg000:008951E8 jz short loc_89520F
seg000:008951EA push offset unk_9BB7D4
seg000:008951EF call sub_899CE0
seg000:008951F4 mov edx, ds:dword_C67A54
seg000:008951FA add esp, 4
seg000:008951FD add edx, 20h
seg000:00895200 push eax ; char *
seg000:00895201 push edx ; int
seg000:00895202 call sub_894100
seg000:00895207 mov eax, ds:dword_C67A54
seg000:0089520C add esp, 8
seg000:0089520F
seg000:0089520F loc_89520F: ; CODE XREF: gg_piperecvhandler+238j
seg000:0089520F mov ecx, [eax+4]
seg000:00895212 mov esi, 3F6h
seg000:00895217 mov edi, 0E6h
seg000:0089521C test ecx, ecx
seg000:0089521E jmp loc_895010
seg000:00895223 ; ---------------------------------------------------------------------------
seg000:00895223
seg000:00895223 loc_895223: ; CODE XREF: gg_piperecvhandler+209j
seg000:00895223 cmp edi, ecx
seg000:00895225 jz short loc_8951C1
seg000:00895227 test eax, eax
seg000:00895229 jz short loc_895251
seg000:0089522B push ecx
seg000:0089522C push edi ; char
seg000:0089522D push offset unk_9BB7AC
seg000:00895232 call sub_899CE0
seg000:00895237 add esp, 4
seg000:0089523A push eax ; char *
seg000:0089523B mov eax, ds:dword_C67A54
seg000:00895240 add eax, 20h
seg000:00895243 push eax ; int
seg000:00895244 call sub_894100
seg000:00895249 mov eax, ds:dword_C67A54
seg000:0089524E add esp, 10h
seg000:00895251
seg000:00895251 loc_895251: ; CODE XREF: gg_piperecvhandler+279j
seg000:00895251 mov ds:dword_C67A1C, 2
seg000:0089525B mov ecx, [eax+4]
seg000:0089525E mov esi, 3F6h
seg000:00895263 mov edi, 0E6h
seg000:00895268 test ecx, ecx
seg000:0089526A jmp loc_89502D
seg000:0089526F ; ---------------------------------------------------------------------------
seg000:0089526F
seg000:0089526F loc_89526F: ; CODE XREF: gg_piperecvhandler+42j
seg000:0089526F ; gg_piperecvhandler+50j
seg000:0089526F ; DATA XREF: ...
seg000:0089526F cmp esi, 1F4h
seg000:00895275 jnz short loc_89528B
seg000:00895277 mov ecx, [eax+4]
seg000:0089527A mov esi, 3F6h
seg000:0089527F mov edi, 1F4h
seg000:00895284 test ecx, ecx
seg000:00895286 jmp loc_89502D
seg000:0089528B ; ---------------------------------------------------------------------------
seg000:0089528B
seg000:0089528B loc_89528B: ; CODE XREF: gg_piperecvhandler+2C5j
seg000:0089528B mov ecx, [eax+4]
seg000:0089528E mov esi, 3E8h
seg000:00895293 test ecx, ecx
seg000:00895295 jmp loc_89502D
seg000:00895295 gg_piperecvhandler endp