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

Disassembly:
push edi
push esi
push ebx
sub esp, 0x60
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x74]
mov ecx, dword [esp + 0x78]
mov ebx, dword [esp + 0x7c]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], ebx
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
mov eax, dword [esp + 0x88]
mov dword [esp + 0x38], 1
mov dword [esp + 0x3c], 0
nop
mov ecx, esi
mov ebx, edi
add ecx, 0xffffffff
adc ebx, 0x7fffffff
test ah, 0x20
je 0x635ca6d5
cmp ebx, 0xffffffff
jb 0x635ca6d0
cmp ecx, 0xfffffffd
jbe 0x635ca6d0
mov eax, dword [esp + 0x3c]
imul eax, esi
mov ecx, dword [esp + 0x38]
imul ecx, edi
add ecx, eax
mov eax, dword [esp + 0x38]
mul esi
mov edi, edx
add edi, ecx
mov edx, edi
add esp, 0x60
pop ebx
pop esi
pop edi
ret
sub eax, 0x2000
cmp ebx, 0x7fffffff
jbe 0x635ca8bc
cmp eax, 5
je 0x635ca9ef
test al, 1
je 0x635ca8e9
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
add eax, 0xffffffff
adc edx, 0xffffffff
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], edx
cmp dword [esp + 0x44], 0
jle 0x635ca904
mov ebx, esi
mov eax, esi
mov edx, edi
mov eax, edx
mov edx, eax
sar edx, 0x1f
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edx
mov esi, dword [esp + 0x40]
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
mov edx, ecx
mov ecx, edx
sar ecx, 0x1f
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x4c]
imul ecx, esi
mov eax, dword [esp + 0x48]
mul esi
mov dword [esp + 0x18], eax
add edx, ecx
mov dword [esp + 0x1c], edx
mov ecx, dword [esp + 0x44]
imul ecx, ebx
mov eax, dword [esp + 0x40]
mul ebx
mov dword [esp + 0x30], eax
add edx, ecx
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
add edx, dword [esp + 0x30]
adc ecx, dword [esp + 0x34]
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ecx
mov ecx, edx
mov edx, 0
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], ecx
mov eax, ebx
mul esi
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
mov ecx, dword [esp + 0x58]
mov ebx, dword [esp + 0x5c]
add dword [esp + 0x30], ecx
adc dword [esp + 0x34], ebx
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov esi, edi
xor edi, edi
mov edx, dword [esp + 0x4c]
imul edx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
imul eax, dword [esp + 0x48]
lea ecx, [edx + eax]
mov eax, dword [esp + 0x48]
mul dword [esp + 0x40]
mov dword [esp + 0x40], eax
add edx, ecx
mov dword [esp + 0x44], edx
add esi, dword [esp + 0x40]
adc edi, dword [esp + 0x44]
mov eax, 1
xor edx, edx
cmp dword [esp + 0x34], ebx
jb 0x635ca806
jbe 0x635caa3c
xor eax, eax
xor edx, edx
add eax, esi
adc edx, edi
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0x54]
add ecx, dword [esp + 0x30]
adc ebx, dword [esp + 0x34]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], ebx
mov esi, 1
xor edi, edi
cmp dword [esp + 0x54], ebx
ja 0x635ca839
jae 0x635caa2d
xor esi, esi
xor edi, edi
add esi, eax
adc edi, edx
mov ecx, 0x3f
nop
add esi, esi
adc edi, edi
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
je 0x635ca85e
mov eax, edx
xor edx, edx
mov ebx, eax
and ebx, 1
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], 0
add esi, dword [esp + 0x20]
adc edi, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
add dword [esp + 0x18], eax
adc dword [esp + 0x1c], edx
cmp edi, dword [esp + 0x2c]
jb 0x635ca8a7
ja 0x635ca895
cmp esi, dword [esp + 0x28]
jb 0x635ca8a7
sub esi, dword [esp + 0x28]
sbb edi, dword [esp + 0x2c]
add dword [esp + 0x18], 1
adc dword [esp + 0x1c], 0
dec ecx
cmp ecx, 0xffffffff
jne 0x635ca844
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
jmp 0x635ca6ac
jb 0x635ca8c7
cmp ecx, 0xfffffffe
ja 0x635ca6e1
mov edx, eax
shr edx, 1
and edx, 1
neg esi
adc edi, 0
neg edi
neg dword [esp + 0x38]
adc dword [esp + 0x3c], 0
neg dword [esp + 0x3c]
xor eax, edx
jmp 0x635ca690
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
cmp dword [esp + 0x44], 0
jg 0x635ca713
jl 0x635ca914
cmp dword [esp + 0x40], 0x7fffffff
ja 0x635ca713
cmp dword [esp + 0x2c], 0
jg 0x635ca713
jl 0x635ca92f
cmp dword [esp + 0x28], 0x7fffffff
ja 0x635ca713
cmp edi, 0
jle 0x635caa4f
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov dword [esp], esi
mov dword [esp + 4], edi
call fcn.635d97d0
mov ecx, eax
imul edx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
imul eax, ecx
lea ebx, [edx + eax]
mov eax, dword [esp + 0x40]
mul ecx
mov dword [esp + 0x18], eax
add edx, ebx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp], esi
mov dword [esp + 4], edi
call fcn.635d9660
mov ecx, eax
imul edx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
imul eax, ecx
lea ebx, [edx + eax]
mov eax, dword [esp + 0x40]
mul ecx
mov dword [esp + 0x20], eax
add edx, ebx
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
add eax, dword [esp + 0x50]
adc edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.635d97d0
mov esi, eax
mov edi, edx
add esi, dword [esp + 0x18]
adc edi, dword [esp + 0x1c]
jmp 0x635ca6ac
mov eax, dword [esp + 0x2c]
shr eax, 0x1f
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], 0
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
add dword [esp + 0x50], edx
adc dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0x54]
shrd ecx, ebx, 1
sar ebx, 1
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], ebx
jmp 0x635ca708
cmp dword [esp + 0x50], ecx
ja 0x635ca839
jmp 0x635ca835
mov ecx, dword [esp + 0x58]
cmp dword [esp + 0x30], ecx
jb 0x635ca806
jmp 0x635ca802
jl 0x635caa5d
cmp esi, 0x7fffffff
ja 0x635ca938
mov edx, dword [esp + 0x44]
imul edx, esi
mov eax, dword [esp + 0x40]
imul eax, edi
lea ecx, [edx + eax]
mov eax, dword [esp + 0x40]
mul esi
mov esi, eax
mov edi, edx
add edi, ecx
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
add eax, esi
adc edx, edi
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.635d97d0
mov esi, eax
mov edi, edx
jmp 0x635ca6ac