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

Disassembly:
sub esp, 0xa4
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0xac]
push ebx
push ebp
push esi
mov edx, dword [eax + 4]
mov ecx, dword [eax]
mov esi, dword [eax + 8]
mov ebx, dword [eax + 0x10]
mov dword [esp + 0x54], edx
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x4c], eax
push edi
mov edi, dword [esp + 0xb8]
mov dword [esp + 0x54], edx
mov dword [esp + 0x4c], 0
mov eax, dword [edi]
cdq
mov dword [esp + 0x1c], eax
mov ebp, edx
mov edx, dword [esp + 0x58]
mov eax, ecx
shrd eax, edx, 0x10
mov dword [esp + 0x80], eax
sar edx, 0x10
mov dword [esp + 0x58], edx
movzx eax, cx
mov dword [esp + 0x60], eax
mov eax, dword [edi + 4]
cdq
mov ecx, edx
mov dword [esp + 0x44], eax
mov edx, dword [esp + 0x54]
mov eax, esi
shrd eax, edx, 0x10
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x7c], eax
sar edx, 0x10
mov dword [esp + 0x54], edx
push dword [esp + 0x54]
movzx eax, si
push dword [esp + 0x80]
mov dword [esp + 0x64], eax
mov eax, dword [edi + 8]
cdq
mov esi, edx
mov edi, eax
mov edx, dword [esp + 0x58]
mov eax, ebx
shrd eax, edx, 0x10
push ecx
push dword [esp + 0x50]
sar edx, 0x10
mov dword [esp + 0x74], eax
mov dword [esp + 0x60], edx
call fcn.101eb910
push dword [esp + 0x58]
mov dword [esp + 0x24], eax
push dword [esp + 0x84]
mov dword [esp + 0x2c], edx
push ebp
push dword [esp + 0x28]
call fcn.101eb910
push dword [esp + 0x50]
add dword [esp + 0x24], eax
push dword [esp + 0x68]
adc dword [esp + 0x2c], edx
push esi
push edi
call fcn.101eb910
add dword [esp + 0x20], eax
push 0
push dword [esp + 0x64]
adc dword [esp + 0x2c], edx
push ebp
push dword [esp + 0x28]
movzx ebx, bx
mov dword [esp + 0x40], ebx
call fcn.101eb910
push 0
push ebx
push esi
push edi
mov dword [esp + 0x58], eax
mov ebp, edx
call fcn.101eb910
mov ebx, dword [esp + 0x48]
push 0
push dword [esp + 0x60]
add ebx, eax
push dword [esp + 0x44]
adc ebp, edx
push dword [esp + 0x50]
call fcn.101eb910
mov ecx, dword [esp + 0xb8]
add ebx, eax
mov dword [esp + 0x48], ebx
adc ebp, edx
mov dword [esp + 0x44], ebp
mov eax, dword [ecx + 0xc]
cdq
mov dword [esp + 0x10], eax
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x1c], edx
cdq
mov ebp, eax
mov ebx, edx
mov eax, dword [ecx + 0x14]
cdq
mov esi, edx
mov edi, eax
push esi
push edi
push dword [esp + 0x58]
push dword [esp + 0x70]
call fcn.101eb910
push ebx
push ebp
push dword [esp + 0x5c]
mov dword [esp + 0x34], eax
push dword [esp + 0x88]
mov dword [esp + 0x3c], edx
call fcn.101eb910
push dword [esp + 0x58]
add dword [esp + 0x2c], eax
push dword [esp + 0x84]
adc dword [esp + 0x34], edx
push dword [esp + 0x24]
push dword [esp + 0x1c]
call fcn.101eb910
add dword [esp + 0x28], eax
push esi
adc dword [esp + 0x30], edx
push edi
push 0
push dword [esp + 0x3c]
call fcn.101eb910
push ebx
push ebp
push 0
push dword [esp + 0x68]
mov edi, eax
mov esi, edx
call fcn.101eb910
push 0
push dword [esp + 0x64]
add edi, eax
push dword [esp + 0x24]
adc esi, edx
push dword [esp + 0x1c]
call fcn.101eb910
mov ecx, dword [esp + 0xb8]
add edi, eax
mov dword [esp + 0x1c], edi
adc esi, edx
mov dword [esp + 0x6c], esi
mov eax, dword [ecx + 0x18]
cdq
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], edx
mov eax, dword [ecx + 0x1c]
cdq
mov dword [esp + 0x34], eax
mov ebp, edx
mov eax, dword [ecx + 0x20]
cdq
mov edi, edx
mov ebx, eax
push edi
push ebx
push 0
push dword [esp + 0x3c]
call fcn.101eb910
push ebp
push dword [esp + 0x38]
mov dword [esp + 0x38], eax
push 0
push dword [esp + 0x68]
mov dword [esp + 0x20], edx
call fcn.101eb910
push dword [esp + 0x38]
add dword [esp + 0x34], eax
push dword [esp + 0x40]
adc dword [esp + 0x18], edx
push 0
push dword [esp + 0x6c]
call fcn.101eb910
mov ecx, dword [esp + 0x30]
add ecx, eax
mov eax, dword [esp + 0x10]
push edi
adc eax, edx
mov dword [esp + 0x34], ecx
push ebx
push dword [esp + 0x58]
mov dword [esp + 0x1c], eax
push dword [esp + 0x70]
movzx eax, cx
mov ecx, eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x84], ecx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x24], ecx
call fcn.101eb910
push ebp
push dword [esp + 0x38]
mov edi, eax
mov dword [esp + 0x6c], edx
push dword [esp + 0x5c]
push dword [esp + 0x88]
call fcn.101eb910
push dword [esp + 0x38]
mov ebp, dword [esp + 0x68]
add edi, eax
push dword [esp + 0x40]
adc ebp, edx
push dword [esp + 0x60]
push dword [esp + 0x8c]
call fcn.101eb910
mov ecx, dword [esp + 0x10]
add edi, eax
adc ebp, edx
mov edx, dword [esp + 0x30]
mov eax, edx
shrd eax, ecx, 0x10
sar ecx, 0x10
add edi, eax
mov dword [esp + 0x3c], edi
adc ebp, ecx
mov dword [esp + 0x40], ebp
cmp edi, 0x10000
jne 0x1016f6be
test ebp, ebp
jne 0x1016f6be
movzx ecx, dx
cmp word [esp + 0x60], bp
jne 0x1016f7a7
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
add ecx, 0x8000
mov ebx, dword [esp + 0x68]
adc eax, ebp
shrd ecx, eax, 0x10
sar eax, 0x10
add ecx, dword [esp + 0x20]
mov dword [ebx], ecx
adc eax, dword [esp + 0x24]
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x1c]
add eax, 0x8000
adc esi, ebp
shrd eax, esi, 0x10
sar esi, 0x10
add eax, dword [esp + 0x28]
mov dword [ebx + 8], eax
adc esi, dword [esp + 0x2c]
mov dword [ebx + 0xc], esi
jmp 0x1016fb44
mov eax, dword [esp + 0x5c]
movzx ecx, ax
mov eax, edi
or eax, ebp
jne 0x1016f7a7
cmp word [esp + 0x14], 0
mov eax, dword [esp + 0x74]
movzx ecx, ax
jne 0x1016f7a7
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
add ecx, 0x8000
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x68]
adc eax, 0
shrd ecx, eax, 0x10
mov dword [esp + 0x4c], 1
sar eax, 0x10
add ecx, dword [esp + 0x20]
mov dword [ebx], ecx
adc eax, dword [esp + 0x24]
add edx, 0x8000
mov dword [ebx + 4], eax
adc esi, 0
shrd edx, esi, 0x10
sar esi, 0x10
add edx, dword [esp + 0x28]
mov dword [ebx + 8], edx
adc esi, dword [esp + 0x2c]
mov dword [ebx + 0xc], esi
test eax, eax
jl 0x1016f758
jg 0x1016f73f
test ecx, ecx
je 0x1016f74e
mov dword [ebx], 0xffffffff
mov dword [ebx + 4], 0x7fffffff
jmp 0x1016f765
test eax, eax
jg 0x1016f765
jl 0x1016f758
test ecx, ecx
jae 0x1016f765
mov dword [ebx], 0
mov dword [ebx + 4], 0x80000000
test esi, esi
jl 0x1016f794
jg 0x1016f76f
test edx, edx
je 0x1016f782
mov dword [ebx + 8], 0xffffffff
mov dword [ebx + 0xc], 0x7fffffff
jmp 0x1016fb44
test esi, esi
jg 0x1016fb44
jl 0x1016f794
test edx, edx
jae 0x1016fb44
mov dword [ebx + 8], 0
mov dword [ebx + 0xc], 0x80000000
jmp 0x1016fb44
mov eax, ebp
movzx ecx, cx
test ebp, ebp
not eax
cmovns eax, ebp
test eax, eax
jne 0x1016f8c8
mov ebx, dword [esp + 0x44]
mov eax, ecx
shld ebp, edi, 0x10
cdq
lea ecx, [esp + 0x6c]
shl edi, 0x10
add edi, eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x3c], edi
mov edi, eax
adc ebp, edx
movzx edx, ax
shrd edi, ebx, 0x10
push ecx
sar ebx, 0x10
add edi, dword [esp + 0x24]
push ebp
adc ebx, dword [esp + 0x2c]
xor ecx, ecx
push dword [esp + 0x44]
mov eax, ebx
shld eax, edi, 0x10
shl edi, 0x10
add edx, edi
adc ecx, eax
mov eax, ebx
shld ecx, edx, 0x10
sar eax, 0x1f
push ecx
shl edx, 0x10
push edx
push eax
push ebx
call fcn.10170340
mov ebx, dword [esp + 0x88]
mov ecx, edx
sar ecx, 0x1f
mov edi, edx
add esp, 0x1c
sar edi, 0x1f
cmp ecx, ebx
mov ecx, dword [esp + 0x70]
jne 0x1016f837
cmp edi, ecx
je 0x1016f85a
mov dword [esp + 0x4c], 1
test ecx, ecx
jl 0x1016f853
jg 0x1016f849
test ebx, ebx
jb 0x1016f853
or eax, 0xffffffff
mov edx, 0x7fffffff
jmp 0x1016f85a
xor eax, eax
mov edx, 0x80000000
mov ebx, dword [esp + 0x68]
lea ecx, [esp + 0x6c]
push ecx
push ebp
push dword [esp + 0x44]
mov dword [ebx], eax
mov eax, dword [esp + 0x28]
mov edi, eax
shrd edi, esi, 0x10
mov dword [ebx + 4], edx
sar esi, 0x10
add edi, dword [esp + 0x34]
movzx edx, ax
adc esi, dword [esp + 0x38]
xor ecx, ecx
mov eax, esi
shld eax, edi, 0x10
shl edi, 0x10
add edx, edi
adc ecx, eax
mov eax, esi
shld ecx, edx, 0x10
sar eax, 0x1f
push ecx
shl edx, 0x10
push edx
push eax
push esi
call fcn.10170340
mov edi, dword [esp + 0x88]
mov ecx, edx
sar ecx, 0x1f
mov esi, edx
add esp, 0x1c
sar esi, 0x1f
cmp ecx, edi
mov ecx, dword [esp + 0x70]
jmp 0x1016fb15
xor ebx, ebx
nop word [eax + eax]
inc ebx
shr eax, 1
jne 0x1016f8d0
mov ecx, 0x10
movzx eax, dx
sub ecx, ebx
cdq
test ecx, ecx
jg 0x1016f8f7
neg ecx
mov eax, edi
mov edx, ebp
call fcn.101ec1c0
mov ebp, eax
mov dword [esp + 0x10], edx
jmp 0x1016f931
movq xmm1, qword [esp + 0x3c]
movd xmm0, ecx
psllq xmm1, xmm0
movq qword [esp + 0x14], xmm1
cmp ecx, 0x10
jge 0x1016f919
mov ecx, ebx
call fcn.101ec1c0
jmp 0x1016f921
add ecx, 0xfffffff0
call fcn.101ec300
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
add ebp, eax
adc ecx, edx
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x48]
mov edi, 0x20
mov edx, dword [esp + 0x44]
sub edi, ebx
mov ebx, eax
movzx eax, ax
shrd ebx, edx, 0x10
mov dword [esp + 0x3c], eax
sar edx, 0x10
add ebx, dword [esp + 0x20]
mov dword [esp + 0x14], ebx
mov eax, ebx
adc edx, dword [esp + 0x24]
mov dword [esp + 0x18], edx
test edi, edi
jg 0x1016f97d
mov ecx, edi
neg ecx
call fcn.101ec1c0
mov ecx, edx
mov ebx, eax
mov eax, ecx
sar eax, 0x1f
sar edx, 0x1f
jmp 0x1016f9da
mov ecx, 0x40
sub ecx, edi
call fcn.101ec1c0
movq xmm1, qword [esp + 0x14]
movd xmm0, edi
mov dword [esp + 0x34], edx
xor edx, edx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x3c]
psllq xmm1, xmm0
movq qword [esp + 0x14], xmm1
cmp edi, 0x10
jge 0x1016f9be
mov ecx, 0x10
sub ecx, edi
call fcn.101ec1c0
jmp 0x1016f9c6
lea ecx, [edi - 0x10]
call fcn.101ec300
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
add ebx, eax
mov eax, dword [esp + 0x38]
adc ecx, edx
mov edx, dword [esp + 0x34]
lea esi, [esp + 0x74]
push esi
push dword [esp + 0x14]
push ebp
push ecx
push ebx
push edx
push eax
call fcn.10170340
mov esi, dword [esp + 0x88]
mov ecx, edx
sar ecx, 0x1f
mov ebx, edx
add esp, 0x1c
sar ebx, 0x1f
cmp ecx, dword [esp + 0x74]
mov ecx, dword [esp + 0x78]
jne 0x1016fa0f
cmp ebx, ecx
je 0x1016fa35
mov dword [esp + 0x4c], 1
test ecx, ecx
jl 0x1016fa2e
jg 0x1016fa24
cmp dword [esp + 0x74], 0
jb 0x1016fa2e
or eax, 0xffffffff
mov edx, 0x7fffffff
jmp 0x1016fa35
xor eax, eax
mov edx, 0x80000000
mov ebx, dword [esp + 0x68]
mov dword [ebx], eax
mov eax, dword [esp + 0x1c]
mov ecx, eax
shrd ecx, esi, 0x10
movzx eax, ax
sar esi, 0x10
add ecx, dword [esp + 0x28]
mov dword [ebx + 4], edx
adc esi, dword [esp + 0x2c]
mov dword [esp + 0x14], ecx
mov edx, esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x3c], eax
test edi, edi
jg 0x1016fa81
neg edi
mov eax, ecx
mov ecx, edi
call fcn.101ec1c0
mov ecx, edx
mov esi, eax
mov eax, ecx
sar eax, 0x1f
sar edx, 0x1f
jmp 0x1016fae8
mov eax, 0x40
sub eax, edi
mov dword [esp + 0x6c], eax
mov eax, ecx
mov ecx, dword [esp + 0x6c]
call fcn.101ec1c0
movq xmm1, qword [esp + 0x14]
movd xmm0, edi
mov dword [esp + 0x34], edx
xor edx, edx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x3c]
psllq xmm1, xmm0
movq qword [esp + 0x14], xmm1
cmp edi, 0x10
jge 0x1016facc
mov ecx, 0x10
sub ecx, edi
call fcn.101ec1c0
jmp 0x1016fad4
lea ecx, [edi - 0x10]
call fcn.101ec300
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
add esi, eax
mov eax, dword [esp + 0x38]
adc ecx, edx
mov edx, dword [esp + 0x34]
lea edi, [esp + 0x74]
push edi
push dword [esp + 0x14]
push ebp
push ecx
push esi
push edx
push eax
call fcn.10170340
mov edi, dword [esp + 0x90]
mov ecx, edx
sar ecx, 0x1f
mov esi, edx
add esp, 0x1c
sar esi, 0x1f
cmp ecx, edi
mov ecx, dword [esp + 0x78]
jne 0x1016fb1b
cmp esi, ecx
je 0x1016fb3e
mov dword [esp + 0x4c], 1
test ecx, ecx
jl 0x1016fb37
jg 0x1016fb2d
test edi, edi
jb 0x1016fb37
or eax, 0xffffffff
mov edx, 0x7fffffff
jmp 0x1016fb3e
xor eax, eax
mov edx, 0x80000000
mov dword [ebx + 0xc], edx
mov dword [ebx + 8], eax
pop edi
xor eax, eax
mov dword [ebx + 0x10], 0x10000
cmp dword [esp + 0x48], eax
pop esi
pop ebp
mov dword [ebx + 0x14], 0
sete al
pop ebx
add esp, 0xa4
ret