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

Disassembly:
sub esp, 0x68
mov eax, edx
mov dword [esp + 0x20], ecx
sub eax, dword [esp + 0x78]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x6c]
push ebx
push ebp
mov ebp, eax
mov dword [esp + 0x20], edx
sub ebp, dword [esp + 0x7c]
push esi
mov esi, edx
mov dword [esp + 0x5c], ebp
sub esi, dword [esp + 0x80]
mov ebp, eax
sub ebp, dword [esp + 0x84]
mov ecx, esi
sub ecx, ebp
mov dword [esp + 0x28], ebp
and ecx, 1
mov dword [esp + 0xc], ebp
mov dword [esp + 0x60], ecx
mov ebx, esi
mov ecx, ebp
mov dword [esp + 0x70], esi
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x88]
push edi
mov edi, esi
mov dword [esp + 0x14], 1
mov dword [esp + 0x44], 4
mov dword [ecx + esi*4], edx
mov edx, dword [esp + 0x90]
mov dword [edx + ebp*4], eax
xor ebp, ebp
mov eax, dword [esp + 0x2c]
inc eax
mov dword [esp + 0x50], ebp
mov dword [esp + 0x48], ebp
mov dword [esp + 0x54], ebp
mov dword [esp + 0x4c], ebp
lea eax, [edx + eax*4]
sub edx, 4
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x2c]
lea eax, [edx + eax*4]
mov dword [esp + 0x34], eax
lea edx, [ecx + 4]
lea eax, [ecx - 4]
lea edx, [edx + esi*4]
lea eax, [eax + esi*4]
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x1c], 0
cmp ebx, dword [esp + 0x5c]
jle 0x100c29fa
sub eax, 4
mov dword [esp + 0x6c], eax
mov dword [eax], 0xffffffff
or eax, 0xffffffff
jmp 0x100c2a06
add eax, 4
mov dword [esp + 0x6c], eax
mov eax, 1
add ebx, eax
mov dword [esp + 0x24], ebx
cmp edi, dword [esp + 0x60]
jge 0x100c2a2b
add edx, 4
mov ecx, 1
mov dword [esp + 0x58], edx
or eax, 0xffffffff
mov dword [edx], 0xffffffff
mov edx, ecx
jmp 0x100c2a3c
sub edx, 4
or ecx, 0xffffffff
mov dword [esp + 0x58], edx
mov eax, 1
or edx, ecx
add dword [esp + 0x48], ecx
add edi, edx
add dword [esp + 0x4c], eax
mov esi, edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x40], esi
cmp edi, ebx
jl 0x100c2b17
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x3c], ebx
mov eax, dword [ebx - 8]
lea ebp, [ebx - 8]
cmp eax, dword [ebx]
mov dword [esp + 0x70], ebp
lea edi, [eax + 1]
cmovl edi, dword [ebx]
mov edx, edi
mov dword [esp + 0x68], edi
sub edx, esi
mov eax, edi
cmp edi, dword [esp + 0x7c]
jge 0x100c2ab4
mov ebp, dword [esp + 0x88]
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x80]
cmp edx, ebp
jge 0x100c2aa8
mov ecx, dword [edi + eax*4]
cmp ecx, dword [esi + edx*4]
jne 0x100c2aa8
inc eax
inc edx
cmp eax, dword [esp + 0x7c]
jl 0x100c2a94
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x68]
mov ebx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x9c]
mov ecx, eax
sub ecx, edi
mov dword [ebx - 4], eax
mov edi, dword [esp + 0x1c]
cmp ecx, dword [ebp + 4]
mov ecx, 1
mov ebp, dword [esp + 0x70]
cmovg edi, ecx
cmp dword [esp + 0x64], 0
mov dword [esp + 0x1c], edi
je 0x100c2afc
cmp dword [esp + 0x10], esi
jg 0x100c2afc
cmp esi, dword [esp + 0x18]
jg 0x100c2afc
mov ecx, dword [esp + 0x90]
cmp dword [ecx + esi*4], eax
jle 0x100c2f3f
sub esi, 2
mov dword [esp + 0x3c], ebp
mov ebx, ebp
mov dword [esp + 0x40], esi
cmp esi, dword [esp + 0x24]
jge 0x100c2a60
mov ebp, dword [esp + 0x10]
cmp ebp, dword [esp + 0x5c]
jle 0x100c2b33
mov ecx, dword [esp + 0x34]
sub ecx, 4
or eax, 0xffffffff
mov dword [esp + 0x34], ecx
mov dword [ecx], connect
jmp 0x100c2b3d
add dword [esp + 0x34], 4
mov eax, 1
mov esi, dword [esp + 0x18]
add ebp, eax
mov edi, dword [esp + 0x38]
mov dword [esp + 0x10], ebp
cmp esi, dword [esp + 0x60]
jge 0x100c2b66
add edi, 4
mov ecx, 1
or eax, 0xffffffff
mov edx, ecx
mov dword [edi], connect
jmp 0x100c2b73
or ecx, 0xffffffff
sub edi, 4
mov eax, 1
or edx, ecx
add dword [esp + 0x50], ecx
add esi, edx
add dword [esp + 0x54], eax
mov ebx, esi
mov dword [esp + 0x38], edi
mov dword [esp + 0x18], esi
mov dword [esp + 0x40], ebx
cmp esi, ebp
jl 0x100c2c5f
mov eax, edi
mov dword [esp + 0x3c], eax
nop dword [eax]
mov ebp, dword [eax - 8]
lea edx, [eax - 8]
mov eax, dword [eax]
cmp ebp, eax
mov dword [esp + 0x70], edx
lea ecx, [eax - 1]
cmovge ebp, ecx
mov edi, ebp
mov esi, ebp
sub edi, ebx
cmp ebp, dword [esp + 0x28]
jle 0x100c2c00
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x30]
add ecx, 0xfffffffc
mov ebx, dword [esp + 0x84]
add edx, 0xfffffffc
lea ecx, [ecx + edi*4]
lea edx, [edx + ebp*4]
nop
cmp edi, ebx
jle 0x100c2bf8
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x100c2bf8
dec esi
sub edx, 4
dec edi
sub ecx, 4
cmp esi, dword [esp + 0x28]
jg 0x100c2be0
mov ebx, dword [esp + 0x40]
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x9c]
sub ebp, esi
mov ecx, dword [esp + 0x1c]
cmp ebp, dword [eax + 4]
mov eax, 1
cmovg ecx, eax
cmp dword [esp + 0x64], 0
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x1c], ecx
mov dword [eax - 4], esi
jne 0x100c2c46
cmp dword [esp + 0x24], ebx
jg 0x100c2c46
cmp ebx, dword [esp + 0x20]
jg 0x100c2c46
mov eax, dword [esp + 0x8c]
cmp esi, dword [eax + ebx*4]
jle 0x100c2f65
sub ebx, 2
mov dword [esp + 0x3c], edx
mov eax, edx
mov dword [esp + 0x40], ebx
cmp ebx, dword [esp + 0x10]
jge 0x100c2ba0
jmp 0x100c2c63
mov ecx, dword [esp + 0x1c]
cmp dword [esp + 0x94], 0
jne 0x100c2ecc
test ecx, ecx
je 0x100c2eb9
mov edi, dword [esp + 0x9c]
mov eax, dword [esp + 0x14]
cmp eax, dword [edi + 8]
jle 0x100c2eb9
mov ecx, dword [esp + 0x20]
xor ebp, ebp
mov eax, ecx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x3c], eax
cmp ecx, dword [esp + 0x24]
jl 0x100c2db8
mov edi, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x68], edi
mov dword [esp + 0x40], edx
nop
mov ebx, dword [esp + 0x8c]
mov esi, dword [ebx + eax*4]
mov ebx, esi
sub ebx, eax
mov eax, edi
mov edi, dword [esp + 0x74]
cmp dword [esp + 0x3c], edi
mov edi, ebx
cmovle eax, edx
sub edi, eax
mov eax, dword [esp + 0x28]
sub edi, eax
sub edi, ecx
add edi, esi
cmp edi, dword [esp + 0x44]
jle 0x100c2d7b
cmp edi, ebp
jle 0x100c2d7b
mov ebp, dword [esp + 0x9c]
mov ebp, dword [ebp + 4]
add eax, ebp
cmp eax, esi
jg 0x100c2d77
cmp esi, dword [esp + 0x7c]
jge 0x100c2d77
lea eax, [ecx + ebp]
cmp eax, ebx
jg 0x100c2d77
cmp ebx, dword [esp + 0x88]
jge 0x100c2d77
mov eax, dword [esp + 0x30]
mov ecx, 1
mov edx, dword [esp + 0x80]
mov eax, dword [eax + esi*4 - 4]
cmp eax, dword [edx + ebx*4 - 4]
mov edx, dword [esp + 0x40]
jne 0x100c2d70
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x30]
add edx, 0xfffffffc
sub eax, 4
lea edx, [edx + ebx*4]
lea esi, [eax + esi*4]
cmp ecx, ebp
je 0x100c2eea
mov eax, dword [esi - 4]
sub esi, 4
sub edx, 4
inc ecx
cmp eax, dword [edx]
je 0x100c2d56
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x84]
mov ebp, dword [esp + 0x1c]
mov esi, dword [esp + 0x98]
mov eax, dword [esp + 0x3c]
add edx, 2
mov edi, dword [esp + 0x68]
sub eax, 2
sub edi, 2
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], edx
mov dword [esp + 0x68], edi
cmp eax, dword [esp + 0x24]
jge 0x100c2cc0
test ebp, ebp
jg 0x100c2f8b
mov edi, dword [esp + 0x9c]
mov ecx, dword [esp + 0x18]
xor esi, esi
mov eax, ecx
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], eax
cmp ecx, dword [esp + 0x10]
jl 0x100c2eb9
mov ebx, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x68], ebx
mov dword [esp + 0x1c], ecx
mov edx, dword [esp + 0x90]
mov edx, dword [edx + eax*4]
mov ebp, edx
sub ebp, eax
mov eax, ebx
mov ebx, dword [esp + 0x2c]
cmp dword [esp + 0x40], ebx
cmovle eax, ecx
mov ecx, dword [esp + 0x7c]
mov ebx, ecx
sub ebx, eax
sub ebx, ebp
sub ebx, edx
add ebx, dword [esp + 0x88]
cmp ebx, dword [esp + 0x44]
jle 0x100c2e7a
cmp ebx, esi
jle 0x100c2e7a
cmp dword [esp + 0x28], edx
jge 0x100c2e7a
mov edi, dword [edi + 4]
mov eax, ecx
sub eax, edi
cmp edx, eax
jg 0x100c2e7a
cmp dword [esp + 0x84], ebp
jge 0x100c2e7a
mov eax, dword [esp + 0x88]
sub eax, edi
cmp ebp, eax
jg 0x100c2e7a
mov eax, dword [esp + 0x30]
xor ecx, ecx
lea esi, [eax + edx*4]
mov eax, dword [esp + 0x80]
lea edx, [eax + ebp*4]
mov eax, dword [esi]
cmp eax, dword [edx]
jne 0x100c2e76
dec edi
nop dword [eax + eax]
cmp ecx, edi
je 0x100c2f1a
mov eax, dword [esi + 4]
add esi, 4
add edx, 4
inc ecx
cmp eax, dword [edx]
je 0x100c2e60
mov esi, dword [esp + 0x3c]
mov edx, dword [esp + 0x98]
mov eax, dword [esp + 0x40]
mov ebx, dword [esp + 0x68]
sub eax, 2
add dword [esp + 0x1c], 2
sub ebx, 2
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x9c]
mov dword [esp + 0x40], eax
mov dword [esp + 0x68], ebx
cmp eax, dword [esp + 0x10]
jge 0x100c2de2
test esi, esi
jg 0x100c2fa5
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x14]
cmp ecx, dword [eax]
jge 0x100c2fbf
inc dword [esp + 0x14]
add dword [esp + 0x44], 4
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x6c]
jmp 0x100c29d6
mov ecx, dword [esp + 0x3c]
mov ebp, edi
mov edx, dword [esp + 0x8c]
mov esi, dword [esp + 0x98]
mov dword [esp + 0x1c], ebp
mov eax, dword [edx + ecx*4]
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x84]
mov dword [esi], eax
mov dword [esi + 4], ebx
jmp 0x100c2d82
mov ecx, dword [esp + 0x40]
mov esi, ebx
mov edi, dword [esp + 0x90]
mov edx, dword [esp + 0x98]
mov dword [esp + 0x3c], esi
mov eax, dword [edi + ecx*4]
mov dword [edx], eax
mov dword [edx + 4], ebp
jmp 0x100c2e81
mov ecx, dword [esp + 0x98]
pop edi
pop esi
pop ebp
mov dword [ecx], eax
mov eax, dword [esp + 8]
mov dword [ecx + 4], edx
mov dword [ecx + 0xc], 1
mov dword [ecx + 8], 1
pop ebx
add esp, 0x68
ret
mov eax, dword [esp + 0x98]
mov dword [eax + 4], edi
pop edi
mov dword [eax], esi
pop esi
pop ebp
mov dword [eax + 0xc], 1
mov dword [eax + 8], 1
mov eax, dword [esp + 8]
pop ebx
add esp, 0x68
ret
mov eax, dword [esp + 0x14]
pop edi
mov dword [esi + 8], 1
mov dword [esi + 0xc], 0
pop esi
pop ebp
pop ebx
add esp, 0x68
ret
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebp
mov dword [edx + 8], 0
mov dword [edx + 0xc], 1
pop ebx
add esp, 0x68
ret
mov eax, dword [esp + 0x20]
or ebx, 0xffffffff
or edi, ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x58], edi
cmp eax, dword [esp + 0x24]
jl 0x100c302e
mov ebp, dword [esp + 0x88]
nop dword [eax]
mov ecx, dword [esp + 0x8c]
mov esi, dword [esp + 0x7c]
mov eax, dword [ecx + eax*4]
cmp eax, esi
mov ecx, dword [esp + 0x20]
cmovl esi, eax
mov edx, esi
sub edx, ecx
cmp ebp, edx
mov eax, edx
cmovl eax, ebp
add ecx, ebp
cmp ebp, edx
cmovge ecx, esi
add eax, ecx
cmp edi, eax
cmovge eax, edi
cmovl ebx, ecx
mov edi, eax
mov eax, dword [esp + 0x20]
sub eax, 2
mov dword [esp + 0x20], eax
cmp eax, dword [esp + 0x24]
jge 0x100c2fe0
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x58], edi
mov eax, dword [esp + 0x18]
mov ebp, closesocket
mov ebx, ebp
cmp eax, dword [esp + 0x10]
jl 0x100c3097
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x90]
mov esi, dword [ecx + eax*4]
cmp edi, esi
mov ecx, dword [esp + 0x84]
cmovg esi, edi
mov edi, dword [esp + 0x28]
mov edx, esi
sub edx, eax
cmp edx, ecx
mov eax, edx
cmovl eax, ecx
add ecx, dword [esp + 0x18]
cmp edx, dword [esp + 0x84]
cmovge ecx, esi
add eax, ecx
cmp eax, ebx
cmovge eax, ebx
cmovl ebp, ecx
mov ebx, eax
mov eax, dword [esp + 0x18]
sub eax, 2
mov dword [esp + 0x18], eax
cmp eax, dword [esp + 0x10]
jge 0x100c3043
mov edi, dword [esp + 0x58]
mov edx, dword [esp + 0x7c]
mov ecx, edi
sub ecx, dword [esp + 0x28]
sub edx, ebx
add edx, dword [esp + 0x88]
sub ecx, dword [esp + 0x84]
mov edi, dword [esp + 0x98]
cmp edx, ecx
mov eax, dword [esp + 0x6c]
cmovge eax, ebp
sub ebx, ebp
mov dword [edi], eax
mov edi, dword [esp + 0x58]
sub edi, dword [esp + 0x6c]
cmp edx, ecx
cmovge edi, ebx
mov ebx, dword [esp + 0x98]
xor eax, eax
cmp edx, ecx
setl al
mov dword [ebx + 4], edi
mov dword [ebx + 8], eax
xor eax, eax
pop edi
cmp edx, ecx
pop esi
setge al
mov dword [ebx + 0xc], eax
mov eax, dword [esp + 0xc]
pop ebp
pop ebx
add esp, 0x68
ret