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

Disassembly:
sub esp, 0xa84
mov eax, dword [0x10a78b80]
xor eax, esp
mov dword [esp + 0xa80], eax
mov ecx, dword [esp + 0xa88]
mov eax, dword [esp + 0xa90]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0xa94]
push ebp
mov dword [esp + 0x4c], eax
lea ebp, [ecx + 0x3abf0]
mov eax, dword [esp + 0xa9c]
mov dword [esp + 0x10], eax
mov al, byte [ebp]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x48], ebp
push esi
mov esi, dword [esp + 0xa94]
mov dword [esp + 0xc], esi
test al, al
je 0x1016db46
cmp al, 2
jne 0x1016e354
cmp byte [ebp + 0x1bb], 0
je 0x1016e354
cmp byte [ebp + 0x1bc], 0
je 0x1016e354
cmp byte [ecx + 0x3eaea], 0
je 0x1016e354
cmp dword [ecx + 0x5ce50], 0
je 0x1016e354
cmp dword [ecx + 0x5d0a0], 0
jne 0x1016e354
mov ecx, dword [ebp + 0x3bb8]
xor eax, eax
mov ebp, dword [esp + 0x14]
push ebx
lea ebx, [esi + 0xe0]
cmp byte [ecx + 0x4d], al
mov ecx, dword [ecx + 0x24]
sete al
add esi, 0x2c70
push edi
mov edi, dword [ebx]
mov dword [esp + 0x34], edi
lea eax, [eax*2 + 1]
mov dword [esp + 0x30], eax
mov eax, dword [ebx + 0xfd0]
mov edx, dword [eax]
mov eax, dword [ebx + 4]
mov dword [esp + 0x2c], eax
sar eax, cl
mov dword [esp + 0x60], eax
lea eax, [esi + 0x4c8]
push eax
lea eax, [esi + 0x4a8]
mov dword [esp + 0x28], edx
movzx edx, byte [ebp + 0x1080825c]
push eax
push 0
lea eax, [ebx + 0x1898]
mov dword [esp + 0x50], edx
movzx edx, byte [ebp + 0x10808274]
mov ebp, edi
push eax
lea eax, [ebx + 0x1158]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x34]
push eax
lea eax, [esi + 0x488]
sar ebp, cl
push eax
push 0
push edx
mov dword [esp + 0x68], ebp
mov ebp, dword [esp + 0x74]
push ebx
push ebp
call fcn.100b9750
push 0
push esi
push ebx
call fcn.10162a90
push 0
lea eax, [esp + 0x78]
push eax
lea eax, [esp + 0x78]
push eax
push 0
push esi
push 0
call fcn.100bcd50
mov eax, dword [esp + 0x88]
add esp, 0x4c
cmp eax, 0x80008000
jne 0x1016dc5f
xor eax, eax
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x40]
cmp ecx, 0x80008000
jne 0x1016dc71
xor ecx, ecx
mov dword [esp + 0x40], ecx
test eax, eax
cmove eax, ecx
mov dword [esp + 0x18], eax
test eax, eax
jne 0x1016dcc1
mov eax, dword [ebp + 0x3bb8]
mov ecx, dword [eax + 0x20]
mov eax, edi
sub eax, ecx
movzx edx, cx
cmp eax, dword [ebx + 0xfb8]
jge 0x1016dca7
shl edx, 5
mov eax, 0xf800
sub eax, edx
xor edx, edx
movzx ecx, ax
jmp 0x1016dcb2
xor ecx, ecx
imul eax, edx, 0xffe0
movzx edx, ax
movzx eax, cx
shl eax, 0x10
movzx ecx, dx
or eax, ecx
mov dword [esp + 0x18], eax
mov dword [esi], eax
lea eax, [esp + 0x254]
mov esi, dword [esp + 0x30]
push esi
push 0
push 0
push dword [ebx + 0x1008]
push eax
push ebx
call fcn.10080510
add esp, 0x18
lea ecx, [esp + 0x254]
lea edx, [ebx + 0x30]
nop dword [eax]
movups xmm0, xmmword [ecx]
mov eax, dword [ecx + 0x10]
lea ecx, [ecx + 0x14]
movups xmmword [edx], xmm0
mov dword [edx + 0x10], eax
add edx, 0x538
sub esi, 1
jne 0x1016dcf0
mov eax, dword [esp + 0x58]
lea edi, [esp + 0x9c]
mov esi, dword [esp + 0x24]
mov ecx, 0x29
push 0x400
push 0
movups xmm0, xmmword [eax]
rep movsd dword es:[edi], dword [esi]
movups xmmword [esp + 0x84], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [esp + 0x94], xmm0
movq xmm0, qword [eax + 0x20]
lea eax, [esp + 0x298]
push eax
movq qword [esp + 0x80], xmm0
call fcn.10513d40
mov eax, dword [esp + 0x68]
push dword [eax + 0x144]
lea eax, [esp + 0x6a0]
push dword [ebx + 0xfe8]
push eax
call fcn.105137c0
mov eax, dword [esp + 0x38]
add esp, 0x18
mov dh, byte [eax + 0x5cde0]
mov edi, dword [eax + 0x5cde4]
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x28], dh
mov dl, byte [eax + 0x1080825c]
mov al, byte [eax + 0x10808274]
cmp dl, al
movzx ecx, al
movzx esi, dl
cmovae esi, ecx
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x31bc]
sar eax, 6
cmp edi, 1
jne 0x1016ddc1
cmp esi, 0x20
jae 0x1016ddd9
jmp 0x1016de02
cmp edi, 2
jl 0x1016de02
cmp esi, 0x10
jb 0x1016de02
cmp dword [ecx + 0x14d10], 3
jg 0x1016de02
cmp eax, 3
jge 0x1016de02
movzx eax, dh
cmp eax, 0xa
ja case.0x1016dde1.1
jmp dword [eax*4 + 0x1016e374]
mov al, 5
jmp 0x1016ddfe
mov al, 4
jmp 0x1016ddfe
mov al, 7
jmp 0x1016ddfe
mov al, 0xa
jmp 0x1016ddfe
mov al, 9
jmp 0x1016ddfe
xor al, al
mov byte [esp + 0x28], al
mov ax, word [esp + 0x1a]
xor ecx, ecx
mov edi, dword [esp + 0x20]
test ax, ax
cwde
setns cl
add ecx, 3
add ecx, eax
mov eax, dword [esp + 0x18]
sar ecx, 3
movzx esi, cx
xor ecx, ecx
shl esi, 0x10
test ax, ax
cwde
setns cl
add ecx, 3
add ecx, eax
push 0
push dword [esp + 0x2c]
sar ecx, 3
movzx eax, cx
or esi, eax
lea eax, [edi + 0x62894]
push eax
push esi
lea eax, [esp + 0x28]
mov dword [esp + 0x20], esi
push eax
push dword [esp + 0x30]
lea eax, [esp + 0x180]
push dword [esp + 0x2c]
push edi
push eax
call fcn.10100740
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0xa980]
push eax
mov dword [esp + 0x90], eax
lea eax, [esp + 0x190]
push eax
call fcn.10101620
mov edx, dword [esp + 0xadc]
add esp, 0x2c
mov ecx, dword [esp + 0xaac]
xor eax, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x28], edx
mov dword [esp + 0x38], ecx
sub eax, 0
je 0x1016df29
sub eax, 1
jne 0x1016df89
mov eax, dword [ebx + 0xfc0]
sub eax, dword [esp + 0x2c]
mov edx, dword [ebp + 0x3bb8]
shl eax, 2
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x198], eax
inc ecx
mov eax, dword [edx + 0x20]
imul eax, dword [esp + 0x60]
mov edi, dword [esp + 0x20]
sub eax, dword [esp + 0x2c]
shl eax, 2
sub eax, dword [esp + 0x44]
mov dword [esp + 0x19c], eax
mov eax, dword [ebx + 0xfb8]
sub eax, dword [esp + 0x34]
shl eax, 2
mov dword [esp + 0x1a0], eax
imul ecx, dword [edx + 0x20]
mov eax, dword [ebx + 0xfbc]
cmp ecx, eax
cmovge ecx, eax
sub ecx, dword [esp + 0x34]
shl ecx, 2
sub ecx, dword [esp + 0x4c]
mov dword [esp + 0x1a4], ecx
jmp 0x1016df89
mov eax, dword [ebx + 0xfc0]
sub eax, dword [esp + 0x2c]
shl eax, 2
mov dword [esp + 0x198], eax
mov eax, dword [ebx + 0xfc4]
sub eax, dword [esp + 0x2c]
shl eax, 2
sub eax, dword [esp + 0x44]
mov dword [esp + 0x19c], eax
mov eax, dword [ebx + 0xfb8]
sub eax, dword [esp + 0x34]
shl eax, 2
mov dword [esp + 0x1a0], eax
mov eax, dword [ebp + 0x3bb8]
mov eax, dword [eax + 0x20]
imul eax, dword [esp + 0x48]
sub eax, dword [esp + 0x34]
shl eax, 2
sub eax, dword [esp + 0x4c]
mov dword [esp + 0x1a4], eax
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x19c]
push eax
call fcn.10101650
mov eax, dword [esp + 0x1a4]
add esp, 8
cmp eax, dword [esp + 0x198]
jl 0x1016e29f
mov eax, dword [esp + 0x1a4]
cmp eax, dword [esp + 0x1a0]
jl 0x1016e29f
push 0
lea eax, [esp + 0x1fc]
push eax
lea eax, [esp + 0x58]
push eax
push 0
push dword [edi + 0x5d1b4]
lea eax, [esp + 0x17c]
push eax
push esi
call fcn.100ff600
mov edi, eax
lea eax, [esp + 0x80]
push eax
mov eax, dword [esp + 0x34]
add eax, 0x1dbf8
push eax
lea eax, [esp + 0x18c]
push eax
push ebx
push dword [esp + 0x4c]
call fcn.10100370
mov ecx, eax
add esp, 0x30
cmp ecx, edi
jge 0x1016e026
mov eax, dword [esp + 0x64]
mov edi, ecx
mov dword [esp + 0x50], eax
jmp 0x1016e02a
mov eax, dword [esp + 0x50]
cmp edi, 0x7fffffff
je 0x1016e29f
mov ecx, eax
shl eax, 3
shr ecx, 0x10
shl ecx, 3
movzx ecx, cx
movzx eax, ax
mov esi, ecx
shl esi, 0x10
or esi, eax
sar cx, 3
mov ax, si
movzx ecx, cx
sar ax, 3
movzx edx, ax
mov eax, ecx
shl eax, 0x10
or edx, eax
mov dword [esp + 0x6c], esi
movsx eax, cx
movzx edi, dx
cmp eax, dword [esp + 0x198]
jl 0x1016e29b
mov eax, edx
shr eax, 0x10
cwde
cmp eax, dword [esp + 0x19c]
jg 0x1016e29b
movsx eax, dx
cmp eax, dword [esp + 0x1a0]
jl 0x1016e29b
movsx eax, di
cmp eax, dword [esp + 0x1a4]
jg 0x1016e29b
mov eax, dword [ebp + 0x3bb8]
mov edi, dword [esp + 0x34]
push dword [eax + 0x24]
push dword [esp + 0x20]
push dword [esp + 0x34]
push edi
push ebx
push ebp
push esi
call fcn.10163500
add esp, 0x1c
test eax, eax
je 0x1016e29b
mov eax, dword [esp + 0x24]
push 0x32
add eax, 0x56
push 0
push eax
call fcn.10513d40
mov eax, dword [esp + 0x30]
xor edx, edx
mov ecx, 2
or byte [eax + 0x9f], 0x80
mov byte [eax + 0x53], 0
mov word [eax + 5], 0
mov byte [eax + 0x1c], 0
mov dword [eax + 0xc], esi
mov dword [eax + 0x18], 0x30003
mov byte [eax + 0x88], 0
mov eax, dword [ebp + 0x3bb8]
cmp byte [eax + 0x4d], dl
cmovne ecx, edx
push ecx
push edx
push dword [esp + 0x30]
push edx
push dword [esp + 0x48]
push edi
push ebx
push ebp
call fcn.101152f0
mov ecx, dword [esp + 0x94]
push 0x78
lea eax, [ecx + 0x40008]
push eax
push ecx
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0xa8]
push eax
call fcn.10100bf0
mov esi, dword [esp + 0x54]
add esp, 0x40
mov ecx, eax
mov eax, dword [esi + 0x6384]
push closesocket
push 0xffffffffffffffff
add eax, ecx
push eax
lea eax, [esp + 0x210]
push eax
lea eax, [esp + 0x23c]
push eax
lea eax, [esp + 0x154]
push eax
push dword [esp + 0x34]
push esi
push dword [esp + 0x40]
call fcn.10222400
add esp, 0x24
test eax, eax
je 0x1016e29b
mov eax, dword [esp + 0x140]
imul dword [esi + 0x31cc]
mov ecx, dword [esp + 0x14c]
mov ebp, eax
mov eax, dword [esp + 0x148]
add ebp, 0x100
adc edx, 0
shld ecx, eax, 7
shrd ebp, edx, 9
shl eax, 7
sar edx, 9
add ebp, eax
mov dword [esp + 0x150], ebp
adc edx, ecx
mov dword [esp + 0x70], edx
mov dword [esp + 0x154], edx
cmp edx, dword [esp + 0x28]
jg 0x1016e297
jl 0x1016e207
cmp ebp, dword [esp + 0x38]
jae 0x1016e297
mov esi, dword [esp + 0x24]
lea edi, [esp + 0x9c]
movzx eax, byte [ebx + 0x1154]
mov ecx, 0x29
movups xmm0, xmmword [esp + 0x140]
rep movsd dword es:[edi], dword [esi]
movzx esi, byte [ebx + 0x1155]
imul esi, eax
mov eax, dword [esp + 0x14]
movups xmmword [esp + 0x7c], xmm0
add eax, 0x23b81
movups xmm0, xmmword [esp + 0x150]
push esi
push eax
movups xmmword [esp + 0x94], xmm0
lea eax, [esp + 0x298]
movq xmm0, qword [esp + 0x168]
push eax
movq qword [esp + 0x80], xmm0
call fcn.105137c0
push esi
push dword [ebx + 0xfe8]
lea eax, [esp + 0x6a4]
push eax
call fcn.105137c0
mov eax, dword [esp + 0x88]
add esp, 0x18
mov dword [esp + 0x38], ebp
mov dword [esp + 0x28], eax
mov ebp, dword [esp + 0x54]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x20]
inc eax
mov dword [esp + 0x30], eax
cmp eax, 2
jl 0x1016dea7
mov eax, dword [esp + 0x58]
lea esi, [esp + 0x9c]
movups xmm0, xmmword [esp + 0x7c]
mov edi, dword [esp + 0x24]
mov ecx, 0x29
rep movsd dword es:[edi], dword [esi]
movups xmmword [eax], xmm0
movups xmm0, xmmword [esp + 0x8c]
movups xmmword [eax + 0x10], xmm0
movq xmm0, qword [esp + 0x74]
movq qword [eax + 0x20], xmm0
movzx eax, byte [ebx + 0x1154]
movzx ecx, byte [ebx + 0x1155]
imul ecx, eax
lea eax, [esp + 0x290]
push ecx
push eax
mov eax, dword [esp + 0x1c]
add eax, 0x23b81
push eax
call fcn.105137c0
mov eax, dword [esp + 0x68]
push dword [eax + 0x144]
lea eax, [esp + 0x6a0]
push eax
push dword [ebx + 0xfe8]
call fcn.105137c0
mov eax, dword [esp + 0x50]
add esp, 0x18
mov edx, dword [esp + 0x28]
pop edi
pop ebx
pop esi
pop ebp
mov ecx, dword [esp + 0xa80]
xor ecx, esp
call fcn.105116c0
add esp, 0xa84
ret
mov ecx, dword [esp + 0xa88]
or eax, 0xffffffff
pop esi
pop ebp
xor ecx, esp
mov edx, closesocket
call fcn.105116c0
add esp, 0xa84
ret