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

Disassembly:
sub esp, 0x50
cmp dword [esp + 0x68], 0
push esi
mov esi, dword [esp + 0x60]
mov dword [esi], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov byte [esi + 0x20], 1
mov dword [esi + 4], 0
jg 0x10222b7a
jl 0x10222b73
cmp dword [esp + 0x68], 0
jae 0x10222b7a
xor eax, eax
pop esi
add esp, 0x50
ret
mov eax, dword [esp + 0x5c]
cmp byte [eax + 0xec], 0
jne 0x10222b91
mov eax, 1
pop esi
add esp, 0x50
ret
push ebx
lea ebx, [eax + 0xe0]
mov eax, dword [ebx + 0xfd0]
push ebp
push edi
mov dword [esp + 0x28], ebx
mov ecx, dword [eax]
mov al, byte [ecx + 0x9f]
test al, al
js 0x10222bba
cmp byte [ecx + 0x14], 0
jg 0x10222bba
xor edx, edx
jmp 0x10222bbf
mov edx, 1
mov eax, dword [esp + 0x70]
xorps xmm0, xmm0
mov ecx, dword [ebx + 0x54c]
mov dword [esp + 0x18], edx
movlpd qword [esp + 0x20], xmm0
movlpd qword [esp + 0x30], xmm0
lea ecx, [ecx + eax*2]
mov eax, dword [ebx + 0x550]
lea eax, [eax + ecx*2]
mov eax, dword [eax*4 + 0x106341d0]
mov dword [esp + 0x1c], eax
test edx, edx
je 0x10222c17
mov esi, dword [esp + 0x68]
mov edi, 1
mov ebx, eax
push edi
push ebx
push esi
call fcn.10107320
inc edi
add esp, 0xc
cmp edi, 3
jl 0x10222c02
mov ebx, dword [esp + 0x28]
push ebx
push 1
call fcn.10220390
mov ebp, dword [esp + 0x2c]
add esp, 8
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x74]
mov byte [esp + 0x2c], al
mov eax, dword [esp + 0x20]
mov dword [esp + 0x14], 1
mov dword [esp + 0x10], 1
nop word [eax + eax]
mov esi, dword [esp + 0x64]
mov ebx, dword [esp + 0x78]
cmp dword [esi + 0x5cea4], 0
mov esi, dword [esp + 0x6c]
je 0x10222c95
cmp dword [esp + 0x18], 0
je 0x10222c95
cmp dword [esp + 0x74], 0xffffffff
jne 0x10222c7b
cmp ebx, 0x7fffffff
je 0x10222c95
cmp ebp, edi
jg 0x10222c85
jl 0x10222c89
cmp eax, ecx
jb 0x10222c89
mov eax, ecx
mov ebp, edi
mov edx, dword [esp + 0x74]
mov ebx, dword [esp + 0x78]
sub edx, eax
sbb ebx, ebp
push 0
push 0
push dword [esp + 0x34]
lea eax, [esp + 0x44]
push dword [esp + 0x28]
push dword [esp + 0x20]
push 0
push 0
push ebx
push edx
push eax
push dword [esp + 0x8c]
push dword [esp + 0x94]
call fcn.102221c0
mov edi, dword [esp + 0x68]
add esp, 0x30
cmp edi, 0x7fffffff
je 0x10222e42
mov eax, dword [esi]
cmp eax, 0x7fffffff
je 0x10222d78
cdq
mov ebx, eax
mov ecx, edx
mov eax, edi
cdq
add ebx, eax
adc ecx, edx
test ecx, ecx
jg 0x10222cfd
jl 0x10222d0a
cmp ebx, 0x7fffffff
jb 0x10222d0a
mov ebx, closesocket
mov dword [esp + 0x34], 0
cmp dword [esi + 4], 0
mov dword [esi], ebx
jne 0x10222d19
mov eax, dword [esp + 0x3c]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x40]
add eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
adc ecx, dword [esp + 0x44]
mov ebp, dword [esi + 0x1c]
mov edi, ebp
mov dword [esp + 0x20], eax
mov dword [esi + 8], eax
mov eax, dword [esi + 0x18]
mov dword [esp + 0x28], ecx
mov dword [esi + 0xc], ecx
mov ecx, eax
cmp ebp, 0x7fffffff
jg 0x10222d6f
jl 0x10222d4e
cmp eax, 0xffffffff
jae 0x10222d6f
cmp dword [esp + 0x54], 0x7fffffff
jg 0x10222d6f
mov edx, dword [esp + 0x50]
jl 0x10222d63
cmp edx, 0xffffffff
jae 0x10222d6f
add ecx, edx
mov dword [esi + 0x18], ecx
adc edi, dword [esp + 0x54]
mov dword [esi + 0x1c], edi
mov al, byte [esp + 0x58]
and byte [esi + 0x20], al
jmp 0x10222dc9
mov ebx, closesocket
mov dword [esi], closesocket
mov dword [esi + 8], 0xffffffff
or ecx, 0xffffffff
mov dword [esi + 0xc], closesocket
mov edi, ebx
mov dword [esi + 0x10], 0xffffffff
mov dword [esi + 0x14], closesocket
mov dword [esi + 0x18], 0xffffffff
mov dword [esi + 0x1c], closesocket
mov byte [esi + 0x20], 0
mov dword [esi + 4], 0
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x28], ebx
mov edx, dword [esp + 0x68]
mov eax, ebx
mov ebx, dword [esp + 0x28]
imul dword [edx + 0x31cc]
add eax, 0x100
mov ebp, edx
mov edx, dword [esp + 0x20]
adc ebp, 0
shld ebx, edx, 7
shrd eax, ebp, 9
shl edx, 7
sar ebp, 9
add eax, edx
adc ebp, ebx
shld edi, ecx, 7
shl ecx, 7
cmp ebp, edi
jg 0x10222e10
jl 0x10222e0a
cmp eax, ecx
jae 0x10222e10
mov ebx, eax
mov edx, ebp
jmp 0x10222e14
mov ebx, ecx
mov edx, edi
cmp edx, dword [esp + 0x78]
jg 0x10222e42
mov edx, dword [esp + 0x74]
jl 0x10222e24
cmp ebx, edx
ja 0x10222e42
mov ebx, dword [esp + 0x10]
inc ebx
mov dword [esp + 0x10], ebx
cmp ebx, 3
jl 0x10222c50
mov eax, dword [esp + 0x14]
pop edi
pop ebp
pop ebx
pop esi
add esp, 0x50
ret
pop edi
pop ebp
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
pop ebx
mov dword [esi], closesocket
mov dword [esi + 8], 0xffffffff
mov dword [esi + 0xc], closesocket
mov dword [esi + 0x10], 0xffffffff
mov dword [esi + 0x14], closesocket
mov dword [esi + 0x18], 0xffffffff
mov dword [esi + 0x1c], closesocket
mov byte [esi + 0x20], 0
mov dword [esi + 4], 0
pop esi
add esp, 0x50
ret