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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x84]
mov edi, dword [esp + 0x70]
mov ebp, dword [esp + 0x74]
mov dword [esp + 0x38], 1
mov dword [esp + 0x3c], 0
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x88]
add ecx, 0xffffffff
adc ebx, 0xffffffff
shr edx, 0x1f
or esi, ebx
shr esi, 0x1f
mov ebx, esi
test bl, bl
jne 0x647e35
test dl, dl
jne 0x647e35
mov ecx, eax
and ch, 0xdf
cmp ecx, 5
ja 0x647e35
cmp ecx, 4
je 0x647e35
test ah, 0x20
je 0x647ad2
mov ecx, edi
mov ebx, ebp
add ecx, 0xffffffff
adc ebx, 0x7fffffff
cmp ebx, 0xffffffff
jb 0x647acd
cmp ecx, 0xfffffffd
ja 0x647e2f
sub eax, 0x2000
test ebp, ebp
jns 0x647b17
mov ecx, eax
mov ebx, ebp
shr ecx, 1
and ecx, 1
xor eax, ecx
cmp ebp, 0x80000000
mov ecx, edi
jg 0x647afa
cmp edi, 1
jae 0x647afa
mov ecx, 1
mov ebx, 0x80000000
mov edi, ecx
mov ebp, ebx
neg edi
adc ebp, 0
neg ebp
neg dword [esp + 0x38]
adc dword [esp + 0x3c], 0
neg dword [esp + 0x3c]
jmp 0x647a84
cmp eax, 5
jne 0x647b2c
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
shrd eax, edx, 1
sar edx, 1
jmp 0x647b4e
test al, 1
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
je 0x647b56
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
add eax, 0xffffffff
adc edx, 0xffffffff
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
cmp dword [esp + 0x24], 0
jl 0x647b71
jg 0x647cca
cmp dword [esp + 0x18], 0x7fffffff
ja 0x647cca
cmp dword [esp + 0x14], 0
jl 0x647b8c
jg 0x647cca
cmp dword [esp + 0x10], 0x7fffffff
ja 0x647cca
cmp ebp, 0
jg 0x647bdc
jl 0x647b9b
cmp edi, 0x7fffffff
ja 0x647bdc
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
imul esi, edi
imul ecx, ebp
mov ebp, dword [esp + 0x14]
mul edi
add ecx, esi
mov edi, dword [esp + 0x10]
mov dword [esp + 0xc], ebp
add edx, ecx
add eax, dword [esp + 0x28]
mov dword [esp + 8], edi
adc edx, dword [esp + 0x2c]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0068a1b7
jmp 0x647cc1
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov dword [esp], edi
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
call fcn.0068a1b7
mov ebx, edx
mov esi, eax
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov dword [esp], edi
mov dword [esp + 4], ebp
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
call fcn.0068a2f7
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x10]
imul edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
imul ecx, eax
mov dword [esp + 8], edi
mov dword [esp + 0xc], ebp
add ecx, edx
mul dword [esp + 0x18]
add edx, ecx
add eax, dword [esp + 0x28]
adc edx, dword [esp + 0x2c]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0068a1b7
cmp ebx, 0
mov edi, eax
mov ebp, edx
jg 0x647c63
jl 0x647ca7
cmp esi, 0x7ffffffe
jbe 0x647ca7
mov eax, dword [esp + 0x18]
or eax, dword [esp + 0x24]
je 0x647ca7
mov ecx, dword [esp + 0x18]
or eax, 0xffffffff
mov edx, 0x7fffffff
sub eax, edi
sbb edx, ebp
mov dword [esp], eax
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 4], edx
mov dword [esp + 0xc], ecx
call fcn.0068a1b7
cmp ebx, edx
jg 0x647e35
jl 0x647ca7
cmp esi, eax
ja 0x647e35
imul ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
imul eax, esi
add ebx, eax
mov eax, dword [esp + 0x18]
mul esi
add edx, ebx
add eax, edi
adc edx, ebp
mov ebx, eax
mov esi, edx
jmp 0x647e3c
mov eax, ebp
mov ecx, ebp
mov ebx, edi
sar eax, 0x1f
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x24]
sar eax, 0x1f
mov dword [esp + 0x4c], eax
mov ebp, eax
mov eax, dword [esp + 0x24]
imul ebp, edi
mul edi
mov edi, edx
mov esi, eax
mov eax, dword [esp + 0x18]
add edi, ebp
mov ebp, dword [esp + 0x48]
imul ebp, dword [esp + 0x18]
mul ecx
add edx, ebp
add esi, eax
adc edi, edx
xor eax, eax
mov edx, esi
mov dword [esp + 0x30], esi
mov esi, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x34], edi
mov edi, edx
mul ebx
mov ebx, dword [esp + 0x4c]
add eax, esi
adc edx, edi
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x48]
imul eax, dword [esp + 0x24]
imul ebx, ecx
mov dword [esp + 0x1c], edx
lea ebp, [eax + ebx]
mov eax, dword [esp + 0x24]
mul ecx
mov ebx, edx
mov edx, dword [esp + 0x34]
mov ecx, eax
add ebx, ebp
mov eax, edx
xor edx, edx
add eax, ecx
mov ecx, 1
adc edx, ebx
xor ebx, ebx
cmp edi, dword [esp + 0x1c]
ja 0x647d66
xor ecx, ecx
xor ebx, ebx
add ecx, eax
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x2c]
adc ebx, edx
add eax, dword [esp + 0x28]
mov edx, dword [esp + 0x1c]
adc edx, dword [esp + 0x2c]
mov dword [esp + 0x18], eax
mov eax, 1
mov dword [esp + 0x1c], edx
xor edx, edx
cmp ebp, dword [esp + 0x1c]
ja 0x647da3
jb 0x647d9f
mov ebp, dword [esp + 0x18]
cmp dword [esp + 0x28], ebp
ja 0x647da3
xor eax, eax
xor edx, edx
add eax, ecx
mov ecx, 0x3f
adc edx, ebx
mov ebx, eax
mov esi, edx
mov dword [esp + 0x44], 0
add ebx, eax
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x34]
adc esi, edx
mov edx, dword [esp + 0x1c]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
cmovne eax, edx
mov edx, esi
mov esi, dword [esp + 0x30]
and eax, 1
mov dword [esp + 0x40], eax
mov eax, ebx
add eax, dword [esp + 0x40]
adc edx, dword [esp + 0x44]
add dword [esp + 0x30], esi
adc dword [esp + 0x34], edi
cmp edx, dword [esp + 0x14]
jb 0x647e12
ja 0x647e00
cmp eax, dword [esp + 0x10]
jb 0x647e12
sub eax, dword [esp + 0x10]
sbb edx, dword [esp + 0x14]
add dword [esp + 0x30], 1
adc dword [esp + 0x34], 0
dec ecx
cmp ecx, 0xffffffff
jne 0x647dac
mov ecx, dword [esp + 0x34]
xor ebx, ebx
mov esi, 0x80000000
test ecx, ecx
js 0x647e3c
mov ebx, dword [esp + 0x30]
mov esi, ecx
jmp 0x647e3c
mov ebx, edi
mov esi, ebp
jmp 0x647e3c
xor ebx, ebx
mov esi, 0x80000000
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov eax, ebx
imul edx, ebx
imul ecx, esi
add ecx, edx
mul dword [esp + 0x38]
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
add edx, ecx
ret