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

Disassembly:
sub esp, 0xf4
mov eax, dword [0x10a78b80]
xor eax, esp
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0x100]
mov edx, dword [esp + 0xf8]
mov ecx, dword [esp + 0x114]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x108]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x10c]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x120]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x124]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x128]
mov dword [esp + 0x44], eax
mov eax, dword [edx + 0x3e7a8]
push ebx
mov ebx, dword [esp + 0x100]
mov dword [esp + 0xc], edx
xor edx, edx
cmp byte [eax + 0x4d], dl
push ebp
mov eax, dword [ebx + 0x10b0]
sete dl
push esi
mov esi, dword [esp + 0x110]
mov dword [esp + 0x30], ebx
mov ebp, dword [eax]
lea edx, [edx*2 + 1]
mov eax, dword [ebx + 0x1b5e8]
mov dword [esp + 0x40], eax
mov eax, dword [ecx + 0x730]
mov dword [esp + 0x18], esi
mov dword [esp + 0x2c], edx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x34], eax
test eax, eax
jle 0x10168337
lea eax, [ecx + 0xac]
mov dword [esp + 0x28], eax
push edi
nop dword [eax]
mov eax, dword [eax - 8]
xorps xmm0, xmm0
mov edx, dword [esp + 0x2c]
mov ecx, 0x29
mov dword [esp + 0x20], eax
mov edi, ebp
movlpd qword [esp + 0x90], xmm0
movlpd qword [esp + 0x98], xmm0
mov eax, dword [edx]
mov dword [esi + 0x4c], eax
lea esi, [edx - 0xac]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [edx - 4]
mov dword [esp + 0x88], eax
mov al, byte [ebp + 5]
sub al, 0xd
movlpd qword [esp + 0xa0], xmm0
mov byte [esp + 0xa8], 1
mov dword [esp + 0x8c], 0
mov dword [esp + 0xb0], 0
movlpd qword [esp + 0xb8], xmm0
movlpd qword [esp + 0xc0], xmm0
movlpd qword [esp + 0xc8], xmm0
mov byte [esp + 0xd0], 1
mov dword [esp + 0xb4], 0
mov dword [esp + 0xd8], 0
movlpd qword [esp + 0xe0], xmm0
movlpd qword [esp + 0xe8], xmm0
movlpd qword [esp + 0xf0], xmm0
mov byte [esp + 0xf8], 1
mov dword [esp + 0xdc], 0
cmp al, 3
ja 0x1016831a
mov byte [ebx + 0x23b80], 0
mov eax, dword [ebx + 0xfc]
mov cl, byte [ebp + 0x14]
mov dl, byte [ebp + 0x15]
mov dword [esp + 0x70], eax
mov eax, dword [ebx + 0x634]
mov dword [esp + 0x74], eax
mov eax, dword [ebx + 0xb6c]
mov dword [esp + 0x78], eax
mov eax, dword [ebx + 0x10c]
mov dword [esp + 0x7c], eax
mov eax, dword [ebx + 0x644]
mov dword [esp + 0x80], eax
mov eax, dword [ebx + 0xb7c]
mov dword [esp + 0x84], eax
cmp cl, 1
jl 0x10167da2
mov al, cl
dec al
cmp al, 7
jbe 0x10167da4
mov ecx, dword [esp + 0x18]
xor eax, eax
mov dword [ebx + 0x10e0], eax
cmp dl, 1
jl 0x10167dca
mov al, dl
dec al
cmp al, 7
jbe 0x10167dcc
xor eax, eax
mov edi, dword [esp + 0x120]
xor esi, esi
mov dword [ebx + 0x10e4], eax
mov byte [ebp + 0x1c], 0
cmp byte [ebp + 0x15], 0
jle 0x10167dee
lea edx, [ebx + 0x124]
mov ebx, dword [esp + 0x30]
nop word [eax + eax]
movsx eax, byte [ebp + 0x14]
lea edx, [edx + 0x538]
lea ecx, [esi + eax*2]
add ecx, eax
lea eax, [ecx + ecx*4]
movups xmm0, xmmword [edi + eax*4]
movups xmmword [edx - 0x54c], xmm0
mov eax, dword [edi + eax*4 + 0x10]
mov dword [edx - 0x53c], eax
movsx eax, byte [ebp + 0x15]
lea ecx, [esi + eax*2]
inc esi
add ecx, eax
lea eax, [ecx + ecx*4]
movups xmm0, xmmword [edi + eax*4]
movups xmmword [edx - 0x538], xmm0
mov eax, dword [edi + eax*4 + 0x10]
mov dword [edx - 0x528], eax
cmp esi, ebx
jl 0x10167d50
jmp 0x10167e2c
mov cl, 1
movzx eax, cl
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + eax*4 + 0x3acc8]
cmp eax, 0xffffffff
je 0x10167d01
shl eax, 4
add eax, 0x3acfc
add eax, ecx
jmp 0x10167d03
mov dl, 1
movzx eax, dl
mov eax, dword [ecx + eax*4 + 0x3acc8]
cmp eax, 0xffffffff
je 0x10167d1e
shl eax, 4
add eax, 0x3acfc
add eax, ecx
jmp 0x10167d20
lea esi, [ebx + 0x110]
xor edx, edx
mov ebx, dword [esp + 0x30]
nop word [eax + eax]
movsx eax, byte [ebp + 0x14]
lea esi, [esi + 0x538]
lea ecx, [edx + eax*2]
inc edx
add ecx, eax
lea eax, [ecx + ecx*4]
movups xmm0, xmmword [edi + eax*4]
movups xmmword [esi - 0x538], xmm0
mov eax, dword [edi + eax*4 + 0x10]
mov dword [esi - 0x528], eax
cmp edx, ebx
jl 0x10167e00
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x128]
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x3c], 0xffffffff
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x60], eax
mov eax, dword [esi + 0x10]
mov dword [esp + 0x68], eax
lea eax, [esp + 0x3c]
push eax
push 1
push dword [esp + 0x4c]
lea eax, [esp + 0x7c]
mov dword [esp + 0x70], ecx
mov ecx, dword [esi + 0x14]
push edi
push dword [esp + 0x58]
mov dword [esp + 0x80], ecx
push eax
lea eax, [esp + 0x38]
mov dword [esp + 0x58], closesocket
push eax
lea eax, [esp + 0x7c]
push eax
push dword [esi + 4]
lea eax, [esp + 0xfc]
push dword [esi]
mov esi, dword [esp + 0x44]
push esi
push eax
lea eax, [esp + 0xe0]
push eax
lea eax, [esp + 0xbc]
push eax
push dword [esp + 0x164]
push ebx
push dword [esp + 0x8c]
push dword [esp + 0x5c]
call fcn.1016bbc0
add esp, 0x48
cmp eax, 0xffffffff
jne 0x10167ed7
cmp edx, 0x7fffffff
je 0x1016831e
mov eax, dword [esp + 0x88]
imul dword [ebx + 0x31cc]
mov ecx, dword [esp + 0x90]
mov esi, dword [esp + 0x94]
mov ebp, eax
add ebp, 0x100
mov edi, edx
adc edi, 0
shld esi, ecx, 7
shrd ebp, edi, 9
shl ecx, 7
sar edi, 9
add ebp, ecx
mov ecx, dword [esp + 0x14]
adc edi, esi
mov dword [esp + 0x24], ebp
mov dword [esp + 0x50], edi
mov dword [esp + 0x98], ebp
mov al, byte [ecx + 5]
mov dl, byte [ecx + 0x15]
mov ah, byte [ecx + 0x14]
mov dword [esp + 0x9c], edi
cmp al, 0xd
jae 0x10167f47
movzx eax, al
mov al, byte [eax + 0x1081323c]
mov byte [esp + 0x13], al
jmp 0x10167f85
cmp al, 0x11
jae 0x10167f5e
movzx ecx, al
movsx eax, ah
mov al, byte [eax + ecx*8 + 0x108131e4]
mov byte [esp + 0x13], al
jmp 0x10167f85
cmp al, 0x19
jae 0x10167f80
cmp dl, 0xff
je 0x10167f80
movzx ecx, al
movsx eax, ah
lea ecx, [eax + ecx*8]
movsx eax, dl
mov al, byte [eax + ecx*8 + 0x10812e30]
mov byte [esp + 0x13], al
jmp 0x10167f85
mov byte [esp + 0x13], 0xff
mov eax, dword [esp + 0x18]
xor esi, esi
mov edx, dword [esp + 0x14]
movzx ecx, byte [eax + 0x5d038]
mov eax, dword [ebx + 0x1b5dc]
mov dl, byte [edx + 0x86]
mov dword [esp + 0x20], eax
test ecx, ecx
je 0x10168177
cmp ebp, 0xffffffff
jne 0x10167fbf
cmp edi, 0x7fffffff
je 0x10168177
mov eax, dword [esp + 0x18]
mov al, byte [eax + 0x3abf0]
test al, al
je 0x10167fd9
cmp al, 2
je 0x10167fd9
test dl, dl
jne 0x10168177
mov ebp, dword [ecx*4 + 0x1081366c]
mov ecx, dword [ebx + 0x1b5e0]
test ecx, ecx
je 0x10168052
xor esi, esi
test ecx, ecx
jle 0x10168015
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
add eax, 0xd0
nop dword [eax]
cmp dword [eax + 4], edi
jg 0x10168015
jl 0x1016800b
cmp dword [eax], edx
ja 0x10168015
inc esi
add eax, 0x40e8
cmp esi, ecx
jl 0x10168000
cmp esi, ebp
je 0x10168173
mov edi, dword [esp + 0x20]
lea eax, [ebp - 1]
cmp esi, eax
jge 0x10168056
mov eax, ebp
imul ecx, esi, 0x40e8
sub eax, esi
imul eax, eax, 0x40e8
add ecx, edi
sub eax, 0x40e8
push eax
push ecx
lea eax, [ecx + 0x40e8]
push eax
call fcn.105137c0
add esp, 0xc
jmp 0x10168056
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
mov ecx, 0x29
imul edx, esi, 0x40e8
mov esi, dword [esp + 0x14]
add edx, edi
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov dword [edx + 0xd0], eax
mov eax, dword [esp + 0x50]
mov dword [edx + 0xd4], eax
mov al, byte [esp + 0x13]
mov byte [edx + 0x40e0], al
mov eax, dword [esp + 0x18]
mov al, byte [eax + 0x3abf0]
test al, al
je 0x1016814d
cmp al, 2
je 0x1016814d
lea eax, [ebx + 0xe0]
push eax
call fcn.10140180
mov esi, eax
add esp, 4
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x88], 0
je 0x101680d7
movzx ecx, byte [esp + 0x13]
cmp byte [ecx + ecx*2 + 0x10813470], 0xd
jb 0x101680d7
mov ecx, 1
jmp 0x101680d9
xor ecx, ecx
cmp dword [esp + 0x128], 0
movups xmm0, xmmword [esp + 0x88]
movups xmmword [edx + 0xa8], xmm0
movups xmm0, xmmword [esp + 0x98]
movups xmmword [edx + 0xb8], xmm0
movq xmm0, qword [esp + 0xa8]
movq qword [edx + 0xc8], xmm0
je 0x1016814d
cmp byte [esp + 0xa8], 0
jne 0x10168124
test ecx, ecx
jne 0x10168124
xor eax, eax
jmp 0x10168129
mov eax, 4
lea eax, [eax + esi*8]
mov eax, dword [eax + ebx + 0x7c38]
add eax, dword [esp + 0xb0]
mov dword [edx + 0xd8], eax
mov eax, dword [esp + 0xd8]
mov dword [edx + 0xdc], eax
mov eax, dword [ebx + 0x1b5e0]
mov edi, dword [esp + 0x9c]
inc eax
cmp eax, ebp
cmovl ebp, eax
mov dword [ebx + 0x1b5e0], ebp
mov ebp, dword [esp + 0x98]
mov dword [esp + 0x24], ebp
jmp 0x10168177
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x28]
cmp edi, dword [esi + 4]
jg 0x10168316
jl 0x1016818e
cmp ebp, dword [esi]
jae 0x10168316
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
mov dword [edx], eax
mov dword [edx + 4], ecx
mov eax, dword [ebx + 0x10b0]
mov ecx, dword [ebx + 0x10b8]
mov esi, dword [eax]
mov eax, dword [ebx + 0x10bc]
test eax, eax
je 0x101681c0
movzx edx, byte [eax + 0x88]
jmp 0x101681c2
xor edx, edx
test ecx, ecx
je 0x101681cf
movzx eax, byte [ecx + 0x88]
jmp 0x101681d1
xor eax, eax
cmp byte [esi + 0x88], 0
lea ebp, [eax + edx]
je 0x101681f3
movzx eax, byte [esp + 0x13]
cmp byte [eax + eax*2 + 0x10813470], 0xd
jb 0x101681f3
mov edx, 1
jmp 0x101681f5
xor edx, edx
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
movups xmm0, xmmword [esp + 0x88]
mov dword [ecx], eax
mov al, byte [esp + 0x13]
mov byte [ecx + 0xcc], al
mov eax, dword [esp + 0x58]
mov dword [ecx + 4], edi
lea edi, [ecx + 0x18]
mov ecx, 0x29
movups xmmword [eax], xmm0
movups xmm0, xmmword [esp + 0x98]
movups xmmword [eax + 0x10], xmm0
movq xmm0, qword [esp + 0xa8]
movq qword [eax + 0x20], xmm0
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x28]
mov cl, byte [esp + 0xa8]
mov edi, dword [esp + 0x128]
movzx eax, cl
mov dword [esi + 0xc8], edx
mov dword [esi + 0xc4], eax
test edi, edi
je 0x10168299
test cl, cl
jne 0x10168270
test edx, edx
jne 0x10168270
xor eax, eax
jmp 0x10168275
mov eax, 4
lea eax, [eax + ebp*8]
mov eax, dword [eax + ebx + 0x7c38]
add eax, dword [esp + 0xb0]
mov dword [esi + 0xbc], eax
mov eax, dword [esp + 0xd8]
mov dword [esi + 0xc0], eax
movups xmm0, xmmword [esp + 0xb0]
mov ebp, dword [esp + 0x5c]
lea eax, [ebx + 0x23b81]
movups xmmword [esi + 0x3258], xmm0
movups xmm0, xmmword [esp + 0xc0]
movups xmmword [esi + 0x3268], xmm0
movq xmm0, qword [esp + 0xd0]
movq qword [esi + 0x3278], xmm0
push dword [ebp + 0x144]
push eax
push dword [ebp + 0x100]
call fcn.105137c0
push dword [ebp + 0x144]
push dword [ebx + 0x10c8]
push dword [ebp + 0x140]
call fcn.105137c0
mov ebp, dword [esp + 0x2c]
add esp, 0x18
test edi, edi
je 0x1016831a
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
mov dword [esi + 8], eax
mov dword [esi + 0xc], ecx
jmp 0x1016831a
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x2c]
add eax, 0xb8
sub dword [esp + 0x38], 1
mov dword [esp + 0x2c], eax
jne 0x10167bc0
pop edi
mov ecx, dword [esp + 0xfc]
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.105116c0
add esp, 0xf4
ret