Function at 0x494136
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x68
push ebx
push ebp
push edi
mov ebp, ecx
mov eax, edx
push 0xc
xor ebx, ebx
mov dword [esp + 0x1c], eax
pop ecx
mov edi, dword [ebp + eax*4 + 0x178]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], ecx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x38], ebx
cmp dword [esp + 0x7c], ecx
jl 0x494e2a
test edi, edi
je 0x494e2a
mov eax, dword [esp + 0x78]
xor ecx, ecx
push esi
push dword [esp + 0x80]
mov edx, eax
mov esi, dword [eax + 8]
mov dword [eax + 8], ebx
call fcn.00497da8
pop ecx
cmp esi, eax
jne 0x494e29
cmp dword [edi + 0xf8], ebx
je 0x493425
mov dword [edi + 0xf8], ebx
lea edx, [edi + 1]
mov ecx, dword [ebp + 0x28]
call fcn.00486d2e
mov ecx, dword [ebp + 0x28]
lea edx, [edi + 1]
push ebx
push 0x10aa
push 0x7247dc
push ebx
push 0x48fd28
push 0x3a98
call fcn.004868db
add esp, 0x18
lea esi, [edi + 0x7c]
mov ecx, esi
mov dword [esp + 0x4c], esi
call fcn.0044c7d2
mov ecx, dword [esp + 0x7c]
mov eax, dword [ecx + 4]
cmp dword [edi + 0x54], eax
je 0x493447
test eax, eax
jne 0x494e27
mov edx, dword [edi + 0xec]
lea ebp, [ecx + 0xc]
mov dword [esp + 0x28], edx
mov dword [edx + 8], ebx
mov dword [edx + 4], ebx
mov dword [edx], ebx
mov dword [edi + 0xf0], 0xc
test ebp, ebp
je 0x494de6
mov edx, dword [esp + 0x18]
lea eax, [edx + 4]
cmp eax, dword [esp + 0x80]
jg 0x494de2
cmp dword [esp + 0x58], 0
jne 0x494de2
mov al, byte [ebp]
mov byte [esp + 0x12], al
mov al, byte [ebp + 1]
mov byte [esp + 0x40], al
movzx eax, word [ebp + 2]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
movzx esi, ax
push 4
pop eax
cmp si, ax
jb 0x494ddf
mov ecx, dword [esp + 0x18]
mov eax, esi
mov dword [esp + 0x30], eax
add eax, ecx
cmp eax, dword [esp + 0x80]
jg 0x494ddf
movzx eax, byte [esp + 0x12]
mov edx, 0x82
cmp eax, edx
ja 0x494c1c
je 0x494501
cmp eax, 0xb
ja case.default.0x4934ef
jmp dword [eax*4 + 0x494e34]
mov ebp, dword [esp + 0x20]
cmp dword [ebp + 0x13c], ebx
je case.0x4934ef.2
cmp dword [edi + 0x78], 1
jne case.0x4934ef.2
push 1
push edi
mov dword [edi + 0x78], 2
push ebp
mov dword [edi + 0x7c], ebx
call dword [ebp + 0x13c]
mov eax, dword [esp + 0x28]
add esp, 0xc
mov eax, dword [ebp + eax*4 + 0x178]
test eax, eax
je 0x494e29
cmp dword [eax + 0x78], ebx
je 0x494e29
lea ecx, [edi + 0x7c]
call fcn.0044c7d2
mov ecx, dword [esp + 0x18]
push 0x14
pop eax
cmp si, ax
jb 0x494cff
cmp dword [esp + 0x1c], 0xffffffff
je 0x494cff
cmp dword [edi + 0x78], 1
jne 0x494cff
mov esi, dword [esp + 0x7c]
push dword [ecx + esi + 0x10]
call dword [sym.imp.WS2_32.dll_ntohl]
dec eax
mov ebp, ebx
push 0x14
mov dword [edi + 0x68], eax
mov dword [edi + 0x6c], eax
mov dword [edi + 0xa4], eax
pop eax
mov dword [esp + 0x48], ebp
cmp dword [esp + 0x30], eax
jbe 0x494cff
mov eax, dword [esp + 0x18]
add eax, esi
mov dword [esp + 0x44], eax
movzx eax, word [eax + ebp + 0x14]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
movzx esi, ax
mov eax, dword [esp + 0x44]
movzx eax, word [eax + ebp + 0x16]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
movzx ecx, ax
mov dword [esp + 0x38], ecx
cmp esi, 7
je 0x493633
cmp esi, 0x8008
je 0x4935f5
mov eax, 0xc000
cmp esi, eax
jne 0x493699
mov ecx, dword [edi + 0x88]
mov edx, eax
push 1
call fcn.00487972
pop ecx
jmp 0x493695
movzx eax, cx
mov esi, ebx
add eax, 0xfffffffc
mov dword [esp + 0x54], eax
test eax, eax
jle 0x493699
add ebp, dword [esp + 0x18]
mov ebx, eax
add ebp, dword [esp + 0x7c]
movzx edx, byte [esi + ebp + 0x18]
mov ecx, dword [edi + 0x88]
push 1
call fcn.00487972
inc esi
pop ecx
cmp esi, ebx
jl 0x493613
mov ebp, dword [esp + 0x48]
xor ebx, ebx
jmp 0x493695
mov edx, dword [edi + 0xf0]
push ecx
mov ecx, dword [esp + 0x2c]
push ebx
push 0xa
call fcn.00491d19
mov ecx, dword [esp + 0x44]
mov edx, 0x1000
movzx esi, cx
sub edx, eax
mov dword [edi + 0xf0], eax
lea ecx, [esi - 4]
push ecx
mov ecx, dword [esp + 0x54]
add ecx, 0x18
add ecx, ebp
push ecx
mov ecx, dword [esp + 0x3c]
add ecx, eax
call section..text
add esp, 0x14
mov eax, esi
and eax, 3
push 4
pop ecx
sub ecx, eax
and ecx, reloc.WS2_32.dll_closesocket
jns 0x49368d
dec ecx
or ecx, 0xfffffffc
inc ecx
add ecx, esi
add dword [edi + 0xf0], ecx
mov ecx, dword [esp + 0x38]
movzx edx, cx
mov eax, edx
push 4
and eax, 3
pop ecx
sub ecx, eax
and ecx, reloc.WS2_32.dll_closesocket
jns 0x4936b3
dec ecx
or ecx, 0xfffffffc
inc ecx
mov eax, dword [esp + 0x30]
add ecx, edx
add ebp, ecx
sub eax, ebp
mov dword [esp + 0x48], ebp
cmp eax, 0x14
mov eax, dword [esp + 0x44]
jg 0x4935a0
jmp 0x494cff
push 0x14
pop eax
cmp si, ax
jb 0x494cff
mov eax, dword [esp + 0x1c]
cmp eax, 0xffffffff
je 0x494cff
cmp dword [edi + 0x78], 1
jne 0x494cff
mov ebp, dword [esp + 0x7c]
mov dword [edi + 0x40], eax
mov eax, dword [ecx + ebp + 4]
mov dword [edi + 0x54], eax
test eax, eax
je 0x494d3a
push dword [ecx + ebp + 8]
mov esi, dword [sym.imp.WS2_32.dll_ntohl]
call esi
mov dword [edi + 0x58], eax
mov eax, dword [esp + 0x18]
push dword [eax + ebp + 0x10]
call esi
dec eax
lea esi, [edi + 0x64]
push 4
mov dword [edi + 0x68], eax
mov dword [edi + 0x6c], eax
pop eax
push eax
push esi
call fcn.004baa80
mov eax, dword [esi]
mov esi, dword [sym.imp.WS2_32.dll_ntohs]
mov dword [edi + 0xa0], eax
mov eax, dword [edi + 0x68]
pop ecx
mov dword [edi + 0xa4], eax
movzx eax, word [ebp + 2]
pop ecx
push eax
call esi
mov word [edi + 0x50], ax
movzx eax, word [ebp]
push eax
call esi
mov word [edi + 0x52], ax
mov eax, dword [esp + 0x18]
movzx eax, word [eax + ebp + 0xc]
push eax
call esi
mov ecx, 0x400
cmp ax, cx
jae 0x49378f
mov eax, dword [esp + 0x18]
movzx eax, word [eax + ebp + 0xc]
push eax
call esi
movzx eax, ax
jmp 0x493791
mov eax, ecx
mov word [edi + 0x92], ax
mov eax, dword [esp + 0x18]
movzx eax, word [eax + ebp + 0xe]
push eax
call esi
mov ecx, 0x400
cmp ax, cx
jae 0x4937bf
mov eax, dword [esp + 0x18]
movzx eax, word [eax + ebp + 0xe]
push eax
call esi
movzx eax, ax
jmp 0x4937c1
mov eax, ecx
push 0x14
mov word [edi + 0x90], ax
mov esi, ebx
pop eax
mov dword [esp + 0x44], esi
cmp dword [esp + 0x30], eax
jbe 0x4938a5
lea eax, [ebp + 0x14]
add eax, dword [esp + 0x18]
mov dword [esp + 0x38], eax
movzx eax, word [eax + esi]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
movzx ebp, ax
mov eax, dword [esp + 0x18]
add eax, dword [esp + 0x7c]
movzx eax, word [eax + esi + 0x16]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
movzx ecx, ax
mov dword [esp + 0x48], ecx
cmp ebp, 0x8008
je 0x493832
mov eax, 0xc000
cmp ebp, eax
jne 0x49386e
mov ecx, dword [edi + 0x88]
mov edx, eax
push 1
call fcn.00487972
pop ecx
jmp 0x49386a
movzx eax, cx
mov ebp, ebx
add eax, 0xfffffffc
mov dword [esp + 0x54], eax
test eax, eax
jle 0x49386e
add esi, dword [esp + 0x18]
mov ebx, eax
add esi, dword [esp + 0x7c]
movzx edx, byte [esi + ebp + 0x18]
mov ecx, dword [edi + 0x88]
push 1
call fcn.00487972
inc ebp
pop ecx
cmp ebp, ebx
jl 0x49384c
mov esi, dword [esp + 0x44]
xor ebx, ebx
mov ecx, dword [esp + 0x48]
movzx edx, cx
mov eax, edx
push 4
and eax, 3
pop ecx
sub ecx, eax
and ecx, reloc.WS2_32.dll_closesocket
jns 0x493888
dec ecx
or ecx, 0xfffffffc
inc ecx
mov eax, dword [esp + 0x30]
add ecx, edx
add esi, ecx
push 0x14
sub eax, esi
mov dword [esp + 0x48], esi
pop ecx
cmp eax, ecx
mov eax, dword [esp + 0x38]
jg 0x4937e6
call dword [sym.imp.KERNEL32.dll_GetTickCount64]
mov esi, dword [esp + 0x28]
mov ecx, esi
push 0x25
mov dword [esp + 0x78], edx
mov edx, dword [edi + 0xf0]
push ebx
push 2
mov dword [esp + 0x7c], eax
mov byte [esp + 0x1f], 0x82
call fcn.00491d19
mov ebp, dword [sym.imp.WS2_32.dll_htonl]
add esp, 0xc
push 4
pop eax
add dword [edi + 0xf0], eax
mov ecx, dword [edi + 0xf0]
mov eax, dword [edi + 0x54]
push 0x186a0
mov dword [ecx + esi], eax
call ebp
mov ecx, dword [edi + 0xf0]
mov dword [esi + ecx + 4], eax
movzx eax, word [edi + 0x92]
push eax
call dword [sym.imp.WS2_32.dll_htons]
mov ecx, dword [edi + 0xf0]
mov word [esi + ecx + 8], ax
movzx eax, word [edi + 0x90]
push eax
call dword [sym.imp.WS2_32.dll_htons]
mov ecx, dword [edi + 0xf0]
mov word [esi + ecx + 0xa], ax
push dword [edi + 0x64]
call ebp
mov ecx, dword [edi + 0xf0]
mov ebp, dword [sym.imp.WS2_32.dll_htons]
push 8
mov dword [esi + ecx + 0xc], eax
lea eax, [esp + 0x74]
add dword [edi + 0xf0], 0x10
push eax
push 7
call ebp
mov ecx, dword [edi + 0xf0]
mov edx, eax
add ecx, esi
call fcn.00492eac
add dword [edi + 0xf0], eax
lea eax, [esp + 0x1b]
pop ecx
pop ecx
push 1
push eax
push 0x8008
call ebp
mov ecx, dword [edi + 0xf0]
mov edx, eax
add ecx, esi
call fcn.00492eac
pop ecx
pop ecx
add dword [edi + 0xf0], eax
jmp 0x494cff
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x34], ebx
push dword [esi + ecx + 4]
call dword [sym.imp.WS2_32.dll_ntohl]
mov ebp, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x44], ebp
movzx ecx, word [esi + eax + 0xc]
push ecx
call dword [sym.imp.WS2_32.dll_ntohs]
movzx eax, ax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x18]
movzx ecx, word [eax + esi + 0xe]
push ecx
call dword [sym.imp.WS2_32.dll_ntohs]
movzx esi, ax
mov eax, dword [edi + 0xc4]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x5c], eax
mov dword [edi + 0xac], ebx
call dword [sym.imp.KERNEL32.dll_GetTickCount64]
mov dword [edi + 0xb0], eax
mov eax, dword [edi + 0xa8]
test eax, eax
je 0x493a1d
cmp ebp, eax
jb 0x493a1d
mov dword [edi + 0xa8], ebx
mov ebp, esi
test ebp, ebp
je 0x493a4e
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x2c]
add ecx, 0x10
movzx esi, ax
lea esi, [ecx + esi*4]
add esi, dword [esp + 0x7c]
push dword [esi]
call dword [sym.imp.WS2_32.dll_ntohl]
mov dword [esp + 0x38], eax
lea esi, [esi + 4]
sub ebp, 1
jne 0x493a38
jmp 0x493a52
mov eax, dword [esp + 0x38]
mov ecx, dword [edi + 0xc8]
test ecx, ecx
je 0x493a69
push dword [ecx + 0x22]
call dword [sym.imp.WS2_32.dll_ntohl]
mov dword [esp + 0x38], eax
mov ebp, dword [esp + 0x48]
cmp dword [edi + 0xc8], ebx
je 0x493be4
cmp eax, dword [esp + 0x44]
ja 0x493bc7
mov eax, dword [edi + 0xc8]
cmp byte [eax + 6], 0
jne 0x493b5a
cmp dword [esp + 0x50], 0
jne 0x493b5a
mov eax, dword [eax + 0xe]
cmp dword [edi + 0xb4], eax
jae 0x493b5a
mov ecx, dword [edi + 0xb0]
sub ecx, eax
js 0x493b5a
mov eax, dword [edi + 0x110]
movd xmm0, dword [edi + 0x114]
sub eax, ecx
cdq
xor eax, edx
sub eax, edx
cvtdq2pd xmm0, xmm0
movd xmm1, eax
mulsd xmm0, qword [0x6bb398]
cvtdq2pd xmm1, xmm1
mulsd xmm1, qword [0x6bb388]
addsd xmm1, xmm0
movd xmm0, dword [edi + 0x110]
cvtdq2pd xmm0, xmm0
cvttsd2si eax, xmm1
mulsd xmm0, qword [0x6bb3a0]
mov dword [edi + 0x114], eax
movd xmm1, ecx
cvtdq2pd xmm1, xmm1
mulsd xmm1, qword [0x6bb380]
addsd xmm1, xmm0
cvttsd2si ecx, xmm1
mov dword [edi + 0x110], ecx
lea eax, [ecx + eax*4]
mov ecx, 0x3e8
cmp eax, ecx
cmovl eax, ecx
mov dword [edi + 0x118], eax
mov eax, 0x1770
cmp dword [edi + 0x118], eax
jle 0x493b52
mov dword [edi + 0x118], eax
mov dword [esp + 0x50], 1
mov eax, dword [edi + 0xc8]
add ebp, 0xffffffe4
mov esi, dword [edi + 0xc8]
push 0x1c
movzx ecx, word [eax + 4]
pop eax
sub eax, ecx
add ebp, ecx
add dword [edi + 0xc4], eax
mov eax, 0xffff
add word [edi + 0xc0], ax
mov eax, dword [esi]
mov dword [edi + 0xc8], eax
test eax, eax
jne 0x493b9a
mov dword [edi + 0xcc], ebx
jmp 0x493ba7
push dword [eax + 0x22]
call dword [sym.imp.WS2_32.dll_ntohl]
mov dword [esp + 0x38], eax
push 1
push esi
call fcn.005e7dd0
mov eax, dword [esp + 0x40]
pop ecx
mov dword [edi + 0xbc], ebx
pop ecx
cmp dword [edi + 0xc8], ebx
jne 0x493a79
test ebp, ebp
je 0x493bdc
add dword [edi + 0x5c], ebp
add dword [edi + 0x58], ebp
mov eax, dword [edi + 0x60]
cmp dword [edi + 0x5c], eax
jle 0x493bdc
mov dword [edi + 0x5c], eax
cmp dword [edi + 0xc8], ebx
jne 0x493bf8
mov eax, dword [edi + 0x60]
mov dword [edi + 0x5c], eax
mov dword [edi + 0x108], ebx
mov dword [edi + 0x11c], ebx
jmp 0x493c0e
add dword [edi + 0x108], ebp
test ebp, ebp
jle 0x493c0e
mov eax, dword [edi + 0xb0]
mov dword [edi + 0x11c], eax
mov ecx, dword [edi + 0x60]
mov eax, dword [edi + 0x10c]
cmp ecx, eax
jg 0x493c43
cmp dword [edi + 0xa8], ebx
jne 0x493c3f
test ebp, ebp
je 0x493c3f
cmp ecx, 0x186a0
jge 0x493c3f
mov edx, 0x578
cmp ebp, edx
mov eax, edx
cmovl eax, ebp
add eax, ecx
jmp 0x493c61
cmp ecx, eax
jle 0x493c64
mov edx, dword [edi + 0x108]
cmp edx, ecx
jl 0x493c64
cmp dword [esp + 0x5c], ecx
jl 0x493c64
lea eax, [ecx + 0x578]
sub edx, eax
mov dword [edi + 0x108], edx
mov dword [edi + 0x60], eax
mov esi, dword [edi + 0xc8]
test esi, esi
je 0x493e9e
mov ebp, dword [esp + 0x7c]
mov eax, dword [esp + 0x2c]
add ebp, 0x12
add ebp, dword [esp + 0x18]
movzx eax, ax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x48], ebp
cmp dword [esp + 0x34], eax
jge 0x493e88
movzx eax, word [ebp - 2]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
movzx eax, ax
add eax, dword [esp + 0x44]
mov dword [esp + 0x38], eax
movzx eax, word [ebp]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
push dword [esi + 0x22]
movzx eax, ax
add eax, dword [esp + 0x48]
mov dword [esp + 0x60], eax
call dword [sym.imp.WS2_32.dll_ntohl]
mov ebp, dword [esp + 0x5c]
mov ecx, eax
cmp ecx, ebp
ja 0x493e6b
mov al, byte [esi + 7]
mov byte [esp + 0x12], al
cmp ecx, dword [esp + 0x38]
jae 0x493d04
cmp al, 0xfd
jae 0x493cf8
inc al
mov byte [esp + 0x12], al
cmp al, 0xfd
jb 0x493d28
mov al, 0xfc
jmp 0x493cfe
cmp al, 0xfe
jne 0x493d28
mov al, 1
mov byte [esp + 0x12], al
jmp 0x493d28
cmp al, 0xfd
jae 0x493d28
movzx eax, word [esi + 4]
sub eax, 0x1c
mov byte [esp + 0x12], 0xfe
add dword [edi + 0x5c], eax
movzx eax, word [esi + 4]
sub eax, 0x1c
add dword [edi + 0x108], eax
mov al, byte [esp + 0x12]
sub al, 3
cmp al, 0xf9
ja 0x493e0c
cmp dword [esp + 0x24], 0
jne 0x493d77
cmp dword [edi + 0xa8], ebx
jne 0x493d77
mov eax, dword [edi + 0x60]
cmp eax, 0x2bc2
jl 0x493d52
cdq
sub eax, edx
sar eax, 1
jmp 0x493d57
mov eax, 0x15e0
cmp dword [edi + 0x5c], eax
mov dword [edi + 0x10c], eax
mov dword [edi + 0x60], eax
cmovl eax, dword [edi + 0x5c]
mov dword [edi + 0x5c], eax
xor eax, eax
inc eax
mov dword [edi + 0x108], ebx
mov dword [esp + 0x24], eax
cmp dword [esp + 0x14], 0
mov byte [esp + 0x12], 0xff
mov dword [esp + 0x54], ecx
jne 0x493dd5
cmp esi, dword [edi + 0xc8]
je 0x493d97
cmp dword [edi + 0x11c], ebx
jne 0x493da3
mov eax, dword [edi + 0xb0]
mov dword [edi + 0x11c], eax
mov eax, dword [edi + 0xb0]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov dword [edi + 0xb4], eax
mov dword [esi + 0xe], eax
movzx eax, word [esi + 4]
push eax
lea eax, [esi + 0x12]
push eax
call fcn.00491ca1
inc byte [esi + 6]
mov dword [esp + 0x1c], 1
jmp 0x493e4e
movzx eax, word [esi + 4]
cmp dword [edi + 0x5c], eax
jl 0x493e50
mov eax, dword [edi + 0xb0]
mov dword [esi + 0xe], eax
cmp dword [edi + 0x11c], ebx
jne 0x493dfb
mov eax, dword [edi + 0xb0]
mov dword [edi + 0x11c], eax
movzx eax, word [esi + 4]
inc byte [esi + 6]
push 0x1c
pop ecx
sub ecx, eax
add dword [edi + 0x5c], ecx
jmp 0x493e2c
mov al, byte [esp + 0x12]
cmp al, 0xff
jne 0x493e54
movzx ecx, word [esi + 4]
cmp dword [edi + 0x5c], ecx
jl 0x493e54
mov eax, dword [edi + 0xb0]
inc byte [esi + 6]
mov dword [esi + 0xe], eax
sub dword [edi + 0x5c], ecx
mov eax, dword [edi + 0xb0]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov dword [edi + 0xb4], eax
movzx eax, word [esi + 4]
push eax
lea eax, [esi + 0x12]
push eax
call fcn.00491ca1
pop ecx
pop ecx
mov al, byte [esp + 0x12]
mov byte [esi + 7], al
mov esi, dword [esi]
test esi, esi
je 0x493e6b
push dword [esi + 0x22]
call dword [sym.imp.WS2_32.dll_ntohl]
jmp 0x493ccf
mov ebp, dword [esp + 0x48]
inc dword [esp + 0x34]
push 4
pop eax
add ebp, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x48], ebp
test esi, esi
jne 0x493c8c
mov eax, dword [esp + 0x54]
test eax, eax
je 0x493e9e
cmp dword [edi + 0xa8], ebx
jne 0x493e9e
mov dword [edi + 0xa8], eax
movzx esi, word [edi + 0xd0]
mov dword [esp + 0x5c], esi
cmp dword [edi + 0x58], ebx
jle 0x493f91
mov esi, dword [esp + 0x20]
push 0x1c
pop ebp
mov edx, dword [edi + 0xd8]
test edx, edx
je 0x493f8d
movzx eax, word [edx + 4]
add eax, 0xffffffe4
cmp dword [edi + 0x58], eax
jl 0x493f8d
cmp dword [edi + 0x5c], eax
jl 0x493f8d
mov eax, dword [edx]
mov dword [edi + 0xd8], eax
test eax, eax
jne 0x493ef2
mov dword [edi + 0xdc], ebx
mov eax, 0xffff
add word [edi + 0xd0], ax
mov eax, dword [edi + 0xcc]
test eax, eax
jne 0x493f10
mov dword [edi + 0xc8], edx
jmp 0x493f12
mov dword [eax], edx
mov dword [edx], ebx
mov ecx, ebp
inc word [edi + 0xc0]
mov dword [edi + 0xcc], edx
movzx eax, word [edx + 4]
sub eax, ebp
add dword [edi + 0xc4], eax
movzx eax, word [edx + 4]
sub ecx, eax
add dword [edi + 0x5c], ecx
mov ecx, ebp
movzx eax, word [edx + 4]
sub ecx, eax
add dword [edi + 0x58], ecx
mov ecx, ebp
movzx eax, word [edx + 4]
sub ecx, eax
add dword [edi + 0xd4], ecx
cmp dword [edi + 0x11c], ebx
jne 0x493f65
mov eax, dword [edi + 0xb0]
mov dword [edi + 0x11c], eax
mov eax, dword [edi + 0xb0]
mov ecx, esi
mov dword [edx + 0xe], eax
movzx eax, word [edx + 4]
push eax
lea eax, [edx + 0x12]
mov edx, dword [esp + 0x20]
push eax
call fcn.00491ca1
pop ecx
pop ecx
cmp dword [edi + 0x58], ebx
jg 0x493eb9
mov esi, dword [esp + 0x5c]
mov eax, dword [esp + 0x20]
cmp dword [eax + 0x144], ebx
je 0x494cff
cmp word [edi + 0xd0], bx
jne 0x494cff
test esi, esi
je 0x494cff
mov dword [edi + 0x7c], ebx
mov esi, eax
push dword [edi + 0x3c]
push edi
push esi
call dword [esi + 0x144]
mov eax, dword [esp + 0x28]
add esp, 0xc
mov eax, dword [esi + eax*4 + 0x178]
test eax, eax
je 0x494e29
cmp dword [eax + 0x78], 2
jne 0x494e29
lea esi, [edi + 0x7c]
mov ecx, esi
call fcn.0044c7d2
jmp 0x494d02
push esi
mov esi, dword [esp + 0x2c]
mov ecx, esi
mov dword [edi + 0xbc], ebx
mov edx, dword [edi + 0xf0]
push ebx
push 5
call fcn.00491d19
mov eax, dword [esp + 0x3c]
add esi, 4
mov edx, dword [esp + 0x24]
add eax, 0xfffffffc
mov ecx, dword [edi + 0xf0]
add edx, 4
push eax
mov eax, dword [esp + 0x8c]
add eax, edx
mov edx, 0xffc
sub edx, ecx
add ecx, esi
push eax
call section..text
mov esi, dword [esp + 0x44]
add esp, 0x14
mov eax, esi
and eax, 3
push 4
pop ecx
sub ecx, eax
and ecx, reloc.WS2_32.dll_closesocket
jns 0x49405e
dec ecx
or ecx, 0xfffffffc
inc ecx
add ecx, esi
add dword [edi + 0xf0], ecx
jmp 0x494cff
mov dword [edi + 0xbc], ebx
jmp 0x494cff
call dword [sym.imp.KERNEL32.dll_GetTickCount64]
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x18]
sub eax, dword [ecx + edx + 4]
mov dword [edi + 0x110], eax
mov ecx, dword [edi + 0x110]
cdq
sub eax, edx
mov dword [edi + 0x10c], 0x15e0
sar eax, 1
mov dword [edi + 0x114], eax
lea eax, [ecx + eax*4]
mov dword [edi + 0x118], eax
mov eax, 0x3e8
cmp dword [edi + 0x118], eax
jge 0x4940c5
mov dword [edi + 0x118], eax
mov edx, dword [edi + 0xf0]
mov ecx, dword [esp + 0x28]
push 4
pop eax
push eax
push ebx
push 0xb
call fcn.00491d19
mov esi, dword [esp + 0x2c]
add esp, 0xc
mov dword [edi + 0xf0], eax
cmp dword [esi + 0x13c], ebx
je 0x494cff
cmp dword [edi + 0x78], 1
jne 0x494cff
push 1
push edi
mov dword [edi + 0x78], 2
push esi
mov dword [edi + 0x7c], ebx
call dword [esi + 0x13c]
mov eax, dword [esp + 0x28]
add esp, 0xc
mov eax, dword [esi + eax*4 + 0x178]
test eax, eax
je 0x494e29
cmp dword [eax + 0x78], ebx
je 0x494e29
jmp 0x493fe6
mov esi, dword [esp + 0x7c]
add esi, ecx
push dword [esi + 4]
call dword [sym.imp.WS2_32.dll_ntohl]
mov cl, byte [esp + 0x40]
mov ebp, eax
and cl, 3
cmp cl, 3
mov cl, byte [esp + 0x40]
sete al
shr cl, 2
and al, cl
and al, 1
mov byte [esp + 0x12], al
je 0x4941dc
movzx eax, word [esi + 8]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
push dword [esi + 0xc]
movzx eax, ax
mov dword [esp + 0x58], eax
call dword [sym.imp.WS2_32.dll_ntohl]
mov ecx, dword [edi + 0x68]
inc ecx
mov dword [esp + 0x5c], eax
cmp ebp, ecx
jne 0x49419b
mov ecx, dword [esp + 0x30]
add ecx, 0xfffffff0
push ecx
lea ecx, [esi + 0x10]
push ecx
push eax
jmp 0x4941c3
jbe 0x4941dc
mov ecx, dword [edi + 0xe0]
mov edx, 0x4931b9
push esi
call fcn.00487044
pop ecx
test eax, eax
jne 0x4941dc
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
push eax
lea eax, [esi + 0x10]
push eax
push dword [esp + 0x64]
push dword [esp + 0x4c]
mov edx, dword [esp + 0x2c]
push ecx
push dword [esp + 0x68]
mov ecx, dword [esp + 0x38]
call fcn.00492401
add esp, 0x18
mov eax, dword [edi + 0x68]
inc eax
cmp ebp, eax
jne 0x494491
mov dword [edi + 0x68], ebp
movzx eax, word [esi + 8]
mov ebp, dword [sym.imp.WS2_32.dll_ntohs]
push eax
call ebp
movzx eax, ax
mov dword [esp + 0x54], eax
movzx eax, word [esi + 0xa]
push eax
call ebp
push dword [esi + 0xc]
call dword [sym.imp.WS2_32.dll_ntohl]
test byte [edi + 0x9c], 1
mov dword [esp + 0x5c], eax
jne 0x494460
mov edx, dword [edi + 0x68]
lea ecx, [edx - 1]
cmp dword [edi + 0x6c], ecx
jb 0x494460
mov ecx, dword [edi + 0xe0]
mov dword [edi + 0x6c], edx
call fcn.0048718e
jmp 0x494270
mov ecx, ebp
call fcn.004871cd
test eax, eax
jne 0x49424e
mov eax, ebx
jmp 0x49425e
mov ecx, ebp
call fcn.004871cd
push dword [eax + 4]
call dword [sym.imp.WS2_32.dll_ntohl]
mov ecx, dword [edi + 0x68]
inc ecx
cmp eax, ecx
jne 0x494276
mov ecx, ebp
mov dword [edi + 0x68], eax
call fcn.004871b8
mov ebp, eax
test ebp, ebp
jne 0x49423f
cmp dword [esp + 0x3c], 0
mov ebp, dword [esp + 0x20]
jne 0x4942a6
push dword [edi + 0xf0]
mov edx, dword [esp + 0x20]
mov ecx, ebp
push dword [esp + 0x2c]
mov dword [esp + 0x44], 1
call fcn.00491d6e
pop ecx
pop ecx
mov dword [edi + 0xf0], eax
cmp byte [esp + 0x12], 0
jne 0x4942fd
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
mov dword [edi + 0x7c], ebx
push eax
lea eax, [esi + 0x10]
mov esi, dword [esp + 0x20]
push eax
push dword [esp + 0x64]
mov edx, esi
push dword [esp + 0x4c]
push ecx
push dword [esp + 0x68]
mov ecx, ebp
call fcn.00492401
mov eax, dword [ebp + esi*4 + 0x178]
add esp, 0x18
test eax, eax
je 0x494e29
cmp dword [eax + 0x78], ebx
je 0x494e29
lea esi, [edi + 0x7c]
mov ecx, esi
call fcn.0044c7d2
jmp 0x494300
lea esi, [edi + 0x7c]
mov ecx, dword [edi + 0xe0]
mov dword [esp + 0x44], ebx
call fcn.00487407
test eax, eax
jle 0x494d02
mov ecx, dword [edi + 0xe0]
call fcn.0048718e
mov ecx, eax
call fcn.004871cd
mov esi, eax
mov cl, byte [esi + 1]
push dword [esi + 4]
mov byte [esp + 0x64], cl
call dword [sym.imp.WS2_32.dll_ntohl]
movzx ecx, word [esi + 2]
mov ebp, eax
push ecx
call dword [sym.imp.WS2_32.dll_ntohs]
mov ecx, dword [edi + 0x68]
inc ecx
movzx eax, ax
mov dword [esp + 0x5c], eax
cmp ebp, ecx
ja 0x494443
mov eax, dword [edi + 0x6c]
inc eax
cmp ebp, eax
ja 0x494443
movzx eax, word [esi + 2]
add dword [esp + 0x44], eax
movzx eax, word [esi + 8]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
movzx eax, ax
mov dword [esp + 0x48], eax
movzx eax, word [esi + 0xa]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
push dword [esi + 0xc]
call dword [sym.imp.WS2_32.dll_ntohl]
mov ecx, dword [edi + 0xe0]
mov dword [esp + 0x54], eax
mov dword [edi + 0x68], ebp
mov dword [edi + 0x6c], ebp
call fcn.0048718e
mov ecx, eax
call fcn.00487169
test byte [eax], 1
jne 0x49440b
mov eax, dword [esp + 0x5c]
mov ebp, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
movzx eax, ax
sub eax, 0x10
mov dword [edi + 0x7c], ebx
push eax
lea eax, [esi + 0x10]
push eax
push dword [esp + 0x5c]
push dword [esp + 0x6c]
push ecx
push dword [esp + 0x5c]
mov ecx, ebp
call fcn.00492401
mov eax, dword [esp + 0x34]
add esp, 0x18
mov eax, dword [ebp + eax*4 + 0x178]
test eax, eax
je 0x494e29
cmp dword [eax + 0x78], ebx
je 0x494e29
lea ecx, [edi + 0x7c]
call fcn.0044c7d2
push 1
push esi
call fcn.005e7dd0
pop ecx
pop ecx
mov ecx, dword [edi + 0xe0]
call fcn.0048718e
mov ecx, eax
call fcn.0048726a
test byte [edi + 0x9c], 1
jne 0x494443
mov ecx, dword [edi + 0xe0]
call fcn.00487407
test eax, eax
jg 0x494317
mov ecx, dword [esp + 0x44]
lea esi, [edi + 0x7c]
test ecx, ecx
jle 0x494d02
mov eax, dword [edi + 0xe0]
sub dword [eax + 8], ecx
jmp 0x494d02
lea eax, [esp + 0x3c]
mov edx, esi
push eax
mov ecx, edi
call fcn.0049314a
pop ecx
test eax, eax
je 0x494cff
mov ecx, eax
call fcn.00487169
mov cl, byte [esp + 0x40]
shr cl, 2
xor cl, byte [eax]
and cl, 1
xor byte [eax], cl
jmp 0x494cff
jbe 0x4944ca
lea eax, [esp + 0x3c]
mov edx, esi
push eax
mov ecx, edi
call fcn.0049314a
pop ecx
test eax, eax
je 0x494cff
xor ebx, ebx
mov ecx, eax
cmp byte [esp + 0x12], bl
setne bl
call fcn.00487169
mov cl, byte [eax]
xor cl, bl
and cl, 1
xor byte [eax], cl
xor ebx, ebx
jmp 0x494cff
cmp dword [esp + 0x3c], 0
jne 0x494cff
push dword [edi + 0xf0]
mov edx, dword [esp + 0x20]
push dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x44], 1
call fcn.00491d6e
pop ecx
pop ecx
mov dword [edi + 0xf0], eax
jmp 0x494cff
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x2c], ebx
movzx eax, word [ecx + esi + 2]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
mov ebp, dword [edi + 0xf0]
add ebp, dword [esp + 0x28]
movzx eax, ax
mov dword [esp + 0x48], ebp
mov dword [esp + 0x14], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x68], eax
cmp eax, 4
jbe 0x494cff
lea ecx, [esi + 4]
add ecx, dword [esp + 0x18]
mov dword [esp + 0x34], ecx
mov esi, dword [esp + 0x2c]
add esi, ecx
movzx eax, word [esi + 2]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
movzx eax, ax
mov dword [esp + 0x64], eax
movzx eax, word [esi]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
movzx eax, ax
sub eax, 0xd
je 0x4947d3
sub eax, 1
je 0x4945e1
dec eax
sub eax, 1
jne 0x494bb5
mov edx, dword [edi + 0x94]
test edx, edx
je 0x494bb5
cmp dl, 0xff
je 0x494bb5
mov eax, dword [esi + 4]
cmp eax, dword [edx + 0x14]
jne 0x494bb5
mov ecx, edi
call fcn.00492f1a
mov ecx, dword [edi + 0x34]
lea edx, [edi + 0x10]
mov esi, eax
mov ecx, dword [ecx + 0x28]
call fcn.00486d2e
mov dword [edi + 0x94], ebx
mov edx, 0x492ee6
push edi
mov ecx, esi
mov dword [edi + 0x7c], ebx
call fcn.00487c73
pop ecx
lea ecx, [edi + 0x7c]
call fcn.0044c7d2
jmp 0x494bb5
movzx eax, word [esi + 2]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
movzx eax, ax
sub eax, 8
cdq
sub eax, edx
sar eax, 1
cmp dword [esp + 0x24], 0
movzx esi, ax
mov eax, dword [edi + 0x94]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x14]
je 0x494671
push 0x10
movzx esi, ax
call dword [sym.imp.WS2_32.dll_htons]
push 0xc
mov word [esi + ebp + 4], ax
call dword [sym.imp.WS2_32.dll_htons]
mov ecx, dword [esp + 0x34]
mov word [esi + ebp + 6], ax
mov eax, dword [esp + 0x2c]
mov eax, dword [ecx + eax + 4]
mov dword [esi + ebp + 8], eax
mov eax, dword [esp + 0x5c]
cmp al, 0xff
jne 0x49464d
test ah, ah
jne 0x49464d
xor eax, eax
inc eax
jmp 0x49464f
mov eax, ebx
neg eax
sbb eax, eax
and eax, 6
push eax
call dword [sym.imp.WS2_32.dll_htonl]
mov dword [esi + ebp + 0xc], eax
mov esi, dword [esp + 0x14]
add esi, 0xc
mov dword [esp + 0x14], esi
jmp 0x494bb9
movzx eax, ax
add eax, 4
add eax, ebp
push 0xd
mov dword [esp + 0x28], eax
call dword [sym.imp.WS2_32.dll_htons]
mov ecx, dword [esp + 0x24]
mov word [ecx], ax
lea eax, [esi*2 + 0x10]
mov word [ecx + 2], ax
mov eax, dword [edi + 0x64]
dec eax
push eax
call dword [sym.imp.WS2_32.dll_htonl]
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0xc], eax
mov ecx, dword [edi + 0xa0]
push ecx
lea eax, [ecx + 1]
mov dword [edi + 0xa0], eax
call dword [sym.imp.WS2_32.dll_htonl]
mov ecx, dword [esp + 0x24]
mov dword [ecx + 4], eax
mov ecx, dword [edi + 0xa4]
push ecx
lea eax, [ecx + 1]
mov dword [edi + 0xa4], eax
call dword [sym.imp.WS2_32.dll_htonl]
mov ecx, dword [esp + 0x24]
push 4
movzx edx, word [ecx + 2]
mov dword [ecx + 8], eax
mov eax, edx
and eax, 3
pop ecx
sub ecx, eax
and ecx, reloc.WS2_32.dll_closesocket
jns 0x4946fe
dec ecx
or ecx, 0xfffffffc
inc ecx
add ecx, edx
add dword [esp + 0x14], ecx
push edx
call dword [sym.imp.WS2_32.dll_htons]
mov ecx, dword [esp + 0x24]
mov word [ecx + 2], ax
test si, si
je 0x494bb5
mov ebp, dword [esp + 0x34]
mov eax, esi
add ebp, 6
lea ecx, [ecx + eax*2]
add ecx, 0xe
add ebp, dword [esp + 0x2c]
mov dword [esp + 0x44], ecx
lea ebp, [ebp + eax*2]
movzx eax, word [ebp]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
mov ecx, dword [edi + 0x80]
movzx eax, ax
mov dword [esp + 0x54], eax
movzx eax, ax
push 1
mov edx, eax
mov dword [esp + 0x60], eax
call fcn.00487a78
pop ecx
test eax, 0x8000
je 0x49479f
mov edx, dword [esp + 0x5c]
mov ecx, dword [edi + 0x84]
push 1
call fcn.00487a78
mov eax, dword [esp + 0x24]
pop ecx
cmp dword [eax + 0x1b4], ebx
je 0x49479f
push dword [esp + 0x54]
mov dword [edi + 0x7c], ebx
push edi
push eax
call dword [eax + 0x1b4]
add esp, 0xc
lea ecx, [edi + 0x7c]
call fcn.0044c7d2
push dword [esp + 0x54]
call dword [sym.imp.WS2_32.dll_htons]
mov ecx, dword [esp + 0x44]
sub ebp, 2
mov word [ecx], ax
mov eax, 0xffff
add esi, eax
sub ecx, 2
mov dword [esp + 0x44], ecx
test si, si
jne 0x494737
mov ebp, dword [esp + 0x48]
jmp 0x494bb5
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x34]
movzx esi, ax
mov eax, dword [esp + 0x2c]
movzx eax, word [ecx + eax + 2]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
mov ecx, dword [esp + 0x2c]
movzx eax, ax
sub eax, 0x10
cdq
sub eax, edx
sar eax, 1
movzx eax, ax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x34]
push dword [eax + ecx + 0xc]
call dword [sym.imp.WS2_32.dll_ntohl]
push 0x10
mov dword [esp + 0x58], eax
call dword [sym.imp.WS2_32.dll_htons]
push 0xc
mov word [esi + ebp + 4], ax
call dword [sym.imp.WS2_32.dll_htons]
mov ecx, dword [esp + 0x2c]
mov word [esi + ebp + 6], ax
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + ecx + 4]
mov eax, dword [esp + 0x14]
add eax, 0xc
mov dword [esi + ebp + 8], ecx
cmp dword [esp + 0x24], 0
mov dword [esp + 0x14], eax
je 0x494863
push 2
call dword [sym.imp.WS2_32.dll_htonl]
mov dword [esi + ebp + 0xc], eax
jmp 0x494bb5
movzx eax, ax
add eax, 4
add eax, ebp
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x54]
cmp eax, dword [edi + 0x6c]
ja 0x494ae3
push 1
call dword [sym.imp.WS2_32.dll_htonl]
push 0xd
mov dword [esi + ebp + 0xc], eax
call dword [sym.imp.WS2_32.dll_htons]
mov ecx, dword [esp + 0x24]
mov word [ecx], ax
mov eax, dword [esp + 0x38]
lea eax, [eax*2 + 0x10]
push eax
call dword [sym.imp.WS2_32.dll_htons]
mov ecx, dword [esp + 0x24]
mov word [ecx + 2], ax
mov eax, dword [edi + 0x64]
dec eax
push eax
call dword [sym.imp.WS2_32.dll_htonl]
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0xc], eax
mov ecx, dword [edi + 0xa0]
push ecx
lea eax, [ecx + 1]
mov dword [edi + 0xa0], eax
call dword [sym.imp.WS2_32.dll_htonl]
mov ecx, dword [esp + 0x24]
mov dword [ecx + 4], eax
mov ecx, dword [edi + 0xa4]
push ecx
lea eax, [ecx + 1]
mov dword [edi + 0xa4], eax
call dword [sym.imp.WS2_32.dll_htonl]
mov ecx, dword [esp + 0x24]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x38]
test ax, ax
jne 0x49492f
mov ecx, dword [edi + 0x80]
call fcn.00487b74
push edi
mov edx, 0x492ee6
mov dword [edi + 0x7c], ebx
mov ecx, eax
call fcn.00487c73
pop ecx
lea ecx, [edi + 0x7c]
call fcn.0044c7d2
jmp 0x494a08
movzx ecx, ax
mov eax, dword [esp + 0x2c]
add eax, dword [esp + 0x34]
mov dword [esp + 0x44], ecx
movzx eax, word [eax + ecx*2 + 0xe]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
mov ecx, dword [edi + 0x80]
movzx eax, ax
mov dword [esp + 0x54], eax
movzx eax, ax
push 1
mov edx, eax
mov dword [esp + 0x60], eax
call fcn.00487a78
mov ebp, dword [esp + 0x4c]
pop ecx
test eax, 0x8000
je 0x4949ce
push 1
call dword [sym.imp.WS2_32.dll_htonl]
mov edx, dword [esp + 0x5c]
mov dword [esi + ebp + 0xc], eax
mov ecx, dword [edi + 0x84]
push 1
call fcn.00487a78
mov eax, dword [esp + 0x24]
pop ecx
cmp dword [eax + 0x1b4], ebx
je 0x4949d9
push dword [esp + 0x54]
mov dword [edi + 0x7c], ebx
push edi
push eax
call dword [eax + 0x1b4]
mov eax, dword [esp + 0x2c]
add esp, 0xc
mov ecx, dword [esp + 0x1c]
cmp dword [eax + ecx*4 + 0x178], ebx
je 0x494e29
lea ecx, [edi + 0x7c]
call fcn.0044c7d2
jmp 0x4949d9
push ebx
call dword [sym.imp.WS2_32.dll_htonl]
mov dword [esi + ebp + 0xc], eax
push dword [esp + 0x54]
call dword [sym.imp.WS2_32.dll_htons]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x24]
mov word [edx + ecx*2 + 0xe], ax
mov ecx, 0xffff
mov eax, dword [esp + 0x38]
add eax, ecx
mov dword [esp + 0x38], eax
test ax, ax
jne 0x49492f
push ebx
call dword [sym.imp.WS2_32.dll_htonl]
cmp dword [esi + ebp + 0xc], eax
je 0x494bb5
cmp dword [edi + 0x94], ebx
jne 0x494bb5
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + eax*2]
mov eax, dword [esp + 0x24]
add ecx, 0x10
mov dword [esp + 0x14], ecx
movzx eax, word [eax + 2]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
push 4
and eax, 3
pop ecx
sub ecx, eax
and ecx, reloc.WS2_32.dll_closesocket
jns 0x494a5b
dec ecx
or ecx, 0xfffffffc
inc ecx
mov eax, dword [esp + 0x24]
mov esi, dword [edi + 0xf4]
sub esi, ecx
add esi, dword [edi + 0xec]
movzx eax, word [eax + 2]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
movzx eax, ax
sub esi, eax
mov dword [edi + 0x98], ebx
lea eax, [esi - 0x10]
mov dword [edi + 0x94], eax
mov byte [eax + 0xc], 0x82
mov eax, dword [edi + 0x94]
mov byte [eax + 0xd], bl
mov eax, dword [esp + 0x38]
lea eax, [eax*2 + 0x14]
push eax
call dword [sym.imp.WS2_32.dll_htons]
mov ecx, dword [edi + 0x94]
mov esi, dword [esp + 0x24]
mov word [ecx + 0xe], ax
movzx eax, word [esi + 2]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
mov ecx, dword [edi + 0x94]
mov edx, 0x1000
movzx eax, ax
add ecx, 0x10
push eax
push esi
call section..text
pop ecx
pop ecx
jmp 0x494bb5
push 6
call dword [sym.imp.WS2_32.dll_htonl]
mov dword [esi + ebp + 0xc], eax
mov eax, dword [edi + 0x94]
test eax, eax
je 0x494b17
mov ecx, dword [edi + 0xec]
cmp eax, ecx
jb 0x494b17
mov eax, dword [edi + 0xf4]
add eax, ecx
cmp dword [edi + 0x94], eax
jbe 0x494852
cmp dword [edi + 0x94], ebx
je 0x494b26
push 6
jmp 0x494854
mov edx, dword [esp + 0x38]
mov ecx, dword [edi + 0xf4]
mov esi, dword [esp + 0x54]
mov dword [esp + 0x44], ebx
lea eax, [edx*2 + 4]
mov word [esp + 0x44], 0xff
mov word [esp + 0x46], ax
movzx eax, ax
sub ecx, eax
mov dword [esp + 0x38], eax
mov eax, dword [edi + 0xec]
mov dword [ecx + eax], esi
movzx eax, dx
mov dword [esp + 0x5c], eax
test eax, eax
je 0x494bab
mov ebp, dword [esp + 0x5c]
mov ebx, dword [esp + 0x38]
push 4
pop eax
mov esi, eax
mov eax, dword [esp + 0x34]
add eax, dword [esp + 0x2c]
movzx eax, word [esi + eax + 0xc]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
mov edx, dword [edi + 0xf4]
mov ecx, dword [edi + 0xec]
sub edx, ebx
add edx, esi
add esi, 2
mov word [edx + ecx], ax
sub ebp, 1
jne 0x494b75
mov ebp, dword [esp + 0x48]
xor ebx, ebx
mov eax, dword [esp + 0x44]
mov dword [edi + 0x94], eax
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x64]
movzx edx, ax
mov eax, edx
push 4
and eax, 3
pop ecx
sub ecx, eax
and ecx, reloc.WS2_32.dll_closesocket
jns 0x494bd7
dec ecx
or ecx, 0xfffffffc
inc ecx
mov eax, dword [esp + 0x2c]
add ecx, edx
add eax, ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x2c], eax
add eax, 4
cmp eax, dword [esp + 0x68]
jl 0x494546
test si, si
je 0x494cff
lea eax, [esi + 4]
mov word [ebp], 0x82
push eax
call dword [sym.imp.WS2_32.dll_htons]
mov word [ebp + 2], ax
movzx eax, si
add eax, 4
jmp 0x49398c
cmp eax, 0xc0
je 0x494c3e
mov eax, dword [esp + 0x7c]
test byte [ecx + eax], 0x40
je 0x494cff
mov dword [esp + 0x58], 1
jmp 0x494cff
mov esi, dword [esp + 0x7c]
movzx eax, word [ecx + esi + 2]
push eax
call dword [sym.imp.WS2_32.dll_htons]
movzx eax, ax
sub eax, 8
cdq
and edx, 3
lea ebp, [edx + eax]
mov eax, dword [esp + 0x18]
sar ebp, 2
push dword [eax + esi + 4]
call dword [sym.imp.WS2_32.dll_ntohl]
mov dword [esp + 0x54], eax
cmp eax, dword [edi + 0x68]
jbe 0x494cff
mov ecx, dword [edi + 0xe0]
call fcn.0048718e
mov esi, eax
test esi, esi
je 0x494cc2
mov ebx, dword [esp + 0x54]
mov ecx, esi
call fcn.004871cd
test eax, eax
je 0x494cc0
cmp dword [eax + 4], ebx
ja 0x494cc0
push 1
push eax
call fcn.005e7dd0
pop ecx
pop ecx
mov ecx, esi
call fcn.0048726a
mov ecx, dword [edi + 0xe0]
call fcn.0048718e
mov esi, eax
test esi, esi
jne 0x494c8e
xor ebx, ebx
test ebp, ebp
jle 0x494cf8
mov esi, dword [esp + 0x7c]
add esi, 8
add esi, dword [esp + 0x18]
push dword [esi]
call dword [sym.imp.WS2_32.dll_ntohl]
mov ecx, dword [edi + 0x8c]
mov edx, eax
push ebx
call fcn.00487a78
pop ecx
test eax, eax
je 0x494cf0
or dword [eax + 4], 0xffffffff
add esi, 8
sub ebp, 1
jne 0x494cd1
mov eax, dword [esp + 0x54]
mov dword [edi + 0x68], eax
lea esi, [edi + 0x7c]
mov ebp, dword [esp + 0x30]
mov eax, ebp
push 4
and eax, 3
pop ecx
sub ecx, eax
and ecx, reloc.WS2_32.dll_closesocket
jns 0x494d1d
dec ecx
or ecx, 0xfffffffc
inc ecx
mov edx, dword [esp + 0x18]
add ecx, ebp
mov ebp, dword [esp + 0x7c]
add edx, ecx
mov dword [esp + 0x18], edx
add ebp, edx
jne 0x493472
jmp 0x494de2
mov eax, dword [esp + 0x4c]
mov dword [eax], ebx
jmp 0x494e29
movzx eax, word [ebp + 2]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
mov ecx, dword [esp + 0x4c]
push 4
pop esi
sub ax, si
movzx eax, ax
mov dword [ecx], ebx
xor ecx, ecx
mov dword [esp + 0x80], eax
cmp cx, ax
jae 0x494dbb
movzx edi, bx
movzx eax, word [edi + ebp + 6]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
and eax, 3
sub esi, eax
and esi, reloc.WS2_32.dll_closesocket
jns 0x494d8e
dec esi
or esi, 0xfffffffc
inc esi
movzx eax, word [edi + ebp + 6]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
add ax, si
movzx esi, ax
movzx eax, word [edi + ebp + 4]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
add ebx, esi
push 4
pop esi
cmp bx, word [esp + 0x80]
jb 0x494d6d
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
pop esi
pop edi
pop ebp
pop ebx
add esp, 0x68
jmp fcn.00492c22
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov dword [eax], ebx
jmp 0x494dc3
lea esi, [edi + 0x7c]
mov edx, dword [esp + 0x28]
mov ebp, dword [esp + 0x1c]
cmp ebp, 0xffffffff
je 0x494e27
mov eax, dword [edi + 0xf0]
cmp eax, 0xc
jle 0x494e21
test byte [edx + 8], 4
je 0x494e0d
push eax
push edx
call fcn.004931cd
mov edx, dword [esp + 0x30]
pop ecx
pop ecx
push dword [edi + 0xf0]
mov ecx, dword [esp + 0x24]
push edx
mov edx, ebp
call fcn.00491ca1
pop ecx
pop ecx
mov dword [edi + 0xf0], ebx
mov dword [esi], ebx
pop esi
pop edi
pop ebp
pop ebx
add esp, 0x68
ret