Function at 0x100c3550
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 0x100c362a
sub eax, 4
mov dword [esp + 0x6c], eax
mov dword [eax], 0xffffffff
or eax, 0xffffffff
jmp 0x100c3636
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 0x100c365b
add edx, 4
mov ecx, 1
mov dword [esp + 0x58], edx
or eax, 0xffffffff
mov dword [edx], 0xffffffff
mov edx, ecx
jmp 0x100c366c
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 0x100c3747
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 0x100c36e4
mov ebp, dword [esp + 0x88]
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x80]
cmp edx, ebp
jge 0x100c36d8
mov ecx, dword [edi + eax*4]
cmp ecx, dword [esi + edx*4]
jne 0x100c36d8
inc eax
inc edx
cmp eax, dword [esp + 0x7c]
jl 0x100c36c4
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 0x100c372c
cmp dword [esp + 0x10], esi
jg 0x100c372c
cmp esi, dword [esp + 0x18]
jg 0x100c372c
mov ecx, dword [esp + 0x90]
cmp dword [ecx + esi*4], eax
jle 0x100c3b6f
sub esi, 2
mov dword [esp + 0x3c], ebp
mov ebx, ebp
mov dword [esp + 0x40], esi
cmp esi, dword [esp + 0x24]
jge 0x100c3690
mov ebp, dword [esp + 0x10]
cmp ebp, dword [esp + 0x5c]
jle 0x100c3763
mov ecx, dword [esp + 0x34]
sub ecx, 4
or eax, 0xffffffff
mov dword [esp + 0x34], ecx
mov dword [ecx], closesocket
jmp 0x100c376d
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 0x100c3796
add edi, 4
mov ecx, 1
or eax, 0xffffffff
mov edx, ecx
mov dword [edi], closesocket
jmp 0x100c37a3
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 0x100c388f
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 0x100c3830
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 0x100c3828
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x100c3828
dec esi
sub edx, 4
dec edi
sub ecx, 4
cmp esi, dword [esp + 0x28]
jg 0x100c3810
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 0x100c3876
cmp dword [esp + 0x24], ebx
jg 0x100c3876
cmp ebx, dword [esp + 0x20]
jg 0x100c3876
mov eax, dword [esp + 0x8c]
cmp esi, dword [eax + ebx*4]
jle 0x100c3b95
sub ebx, 2
mov dword [esp + 0x3c], edx
mov eax, edx
mov dword [esp + 0x40], ebx
cmp ebx, dword [esp + 0x10]
jge 0x100c37d0
jmp 0x100c3893
mov ecx, dword [esp + 0x1c]
cmp dword [esp + 0x94], 0
jne 0x100c3afc
test ecx, ecx
je 0x100c3ae9
mov edi, dword [esp + 0x9c]
mov eax, dword [esp + 0x14]
cmp eax, dword [edi + 8]
jle 0x100c3ae9
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 0x100c39e8
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 0x100c39ab
cmp edi, ebp
jle 0x100c39ab
mov ebp, dword [esp + 0x9c]
mov ebp, dword [ebp + 4]
add eax, ebp
cmp eax, esi
jg 0x100c39a7
cmp esi, dword [esp + 0x7c]
jge 0x100c39a7
lea eax, [ecx + ebp]
cmp eax, ebx
jg 0x100c39a7
cmp ebx, dword [esp + 0x88]
jge 0x100c39a7
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 0x100c39a0
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 0x100c3b1a
mov eax, dword [esi - 4]
sub esi, 4
sub edx, 4
inc ecx
cmp eax, dword [edx]
je 0x100c3986
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 0x100c38f0
test ebp, ebp
jg 0x100c3bbb
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 0x100c3ae9
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 0x100c3aaa
cmp ebx, esi
jle 0x100c3aaa
cmp dword [esp + 0x28], edx
jge 0x100c3aaa
mov edi, dword [edi + 4]
mov eax, ecx
sub eax, edi
cmp edx, eax
jg 0x100c3aaa
cmp dword [esp + 0x84], ebp
jge 0x100c3aaa
mov eax, dword [esp + 0x88]
sub eax, edi
cmp ebp, eax
jg 0x100c3aaa
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 0x100c3aa6
dec edi
nop dword [eax + eax]
cmp ecx, edi
je 0x100c3b4a
mov eax, dword [esi + 4]
add esi, 4
add edx, 4
inc ecx
cmp eax, dword [edx]
je 0x100c3a90
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 0x100c3a12
test esi, esi
jg 0x100c3bd5
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x14]
cmp ecx, dword [eax]
jge 0x100c3bef
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 0x100c3606
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 0x100c39b2
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 0x100c3ab1
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 0x100c3c5e
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 0x100c3c10
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 0x100c3cc7
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 0x100c3c73
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