Function at 0x100c28e0
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 0x100c29ba
sub eax, 4
mov dword [esp + 0x6c], eax
mov dword [eax], 0xffffffff
or eax, 0xffffffff
jmp 0x100c29c6
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 0x100c29eb
add edx, 4
mov ecx, 1
mov dword [esp + 0x58], edx
or eax, 0xffffffff
mov dword [edx], 0xffffffff
mov edx, ecx
jmp 0x100c29fc
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 0x100c2ad7
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 0x100c2a74
mov ebp, dword [esp + 0x88]
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x80]
cmp edx, ebp
jge 0x100c2a68
mov ecx, dword [edi + eax*4]
cmp ecx, dword [esi + edx*4]
jne 0x100c2a68
inc eax
inc edx
cmp eax, dword [esp + 0x7c]
jl 0x100c2a54
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 0x100c2abc
cmp dword [esp + 0x10], esi
jg 0x100c2abc
cmp esi, dword [esp + 0x18]
jg 0x100c2abc
mov ecx, dword [esp + 0x90]
cmp dword [ecx + esi*4], eax
jle 0x100c2eff
sub esi, 2
mov dword [esp + 0x3c], ebp
mov ebx, ebp
mov dword [esp + 0x40], esi
cmp esi, dword [esp + 0x24]
jge 0x100c2a20
mov ebp, dword [esp + 0x10]
cmp ebp, dword [esp + 0x5c]
jle 0x100c2af3
mov ecx, dword [esp + 0x34]
sub ecx, 4
or eax, 0xffffffff
mov dword [esp + 0x34], ecx
mov dword [ecx], closesocket
jmp 0x100c2afd
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 0x100c2b26
add edi, 4
mov ecx, 1
or eax, 0xffffffff
mov edx, ecx
mov dword [edi], closesocket
jmp 0x100c2b33
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 0x100c2c1f
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 0x100c2bc0
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 0x100c2bb8
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x100c2bb8
dec esi
sub edx, 4
dec edi
sub ecx, 4
cmp esi, dword [esp + 0x28]
jg 0x100c2ba0
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 0x100c2c06
cmp dword [esp + 0x24], ebx
jg 0x100c2c06
cmp ebx, dword [esp + 0x20]
jg 0x100c2c06
mov eax, dword [esp + 0x8c]
cmp esi, dword [eax + ebx*4]
jle 0x100c2f25
sub ebx, 2
mov dword [esp + 0x3c], edx
mov eax, edx
mov dword [esp + 0x40], ebx
cmp ebx, dword [esp + 0x10]
jge 0x100c2b60
jmp 0x100c2c23
mov ecx, dword [esp + 0x1c]
cmp dword [esp + 0x94], 0
jne 0x100c2e8c
test ecx, ecx
je 0x100c2e79
mov edi, dword [esp + 0x9c]
mov eax, dword [esp + 0x14]
cmp eax, dword [edi + 8]
jle 0x100c2e79
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 0x100c2d78
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 0x100c2d3b
cmp edi, ebp
jle 0x100c2d3b
mov ebp, dword [esp + 0x9c]
mov ebp, dword [ebp + 4]
add eax, ebp
cmp eax, esi
jg 0x100c2d37
cmp esi, dword [esp + 0x7c]
jge 0x100c2d37
lea eax, [ecx + ebp]
cmp eax, ebx
jg 0x100c2d37
cmp ebx, dword [esp + 0x88]
jge 0x100c2d37
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 0x100c2d30
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 0x100c2eaa
mov eax, dword [esi - 4]
sub esi, 4
sub edx, 4
inc ecx
cmp eax, dword [edx]
je 0x100c2d16
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 0x100c2c80
test ebp, ebp
jg 0x100c2f4b
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 0x100c2e79
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 0x100c2e3a
cmp ebx, esi
jle 0x100c2e3a
cmp dword [esp + 0x28], edx
jge 0x100c2e3a
mov edi, dword [edi + 4]
mov eax, ecx
sub eax, edi
cmp edx, eax
jg 0x100c2e3a
cmp dword [esp + 0x84], ebp
jge 0x100c2e3a
mov eax, dword [esp + 0x88]
sub eax, edi
cmp ebp, eax
jg 0x100c2e3a
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 0x100c2e36
dec edi
nop dword [eax + eax]
cmp ecx, edi
je 0x100c2eda
mov eax, dword [esi + 4]
add esi, 4
add edx, 4
inc ecx
cmp eax, dword [edx]
je 0x100c2e20
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 0x100c2da2
test esi, esi
jg 0x100c2f65
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x14]
cmp ecx, dword [eax]
jge 0x100c2f7f
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 0x100c2996
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 0x100c2d42
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 0x100c2e41
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 0x100c2fee
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 0x100c2fa0
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 0x100c3057
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 0x100c3003
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