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

Disassembly:
sub esp, 0xac
mov eax, dword [0x4538c0]
xor eax, esp
mov dword [esp + 0xa8], eax
push ebx
push ebp
push esi
push edi
xor eax, eax
mov dword [esp + 0x30], 0xffffffff
mov esi, dword [esp + 0xc0]
mov ebx, 1
mov dword [esp + 0x44], eax
mov ebp, ebx
mov dword [esp + 0x34], eax
mov dword [esp + 0x24], eax
mov ecx, dword [esi + 0x50]
mov edx, dword [esi + 0x54]
mov dword [esp + 0x14], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x7c], eax
mov eax, dword [esi + 0xe4]
sub eax, dword [esi + 0xec]
mov dword [esp + 0x10], eax
mov eax, ecx
or eax, edx
mov dword [esp + 0x28], closesocket
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x2c], closesocket
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebp
mov dword [esp + 0x38], 0
je 0x418ac7
xorps xmm0, xmm0
mov dword [esp + 0x30], ecx
movlpd qword [esp + 0x58], xmm0
xor ebp, ebp
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x58]
movlpd qword [esp + 0x74], xmm0
mov edi, dword [esp + 0x74]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x28], edx
mov dword [esp + 0x40], ebp
mov dword [esp + 0x20], eax
jmp 0x418adb
mov edi, dword [esi + 0xe8]
sub edi, dword [esi + 0xf0]
mov dword [esp + 0x20], 0
mov ecx, dword [esi + 0x58]
mov eax, ecx
mov edx, dword [esi + 0x5c]
or eax, edx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x70], ebp
je 0x418b2e
xorps xmm0, xmm0
mov dword [esp + 0x18], ecx
movlpd qword [esp + 0x58], xmm0
xor ebx, ebx
mov eax, dword [esp + 0x5c]
mov ebp, dword [esp + 0x58]
movlpd qword [esp + 0x74], xmm0
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x78]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x28], eax
mov dword [esp + 0x30], ebp
mov dword [esp + 0x38], edx
mov dword [esp + 0x10], ecx
jmp 0x418b38
mov ecx, dword [esp + 0x10]
xor edx, edx
mov ebp, dword [esp + 0x30]
cmp dword [esi + 0x6c], 4
mov dword [esp + 0x74], ebx
jne 0x418b64
mov eax, dword [esi + 0xc]
cmp dword [eax + 0x80], 0
je 0x418b64
mov ebp, ecx
mov dword [esp + 0x3c], 0
mov ebx, edx
mov dword [esp + 0x30], ebp
mov dword [esp + 0x28], ebx
jmp 0x418b68
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x20], eax
mov eax, dword [esp + 0x18]
jb 0x418b84
ja 0x418b7c
cmp edi, eax
jb 0x418b84
mov dword [esp + 0x40], 0
cmp edx, ebx
jb 0x418b96
ja 0x418b8e
cmp ecx, ebp
jb 0x418b96
mov dword [esp + 0x3c], 0
or eax, dword [esp + 0x2c]
mov edi, 0x10000
mov ecx, 0x4000
je 0x418bf9
cmp dword [esi + 0xe0], 0
jne 0x418bf9
mov eax, dword [esi + 0xc]
mov eax, dword [eax + 0xe4]
test eax, eax
jne 0x418bc5
cmp dword [esi + 0x38], 6
mov eax, edi
cmove eax, ecx
push eax
call fcn.0042eb55
add esp, 4
mov dword [esi + 0xe0], eax
test eax, eax
je 0x418c46
mov eax, dword [esi + 0xc]
mov ecx, 0x4000
mov eax, dword [eax + 0xe4]
test eax, eax
jne 0x418bf3
cmp dword [esi + 0x38], 6
mov eax, edi
cmove eax, ecx
mov dword [esi + 0xf8], eax
mov eax, ebp
or eax, ebx
je 0x418c62
cmp dword [esi + 0xdc], 0
jne 0x418c62
mov eax, dword [esi + 0xc]
mov eax, dword [eax + 0xe4]
test eax, eax
jne 0x418c1e
cmp dword [esi + 0x38], 6
mov eax, edi
cmove eax, ecx
push eax
call fcn.0042eb55
add esp, 4
mov dword [esi + 0xdc], eax
test eax, eax
je 0x418c46
mov eax, dword [esi + 0xc]
mov eax, dword [eax + 0xe4]
test eax, eax
je 0x418c50
mov dword [esi + 0xf4], eax
jmp 0x418c62
mov ebp, 0x15
jmp 0x419837
cmp dword [esi + 0x38], 6
mov eax, 0x4000
cmove edi, eax
mov dword [esi + 0xf4], edi
mov ebx, dword [esi + 0xe8]
cmp ebx, dword [esi + 0xf0]
jne 0x418c86
mov dword [esi + 0xf0], 0
xor ebx, ebx
mov dword [esi + 0xe8], 0
mov edi, dword [esi + 0xe4]
cmp edi, dword [esi + 0xec]
jne 0x418caa
mov dword [esi + 0xec], 0
xor edi, edi
mov dword [esi + 0xe4], 0
mov eax, dword [esi + 0xf8]
mov ebp, dword [esi + 0xf4]
push esi
mov dword [esp + 0x5c], eax
call fcn.00403280
add esp, 4
cmp eax, 2
jne 0x418ccf
xor ebp, ebp
jmp 0x419837
test eax, eax
je 0x418cdd
mov ebp, 0x13
jmp 0x419837
xor eax, eax
cmp ebp, edi
mov ebp, dword [esp + 0x7c]
setne al
mov dword [esp + 0x50], eax
xor eax, eax
cmp dword [esp + 0x58], ebx
mov dword [esp + 0x58], 1
setne al
xor ebx, ebx
mov dword [esp + 0x4c], eax
xor eax, eax
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
nop dword [eax]
mov edx, dword [esp + 0x18]
test ebx, ebx
jne 0x418d3b
mov eax, edx
or eax, dword [esp + 0x2c]
je 0x418d37
mov edx, dword [esp + 0x20]
mov eax, edi
or eax, edx
jne 0x418d61
cmp dword [esp + 0x24], eax
je 0x418d61
xor ebp, ebp
jmp 0x419802
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x4197e9
mov eax, dword [esp + 0x30]
or eax, dword [esp + 0x28]
je 0x4197e9
mov eax, ecx
or eax, dword [esp + 0x38]
jne 0x418d61
test ebx, ebx
jne 0x4197e9
cmp dword [esp + 0x48], 0
je 0x418e4e
mov ecx, dword [esi + 0xc]
mov eax, dword [esp + 0x14]
mov ebx, dword [ecx + 0xdc]
test ebx, ebx
je 0x418e20
test eax, eax
jne 0x418e20
mov eax, dword [esp + 0x7c]
mov edi, dword [0x453380]
cdq
cmp eax, edi
jne 0x418dfe
cmp edx, dword [0x453384]
jne 0x418dfe
mov eax, dword [esp + 0x54]
test eax, eax
je 0x418dcd
mov edx, dword [esp + 0x6c]
test edx, edx
je 0x418dcd
cmp eax, dword [ecx + 0xd8]
jl 0x418dcd
mov edi, dword [ecx + 0xd4]
test edi, edi
je 0x418df6
mov eax, edx
cdq
idiv dword [esp + 0x54]
cmp eax, edi
jle 0x418df6
mov edi, dword [esp + 0x64]
test edi, edi
je 0x418e1c
mov eax, dword [esp + 0x68]
test eax, eax
je 0x418e1c
cmp edi, dword [ecx + 0xd8]
jl 0x418e1c
mov ecx, dword [ecx + 0xd4]
test ecx, ecx
je 0x418df6
cdq
idiv edi
cmp eax, ecx
jg 0x418e1c
mov eax, ebx
mov dword [esp + 0x14], eax
jmp 0x418e20
xor eax, eax
mov dword [esp + 0x7c], edi
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x64], eax
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x48]
cmp ecx, 2
jle 0x418e4a
test eax, eax
jne 0x418e4a
cmp ecx, 0xb
jg 0x4197c6
mov ebx, dword [esp + 0x34]
add ecx, 0xfffffffe
mov edi, 1
shl edi, cl
mov dword [esp + 0x14], edi
jmp 0x418e52
mov ebx, dword [esp + 0x34]
mov edi, dword [esp + 0x14]
test edi, edi
jle 0x418ead
imul eax, dword [esp + 0xc4], 0x3e8
cmp edi, eax
jg 0x4197c6
push 0x30
lea eax, [esp + 0x8c]
push 0
push eax
call fcn.00423cf0
mov eax, dword [esi + 0x3c]
lea ecx, [esp + 0x94]
add esp, 0xc
mov dword [esp + 0x88], eax
mov eax, dword [esi + 0x40]
mov dword [esp + 0x90], eax
mov eax, dword [esi + 0xc]
push edi
push 2
push ecx
push dword [esi + 8]
mov eax, dword [eax + 0x2c]
call eax
xor eax, eax
mov dword [esp + 0x14], eax
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx + 0xe8]
test eax, eax
je 0x418ecd
cmp dword [esi + 0x1ac], 0
ja 0x418eea
jb 0x418ecd
cmp dword [esi + 0x1a8], eax
ja 0x418eea
mov eax, dword [ecx + 0xec]
test eax, eax
je 0x418ef5
cmp dword [esi + 0x1a4], 0
jb 0x418ef5
ja 0x418eea
cmp dword [esi + 0x1a0], eax
jbe 0x418ef5
push 0
push esi
call fcn.0041b360
add esp, 8
mov eax, dword [esi + 0xc0]
cmp eax, dword [0x4532ac]
jge 0x418f3e
mov eax, dword [esi + 0xc]
cmp dword [eax + 0xb8], 0
jne 0x418f27
mov eax, dword [eax + 0x5c]
push esi
call eax
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x418f27
cmp ebp, 2
jne 0x419837
mov ecx, dword [0x453290]
mov dword [esi + 0xbc], ecx
mov eax, dword [0x4532ac]
mov dword [esi + 0xc0], eax
mov edx, dword [esi + 0x100]
mov eax, edx
mov ecx, dword [esi + 0x104]
or eax, ecx
je 0x418f6a
cmp dword [esi + 0x1ac], ecx
ja 0x4197cd
jb 0x418f6a
cmp dword [esi + 0x1a8], edx
jae 0x4197cd
mov edx, dword [esi + 0x108]
mov eax, edx
mov ecx, dword [esi + 0x10c]
or eax, ecx
je 0x418f96
cmp dword [esi + 0x1a4], ecx
ja 0x4197cd
jb 0x418f96
cmp dword [esi + 0x1a0], edx
jae 0x4197cd
mov edi, dword [esp + 0x10]
mov eax, edi
mov ecx, dword [esp + 0x38]
or eax, ecx
je 0x4190b0
cmp dword [esp + 0x74], 0
je 0x4190b0
cmp dword [esi + 0xac], 0
jne 0x419006
mov eax, dword [esi + 0xe4]
lea edi, [esi + 0xe4]
push edi
sub eax, ebp
push eax
lea eax, [esi + 0xf4]
push eax
lea eax, [esi + 0xdc]
push eax
push esi
call fcn.004032c0
add esp, 0x14
cmp eax, 2
je 0x418cc8
test eax, eax
jne 0x418cd3
mov edi, dword [edi]
sub edi, dword [esi + 0xec]
xor ecx, ecx
mov dword [esp + 0x10], edi
mov dword [esp + 0x38], ecx
mov edx, dword [esp + 0x30]
mov eax, edi
or eax, ecx
jne 0x419034
mov eax, edx
mov dword [esi + 0xe4], 0
or eax, dword [esp + 0x28]
mov dword [esi + 0xec], 0
je 0x419034
mov dword [esp + 0x50], 1
mov eax, dword [esp + 0x28]
mov dword [esp + 0x60], 0x1c
cmp ecx, eax
jb 0x41904a
ja 0x41904c
cmp edi, edx
ja 0x41904c
mov edx, edi
mov ecx, dword [esi + 0xc]
lea eax, [esi + 0x164]
push 0x1c
push eax
mov eax, dword [esi + 0xdc]
add eax, dword [esi + 0xec]
push 0
push edx
push eax
push dword [esi + 0x40]
mov eax, dword [ecx + 0x34]
push dword [esi + 8]
call eax
mov ebp, eax
test ebp, ebp
jg 0x41913f
mov edi, dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [esp + 0x74], 0
call edi
test eax, eax
je 0x4190b0
call edi
cmp eax, 0x2733
je 0x4190b0
call edi
cmp eax, 0x2733
je 0x4190b0
or dword [esp + 0x44], 2
mov dword [esp + 0x24], 1
mov edi, dword [esp + 0x1c]
mov eax, edi
mov ecx, dword [esp + 0x20]
or eax, ecx
je 0x419258
cmp dword [esp + 0x70], 0
je 0x419258
cmp dword [esi + 0xac], 0
jne 0x419120
mov eax, dword [esi + 0xe8]
lea edi, [esi + 0xe8]
push edi
sub eax, ebp
push eax
lea eax, [esi + 0xf8]
push eax
lea eax, [esi + 0xe0]
push eax
push esi
call fcn.00403320
add esp, 0x14
cmp eax, 2
je 0x418cc8
test eax, eax
jne 0x418cd3
mov edi, dword [edi]
sub edi, dword [esi + 0xf0]
xor ecx, ecx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], ecx
mov eax, edi
or eax, ecx
jne 0x4191d4
mov dword [esi + 0xf0], eax
mov dword [esi + 0xe8], eax
mov eax, dword [esp + 0x24]
jmp 0x418d09
inc dword [esi + 0x1b4]
mov eax, ebp
cdq
add dword [esi + 0x1a0], eax
adc dword [esi + 0x1a4], edx
sub edi, eax
mov dword [esp + 0x10], edi
sbb dword [esp + 0x38], edx
sub dword [esp + 0x30], eax
mov eax, dword [esi + 0xe4]
sbb dword [esp + 0x28], edx
add dword [esi + 0xec], ebp
cmp dword [esi + 0xec], eax
jne 0x419190
mov dword [esi + 0xe4], 0
xor eax, eax
mov dword [esi + 0xec], 0
cmp eax, dword [esi + 0xf4]
mov eax, 1
mov edx, dword [esp + 0x50]
cmovb edx, eax
mov eax, dword [esi + 0x14]
mov dword [esp + 0x50], edx
test eax, eax
je 0x4191c3
push ebp
push 0
push esi
call eax
mov ecx, dword [esp + 0x20]
add esp, 0xc
cmp eax, ecx
cmovg ecx, eax
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x24]
mov dword [esp + 0x48], 0
jmp 0x418d05
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x60], 0x1c
cmp ecx, ebp
jb 0x4191f2
mov eax, dword [esp + 0x18]
ja 0x4191ee
cmp edi, eax
jbe 0x4191f2
mov edx, eax
jmp 0x4191f4
mov edx, edi
mov ecx, dword [esi + 0xc]
lea eax, [esi + 0x12c]
push 0x1c
push eax
mov eax, dword [esi + 0xe0]
add eax, dword [esi + 0xf0]
push 0
push edx
push eax
push dword [esi + 0x3c]
mov eax, dword [ecx + 0x34]
push dword [esi + 8]
call eax
mov ebp, eax
test ebp, ebp
jg 0x419404
mov ebx, dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [esp + 0x70], 0
call ebx
test eax, eax
je 0x419258
call ebx
cmp eax, 0x2733
je 0x419258
call ebx
cmp eax, 0x2733
je 0x419258
or dword [esp + 0x44], 1
mov dword [esp + 0x34], 1
mov eax, dword [esp + 0x28]
cmp eax, dword [esp + 0x38]
jb 0x419325
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x30]
ja 0x419278
cmp edx, ecx
jbe 0x419325
cmp dword [esp + 0x3c], 0
je 0x419325
cmp dword [esp + 0x50], 0
je 0x419325
mov eax, dword [esi + 0xf4]
mov edi, 0
mov ebx, dword [esi + 0xe4]
sub eax, ebx
mov dword [esp + 0x60], 0x1c
sbb edi, edi
sub edx, ecx
mov ecx, dword [esp + 0x28]
sbb ecx, dword [esp + 0x38]
cmp edi, ecx
jb 0x4192bf
ja 0x4192c1
cmp eax, edx
ja 0x4192c1
mov edx, eax
mov ecx, dword [esi + 0xc]
lea eax, [esp + 0x60]
push eax
lea eax, [esi + 0x12c]
push eax
mov eax, dword [esi + 0xdc]
push 0
push edx
add eax, ebx
push eax
push dword [esi + 0x3c]
mov eax, dword [ecx + 0x3c]
push dword [esi + 8]
call eax
mov ebp, eax
test ebp, ebp
jg 0x41947c
mov dword [esp + 0x3c], 0
je 0x41946a
mov ebx, dword [sym.imp.WS2_32.dll_WSAGetLastError]
call ebx
test eax, eax
je 0x419321
call ebx
cmp eax, 0x2733
je 0x419321
call ebx
cmp eax, 0x2733
jne 0x41946a
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x2c]
cmp eax, dword [esp + 0x20]
jb 0x419597
mov ecx, dword [esp + 0x18]
ja 0x419341
cmp ecx, edi
jbe 0x419597
cmp dword [esp + 0x40], 0
je 0x419597
cmp dword [esp + 0x4c], 0
je 0x419597
mov eax, dword [esi + 0xf8]
mov edx, ecx
mov ebx, dword [esi + 0xe8]
mov edi, 0
mov ecx, dword [esp + 0x2c]
sub eax, ebx
mov dword [esp + 0x60], 0x1c
sbb edi, edi
sub edx, dword [esp + 0x1c]
sbb ecx, dword [esp + 0x20]
cmp edi, ecx
jb 0x41938c
ja 0x41938e
cmp eax, edx
ja 0x41938e
mov edx, eax
mov ecx, dword [esi + 0xc]
lea eax, [esp + 0x60]
push eax
lea eax, [esi + 0x164]
push eax
mov eax, dword [esi + 0xe0]
push 0
push edx
add eax, ebx
push eax
push dword [esi + 0x40]
mov eax, dword [ecx + 0x3c]
push dword [esi + 8]
call eax
mov ebp, eax
test ebp, ebp
jg 0x4194d9
mov dword [esp + 0x40], 0
je 0x4193f2
mov ebx, dword [sym.imp.WS2_32.dll_WSAGetLastError]
call ebx
test eax, eax
je 0x419597
call ebx
cmp eax, 0x2733
je 0x419597
call ebx
cmp eax, 0x2733
je 0x419597
mov ebx, dword [esp + 0x34]
mov eax, 1
mov dword [esp + 0x24], eax
jmp 0x418d05
mov eax, ebp
cdq
sub edi, eax
mov dword [esp + 0x1c], edi
sbb dword [esp + 0x20], edx
sub dword [esp + 0x18], eax
mov eax, dword [esi + 0xe8]
sbb dword [esp + 0x2c], edx
add dword [esi + 0xf0], ebp
cmp dword [esi + 0xf0], eax
jne 0x419443
mov dword [esi + 0xe8], 0
xor eax, eax
mov dword [esi + 0xf0], 0
cmp eax, dword [esi + 0xf8]
mov eax, 1
mov edx, dword [esp + 0x4c]
cmovb edx, eax
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x24]
mov dword [esp + 0x4c], edx
jmp 0x418d09
mov eax, dword [esp + 0x24]
mov ebx, 1
mov dword [esp + 0x34], ebx
jmp 0x418d05
inc dword [esp + 0x54]
xor eax, eax
add dword [esp + 0x6c], ebp
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x64], eax
mov eax, ebp
cdq
add ecx, eax
mov dword [esp + 0x68], 0
mov dword [esp + 0x10], ecx
adc dword [esp + 0x38], edx
xor edi, edi
add dword [esi + 0xe4], ebp
mov eax, dword [esi + 0xe4]
cmp dword [esi + 0xf4], eax
mov edx, dword [esp + 0x50]
cmove edx, edi
mov edi, dword [esp + 0x1c]
xor eax, eax
mov dword [esp + 0x50], edx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x24]
jmp 0x418d10
inc dword [esp + 0x64]
mov eax, ebp
add dword [esp + 0x68], ebp
inc dword [esi + 0x1b0]
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
cdq
add dword [esi + 0x1a8], eax
mov dword [esp + 0x6c], 0
adc dword [esi + 0x1ac], edx
add edi, eax
mov eax, dword [esi + 0x14]
adc ecx, edx
mov dword [esp + 0x54], 0
add dword [esi + 0xe8], ebp
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], ecx
test eax, eax
je 0x419541
push 0
push ebp
push esi
call eax
mov ecx, dword [esp + 0x20]
add esp, 0xc
cmp eax, ecx
cmovg ecx, eax
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x4c]
mov eax, dword [esi + 0xf8]
cmp eax, dword [esi + 0xe8]
mov dword [esp + 0x4c], 0
cmove edx, dword [esp + 0x4c]
cmp dword [esi + 0x6c], 4
mov dword [esp + 0x4c], edx
jne 0x419584
mov eax, dword [esi + 0xc]
cmp dword [eax + 0x80], 0
je 0x419584
mov dword [esp + 0x18], edi
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x40], 0
mov ebx, dword [esp + 0x34]
xor eax, eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x24]
jmp 0x418d09
xor ebx, ebx
nop dword [eax]
xor edi, edi
test ebx, ebx
jne 0x4195b9
push 0x30
lea eax, [esp + 0x8c]
push ebx
push eax
call fcn.00423cf0
add esp, 0xc
mov edx, dword [esp + 0x34]
test edx, edx
jne 0x41968c
test ebx, ebx
jne 0x419615
mov eax, dword [esi + 0x3c]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x30]
or eax, dword [esp + 0x28]
je 0x4195f6
cmp dword [esp + 0x3c], edi
jne 0x4195f6
cmp dword [esp + 0x50], edi
je 0x4195f6
mov eax, 0x300
or word [esp + 0x8c], ax
cmp dword [esp + 0x70], edi
jne 0x419687
mov eax, dword [esp + 0x1c]
or eax, dword [esp + 0x20]
je 0x419687
or word [esp + 0x8c], 0x10
jmp 0x419687
test byte [esp + 0x8e], 5
je 0x41962e
or dword [esp + 0x44], 1
mov dword [esp + 0x34], 1
jmp 0x419687
test dword [esp + 0x8e], 0x300
mov eax, 1
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0x70]
cmovne ecx, eax
test byte [esp + 0x8e], 0x10
mov dword [esp + 0x3c], ecx
cmovne edi, eax
test byte [esp + 0x8e], 2
mov dword [esp + 0x70], edi
je 0x419687
test dword [esp + 0x8c], 0x300
cmovne ecx, eax
test byte [esp + 0x8c], 0x10
mov dword [esp + 0x3c], ecx
cmovne edx, eax
mov dword [esp + 0x34], edx
mov edi, 1
mov edx, dword [esp + 0x24]
test edx, edx
jne 0x419756
test ebx, ebx
jne 0x4196e9
mov eax, dword [esi + 0x40]
mov dword [esp + edi*8 + 0x88], eax
mov eax, dword [esp + 0x18]
or eax, dword [esp + 0x2c]
je 0x4196c9
cmp dword [esp + 0x40], ebx
jne 0x4196c9
cmp dword [esp + 0x4c], ebx
je 0x4196c9
mov eax, 0x300
or word [esp + edi*8 + 0x8c], ax
cmp dword [esp + 0x74], 0
jne 0x419755
mov eax, dword [esp + 0x10]
or eax, dword [esp + 0x38]
je 0x419755
or word [esp + edi*8 + 0x8c], 0x10
jmp 0x419755
movzx eax, word [esp + edi*8 + 0x8e]
test al, 5
je 0x419704
or dword [esp + 0x44], 2
mov dword [esp + 0x24], 1
jmp 0x419755
mov ecx, dword [esp + 0x40]
test eax, 0x300
cmovne ecx, dword [esp + 0x58]
test al, 0x10
mov eax, dword [esp + 0x74]
cmovne eax, dword [esp + 0x58]
mov dword [esp + 0x74], eax
movzx eax, word [esp + edi*8 + 0x8e]
mov dword [esp + 0x40], ecx
test al, 2
je 0x419755
movzx eax, word [esp + edi*8 + 0x8c]
test eax, 0x300
cmovne ecx, dword [esp + 0x58]
test al, 0x10
mov eax, 1
mov dword [esp + 0x40], ecx
cmovne edx, eax
mov dword [esp + 0x24], edx
inc edi
test ebx, ebx
jne 0x41978d
test edi, edi
je 0x4197e2
imul eax, dword [esp + 0xc4], 0x3e8
mov ecx, dword [esi + 0xc]
push eax
push edi
lea eax, [esp + 0x90]
push eax
push dword [esi + 8]
mov eax, dword [ecx + 0x2c]
call eax
mov ebp, eax
test ebp, ebp
js 0x4197a8
cmp ebp, 1
jl 0x4197d4
inc ebx
cmp ebx, 2
jl 0x4195a0
inc dword [esp + 0x48]
mov ebx, dword [esp + 0x34]
mov eax, dword [esp + 0x24]
jmp 0x418d05
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
jne 0x4197db
inc dword [esp + 0x48]
mov ebx, dword [esp + 0x34]
mov eax, dword [esp + 0x24]
jmp 0x418d05
mov ebp, 0x5d
jmp 0x419837
mov ebp, 0xa
jmp 0x419837
mov ebp, 0x5c
jmp 0x419837
mov ebp, 0x5b
jmp 0x419837
mov ebp, 0x5a
jmp 0x419837
xor ebp, ebp
or edx, dword [esp + 0x2c]
jne 0x4197fe
mov eax, dword [esi + 0x58]
or eax, dword [esi + 0x5c]
je 0x4197fe
lea ebp, [edx + 0x62]
jmp 0x419837
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x30]
or eax, dword [esp + 0x28]
jne 0x41981b
mov eax, dword [esi + 0x50]
or eax, dword [esi + 0x54]
je 0x41981b
mov ebp, 0x63
jmp 0x419837
mov eax, dword [esp + 0x44]
test eax, eax
je 0x419828
lea ebp, [eax + 0x5e]
jmp 0x419837
or ecx, dword [esp + 0x38]
jne 0x419832
or edi, edx
je 0x419837
mov ebp, 0x5e
mov ecx, dword [esp + 0xb8]
mov eax, ebp
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0042255f
add esp, 0xac
ret