Function at 0x10178a50
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.101f4fe0
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.101f4fe0
push dword [esp + 0x50]
add dword [esp + 0x24], eax
push dword [esp + 0x68]
adc dword [esp + 0x2c], edx
push esi
push edi
call fcn.101f4fe0
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.101f4fe0
push 0
push ebx
push esi
push edi
mov dword [esp + 0x58], eax
mov ebp, edx
call fcn.101f4fe0
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.101f4fe0
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.101f4fe0
push ebx
push ebp
push dword [esp + 0x5c]
mov dword [esp + 0x34], eax
push dword [esp + 0x88]
mov dword [esp + 0x3c], edx
call fcn.101f4fe0
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.101f4fe0
add dword [esp + 0x28], eax
push esi
adc dword [esp + 0x30], edx
push edi
push 0
push dword [esp + 0x3c]
call fcn.101f4fe0
push ebx
push ebp
push 0
push dword [esp + 0x68]
mov edi, eax
mov esi, edx
call fcn.101f4fe0
push 0
push dword [esp + 0x64]
add edi, eax
push dword [esp + 0x24]
adc esi, edx
push dword [esp + 0x1c]
call fcn.101f4fe0
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.101f4fe0
push ebp
push dword [esp + 0x38]
mov dword [esp + 0x38], eax
push 0
push dword [esp + 0x68]
mov dword [esp + 0x20], edx
call fcn.101f4fe0
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.101f4fe0
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.101f4fe0
push ebp
push dword [esp + 0x38]
mov edi, eax
mov dword [esp + 0x6c], edx
push dword [esp + 0x5c]
push dword [esp + 0x88]
call fcn.101f4fe0
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.101f4fe0
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 0x10178dbe
test ebp, ebp
jne 0x10178dbe
movzx ecx, dx
cmp word [esp + 0x60], bp
jne 0x10178ea7
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 0x10179244
mov eax, dword [esp + 0x5c]
movzx ecx, ax
mov eax, edi
or eax, ebp
jne 0x10178ea7
cmp word [esp + 0x14], 0
mov eax, dword [esp + 0x74]
movzx ecx, ax
jne 0x10178ea7
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 0x10178e58
jg 0x10178e3f
test ecx, ecx
je 0x10178e4e
mov dword [ebx], 0xffffffff
mov dword [ebx + 4], 0x7fffffff
jmp 0x10178e65
test eax, eax
jg 0x10178e65
jl 0x10178e58
test ecx, ecx
jae 0x10178e65
mov dword [ebx], 0
mov dword [ebx + 4], 0x80000000
test esi, esi
jl 0x10178e94
jg 0x10178e6f
test edx, edx
je 0x10178e82
mov dword [ebx + 8], 0xffffffff
mov dword [ebx + 0xc], 0x7fffffff
jmp 0x10179244
test esi, esi
jg 0x10179244
jl 0x10178e94
test edx, edx
jae 0x10179244
mov dword [ebx + 8], 0
mov dword [ebx + 0xc], 0x80000000
jmp 0x10179244
mov eax, ebp
movzx ecx, cx
test ebp, ebp
not eax
cmovns eax, ebp
test eax, eax
jne 0x10178fc8
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.10179a40
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 0x10178f37
cmp edi, ecx
je 0x10178f5a
mov dword [esp + 0x4c], 1
test ecx, ecx
jl 0x10178f53
jg 0x10178f49
test ebx, ebx
jb 0x10178f53
or eax, 0xffffffff
mov edx, 0x7fffffff
jmp 0x10178f5a
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.10179a40
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 0x10179215
xor ebx, ebx
nop word [eax + eax]
inc ebx
shr eax, 1
jne 0x10178fd0
mov ecx, 0x10
movzx eax, dx
sub ecx, ebx
cdq
test ecx, ecx
jg 0x10178ff7
neg ecx
mov eax, edi
mov edx, ebp
call fcn.101f5890
mov ebp, eax
mov dword [esp + 0x10], edx
jmp 0x10179031
movq xmm1, qword [esp + 0x3c]
movd xmm0, ecx
psllq xmm1, xmm0
movq qword [esp + 0x14], xmm1
cmp ecx, 0x10
jge 0x10179019
mov ecx, ebx
call fcn.101f5890
jmp 0x10179021
add ecx, 0xfffffff0
call fcn.101f59e0
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 0x1017907d
mov ecx, edi
neg ecx
call fcn.101f5890
mov ecx, edx
mov ebx, eax
mov eax, ecx
sar eax, 0x1f
sar edx, 0x1f
jmp 0x101790da
mov ecx, 0x40
sub ecx, edi
call fcn.101f5890
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 0x101790be
mov ecx, 0x10
sub ecx, edi
call fcn.101f5890
jmp 0x101790c6
lea ecx, [edi - 0x10]
call fcn.101f59e0
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.10179a40
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 0x1017910f
cmp ebx, ecx
je 0x10179135
mov dword [esp + 0x4c], 1
test ecx, ecx
jl 0x1017912e
jg 0x10179124
cmp dword [esp + 0x74], 0
jb 0x1017912e
or eax, 0xffffffff
mov edx, 0x7fffffff
jmp 0x10179135
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 0x10179181
neg edi
mov eax, ecx
mov ecx, edi
call fcn.101f5890
mov ecx, edx
mov esi, eax
mov eax, ecx
sar eax, 0x1f
sar edx, 0x1f
jmp 0x101791e8
mov eax, 0x40
sub eax, edi
mov dword [esp + 0x6c], eax
mov eax, ecx
mov ecx, dword [esp + 0x6c]
call fcn.101f5890
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 0x101791cc
mov ecx, 0x10
sub ecx, edi
call fcn.101f5890
jmp 0x101791d4
lea ecx, [edi - 0x10]
call fcn.101f59e0
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.10179a40
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 0x1017921b
cmp esi, ecx
je 0x1017923e
mov dword [esp + 0x4c], 1
test ecx, ecx
jl 0x10179237
jg 0x1017922d
test edi, edi
jb 0x10179237
or eax, 0xffffffff
mov edx, 0x7fffffff
jmp 0x1017923e
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