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

Disassembly:
sub esp, 0xc8
push ebx
mov ebx, ecx
push edi
mov edi, dword [ebx + 0xc]
dec edi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], edi
js 0x538c4d
push ebp
push esi
xor ebp, ebp
mov eax, dword [ebx + 8]
mov esi, dword [eax + edi*4]
cmp dword [esi + 0x40], ebp
jne 0x538651
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
mov edx, dword [eax + ecx*4 - 4]
mov dword [eax + edi*4], edx
mov eax, dword [ebx + 8]
mov ecx, dword [eax + edi*4]
mov dword [ecx + 0x24], edi
dec dword [ebx + 0xc]
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx]
jmp 0x538c40
mov al, byte [esi + 0x28]
test al, al
je 0x538c40
mov ecx, dword [esi + 0x6c]
mov eax, dword [esi + 0x50]
lea edx, [ecx + eax*4]
add edx, dword [esi + 0x5c]
push edx
lea ecx, [esp + 0x44]
call fcn.00537a00
lea eax, [esp + 0x40]
push eax
mov ecx, esi
call fcn.00540640
mov ecx, dword [esi + 0x40]
push ecx
lea ecx, [esp + 0x6c]
call fcn.0046e1db
mov edx, dword [esp + 0x44]
push edx
lea ecx, [esp + 0x58]
call fcn.0046e1db
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x6c]
push ecx
lea ecx, [esp + 0x3c]
call fcn.00551d00
mov edx, dword [esi + 0x40]
push edx
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x3c]
call fcn.00551e60
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov eax, dword [edx]
neg ecx
cmp eax, ecx
je 0x538b10
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x38]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], connect
call fcn.00551fc0
mov ecx, dword [esp + 0x1c]
mov eax, 1
cmp ecx, eax
mov dword [esp + 0x14], eax
jle 0x538830
mov dword [esp + 0x10], 0xc
mov edi, edi
mov ecx, dword [0x9617f0]
mov edx, dword [ecx]
push 0x2d
push 0xa8
call dword [edx + 0x10]
mov ebp, dword [esp + 0x24]
push ebp
mov ecx, eax
mov word [eax + 4], 0xa8
call fcn.0053fa60
mov ecx, dword [ebp + 0xc]
lea edi, [ebp + 8]
mov ebx, eax
mov eax, dword [edi + 8]
and eax, 0x7fffffff
cmp ecx, eax
jne 0x538753
push 4
push edi
call fcn.0054d2c0
add esp, 8
mov ecx, dword [edi + 4]
mov edx, dword [edi]
mov dword [edx + ecx*4], ebx
inc dword [edi + 4]
mov eax, dword [ebp + 0xc]
mov ebp, dword [esp + 0x10]
dec eax
mov dword [ebx + 0x24], eax
mov cl, byte [esi + 0x30]
mov byte [ebx + 0x30], cl
mov edx, dword [esp + 0x18]
mov ecx, dword [ebx + 0x44]
mov eax, dword [edx + ebp + 4]
lea edi, [ebx + 0x3c]
and ecx, 0x7fffffff
cmp ecx, eax
jge 0x538793
push 4
push eax
push edi
call fcn.0054d250
add esp, 0xc
mov edx, dword [esp + 0x18]
mov eax, dword [edi + 8]
mov ebp, dword [edx + ebp + 4]
and eax, 0x7fffffff
cmp eax, ebp
jge 0x5387bb
add eax, eax
cmp ebp, eax
jl 0x5387af
mov eax, ebp
push 4
push eax
push edi
call fcn.0054d250
add esp, 0xc
mov ecx, dword [esp + 0x10]
mov dword [edi + 4], ebp
mov eax, dword [esp + 0x18]
mov edx, dword [ecx + eax + 4]
xor edi, edi
test edx, edx
jle 0x538810
mov edx, dword [esp + 0x10]
mov eax, dword [edx + eax]
mov ecx, dword [eax + edi*4]
mov edx, dword [esi + 0x3c]
mov ebp, dword [edx + ecx*4]
mov ecx, dword [ebp + 0x3c]
mov dword [ebp + 0x44], ebx
mov dword [ebp + 0x58], edi
mov eax, dword [ecx]
call dword [eax + 0x14]
sub dword [esi + 0x14], eax
mov ecx, dword [ebx + 0x14]
mov edx, dword [esp + 0x10]
add ecx, eax
mov dword [ebx + 0x14], ecx
mov ecx, dword [ebx + 0x3c]
mov dword [ecx + edi*4], ebp
mov eax, dword [esp + 0x18]
mov ecx, dword [edx + eax + 4]
inc edi
cmp edi, ecx
jl 0x5387d0
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
inc eax
add edx, 0xc
cmp eax, ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edx
jl 0x538710
mov ecx, dword [esi + 0x40]
xor eax, eax
test ecx, ecx
jle 0x538868
lea esp, [esp]
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx + eax*4]
cmp dword [ecx + 0x44], esi
je 0x53885f
mov ecx, dword [esi + 0x40]
dec ecx
mov dword [esi + 0x40], ecx
mov edx, ecx
mov ecx, dword [esi + 0x3c]
mov edx, dword [ecx + edx*4]
mov dword [ecx + eax*4], edx
jmp 0x538863
mov dword [ecx + 0x58], eax
inc eax
cmp eax, dword [esi + 0x40]
jl 0x538840
mov ebx, dword [esi + 0x50]
dec ebx
js 0x538959
mov ecx, dword [esi + 0x4c]
lea eax, [esp + 0x98]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], reloc.WS2_32.dll_recv
mov ecx, dword [ecx + ebx*4]
mov edx, dword [ecx]
lea eax, [esp + 0x8c]
push eax
call dword [edx + 0x18]
mov edx, dword [esp + 0x90]
xor eax, eax
xor ecx, ecx
test edx, edx
jle 0x5388d2
mov edi, dword [esp + 0x8c]
or ebp, 0xffffffff
mov eax, dword [edi + ecx*4]
mov eax, dword [eax + 0x44]
cmp dword [eax + 0x24], ebp
jne 0x5388d2
inc ecx
cmp ecx, edx
jl 0x5388c2
mov ecx, dword [esi + 0x4c]
mov edx, dword [ecx + ebx*4]
mov dword [edx + 0x10], eax
mov eax, dword [esi + 0x4c]
mov ecx, dword [eax + ebx*4]
mov edi, dword [ecx + 0x10]
cmp edi, esi
lea ebp, [eax + ebx*4]
je 0x538929
mov edx, dword [edi + 0x54]
mov eax, dword [edi + 0x50]
add edi, 0x4c
and edx, 0x7fffffff
cmp eax, edx
jne 0x538909
push 4
push edi
call fcn.0054d2c0
add esp, 8
mov eax, dword [edi + 4]
mov ecx, dword [edi]
mov edx, dword [ebp]
mov dword [ecx + eax*4], edx
inc dword [edi + 4]
mov eax, dword [esi + 0x50]
dec eax
mov dword [esi + 0x50], eax
mov ecx, eax
mov eax, dword [esi + 0x4c]
mov ecx, dword [eax + ecx*4]
mov dword [eax + ebx*4], ecx
mov eax, dword [esp + 0x94]
test eax, eax
js 0x538952
mov ecx, dword [0x9617f0]
mov edx, dword [ecx]
and eax, 0x7fffffff
push 0x12
shl eax, 2
push eax
mov eax, dword [esp + 0x94]
push eax
call dword [edx + 0x14]
dec ebx
jns 0x538872
mov edx, dword [esi + 0x5c]
dec edx
mov dword [esp + 0x10], edx
js 0x5389ff
mov ecx, dword [esi + 0x58]
lea eax, [ecx + edx*4]
mov ecx, dword [eax]
mov edi, dword [ecx + 0xc]
mov ebx, dword [edi + 0x44]
cmp dword [ebx + 0x24], 0xffffffff
jne 0x538981
mov ecx, dword [ecx + 0x10]
mov ebx, dword [ecx + 0x44]
cmp ebx, esi
je 0x5389f4
mov edx, dword [esi + 0x5c]
mov ebp, dword [eax]
mov eax, dword [esi + 0x58]
dec edx
mov dword [esi + 0x5c], edx
mov ecx, edx
mov edx, dword [eax + ecx*4]
mov ecx, dword [esp + 0x10]
mov dword [eax + ecx*4], edx
mov edx, dword [ebx + 0x60]
mov eax, dword [ebx + 0x5c]
lea edi, [ebx + 0x58]
and edx, 0x7fffffff
cmp eax, edx
jne 0x5389bb
push 4
push edi
call fcn.0054d2c0
add esp, 8
mov eax, dword [edi + 4]
mov ecx, dword [edi]
mov dword [ecx + eax*4], ebp
inc dword [edi + 4]
mov edx, dword [ebp]
lea eax, [esp + 0x7c]
push eax
mov ecx, ebp
mov dword [ebp + 0x14], ebx
call dword [edx + 0x28]
mov edx, dword [ebx]
lea eax, [esp + 0x7c]
push eax
push ebp
mov ecx, ebx
call dword [edx + 8]
mov edx, dword [esi]
lea eax, [esp + 0x7c]
push eax
push ebp
mov ecx, esi
call dword [edx + 0xc]
mov edx, dword [esp + 0x10]
dec edx
mov dword [esp + 0x10], edx
jns 0x538967
mov eax, dword [esi + 0x6c]
lea ebp, [esi + 0x68]
xor edi, edi
cmp eax, edi
mov dword [esp + 0x10], edi
mov dword [esp + 0x30], edi
jle 0x538ad2
mov dword [esp + 0x14], edi
mov dword [esp + 0x2c], edi
nop
mov ecx, dword [ebp]
mov edx, dword [edi + ecx]
mov eax, dword [edx + 0x10]
mov eax, dword [eax + 0x44]
mov edx, dword [eax + 0x24]
add edi, ecx
cmp edx, 0xffffffff
jne 0x538a3f
mov edx, dword [edi + 4]
mov eax, dword [edx + 0x10]
mov eax, dword [eax + 0x44]
cmp eax, esi
je 0x538a86
mov ecx, dword [eax + 0x70]
lea ebx, [eax + 0x68]
mov eax, dword [ebx + 4]
and ecx, 0x7fffffff
cmp eax, ecx
jne 0x538a61
push 0x10
push ebx
call fcn.0054d2c0
add esp, 8
mov edx, dword [ebx + 4]
mov ecx, dword [ebx]
mov eax, dword [edi]
shl edx, 4
add edx, ecx
mov dword [edx], eax
mov ecx, dword [edi + 4]
mov dword [edx + 4], ecx
mov eax, dword [edi + 8]
mov dword [edx + 8], eax
mov ecx, dword [edi + 0xc]
mov dword [edx + 0xc], ecx
inc dword [ebx + 4]
jmp 0x538ab3
mov eax, dword [esp + 0x14]
lea edx, [eax + ecx]
mov ecx, dword [edi]
mov dword [edx], ecx
mov ecx, dword [edi + 4]
mov dword [edx + 4], ecx
mov ecx, dword [edi + 8]
mov dword [edx + 8], ecx
mov ecx, dword [edi + 0xc]
mov dword [edx + 0xc], ecx
mov edx, dword [esp + 0x10]
inc edx
add eax, 0x10
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x2c]
mov ecx, dword [ebp + 4]
inc eax
add edi, 0x10
cmp eax, ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], edi
jl 0x538a20
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x10]
and eax, 0x7fffffff
cmp eax, ecx
jge 0x538af6
add eax, eax
cmp ecx, eax
jl 0x538aea
mov eax, ecx
push 0x10
push eax
push ebp
call fcn.0054d250
add esp, 0xc
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x18]
mov dword [ebp + 4], edx
call fcn.00551f60
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
xor ebp, ebp
lea ecx, [esp + 0x34]
mov byte [esi + 0x28], 0
call fcn.00552400
mov eax, dword [esp + 0x64]
mov ecx, dword [0x9617f0]
lea eax, [eax*4 + 0xf]
and eax, 0xfffffff0
je 0x538b4b
mov edx, dword [ecx + 0x14]
mov esi, dword [esp + 0x60]
cmp esi, edx
je 0x538b42
cmp edx, ebp
jne 0x538b4b
mov edx, dword [ecx]
push eax
push esi
call dword [edx + 0x28]
jmp 0x538b5b
mov esi, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
sub esi, eax
add edx, eax
mov dword [ecx + 8], esi
mov dword [ecx + 0xc], edx
mov eax, dword [esp + 0x5c]
test eax, eax
js 0x538b7e
mov ecx, dword [0x9617f0]
mov edx, dword [ecx]
and eax, 0x7fffffff
push 0x12
shl eax, 2
push eax
mov eax, dword [esp + 0x5c]
push eax
call dword [edx + 0x14]
mov eax, dword [esp + 0x78]
mov ecx, dword [0x9617f0]
lea eax, [eax*4 + 0xf]
and eax, 0xfffffff0
je 0x538bac
mov edx, dword [ecx + 0x14]
mov esi, dword [esp + 0x74]
cmp esi, edx
je 0x538ba3
cmp edx, ebp
jne 0x538bac
mov edx, dword [ecx]
push eax
push esi
call dword [edx + 0x28]
jmp 0x538bbc
mov esi, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
sub esi, eax
add edx, eax
mov dword [ecx + 8], esi
mov dword [ecx + 0xc], edx
mov eax, dword [esp + 0x70]
test eax, eax
js 0x538bdf
mov ecx, dword [0x9617f0]
mov edx, dword [ecx]
and eax, 0x7fffffff
push 0x12
shl eax, 2
push eax
mov eax, dword [esp + 0x70]
push eax
call dword [edx + 0x14]
mov eax, dword [esp + 0x50]
mov ecx, dword [0x9617f0]
lea eax, [eax*8 + 0xf]
and eax, 0xfffffff0
je 0x538c0d
mov edx, dword [ecx + 0x14]
mov esi, dword [esp + 0x4c]
cmp esi, edx
je 0x538c04
cmp edx, ebp
jne 0x538c0d
mov edx, dword [ecx]
push eax
push esi
call dword [edx + 0x28]
jmp 0x538c1d
mov esi, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
sub esi, eax
add edx, eax
mov dword [ecx + 8], esi
mov dword [ecx + 0xc], edx
mov eax, dword [esp + 0x48]
test eax, eax
js 0x538c40
mov ecx, dword [0x9617f0]
mov edx, dword [ecx]
and eax, 0x7fffffff
push 0x12
shl eax, 3
push eax
mov eax, dword [esp + 0x48]
push eax
call dword [edx + 0x14]
dec edi
mov dword [esp + 0x28], edi
jns 0x538620
pop esi
pop ebp
pop edi
pop ebx
add esp, 0xc8
ret