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

Disassembly:
push edi
push esi
push ebx
sub esp, 0x60
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x78]
mov ebx, dword [esp + 0x7c]
mov edx, dword [esp + 0x84]
mov dword [esp + 0x28], eax
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x74]
mov eax, dword [esp + 0x88]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], 1
mov dword [esp + 0x34], 0
nop
lea esi, [esi]
mov ecx, esi
mov ebx, edi
add ecx, 0xffffffff
adc ebx, 0x7fffffff
test ah, 0x20
je 0x53ac95
cmp ebx, 0xffffffff
jb 0x53ac90
cmp ecx, 0xfffffffd
jbe 0x53ac90
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
imul eax, esi
imul ecx, edi
add ecx, eax
mov eax, dword [esp + 0x30]
add esp, 0x60
pop ebx
mul esi
pop esi
mov edi, edx
add edi, ecx
mov edx, edi
pop edi
ret
sub eax, 0x2000
cmp ebx, 0x7fffffff
jbe 0x53ae83
cmp eax, 5
je 0x53af99
test al, 1
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
je 0x53acd4
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
add eax, 0xffffffff
adc edx, 0xffffffff
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edx
cmp dword [esp + 0x2c], 0
jl 0x53aebe
jle 0x53aeb0
mov ecx, dword [esp + 0x44]
mov edx, edi
mov ebx, esi
sar edx, 0x1f
mov esi, dword [esp + 0x40]
mov dword [esp + 0x54], edx
mov dword [esp + 0x50], edi
mov eax, dword [esp + 0x50]
mov edx, ecx
sar ecx, 0x1f
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x40], edx
mul esi
imul ecx, esi
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x40]
add edx, ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x1c], edx
mul ebx
imul ecx, ebx
mov dword [esp + 0x38], eax
mov eax, ebx
add edx, ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x18]
add edx, dword [esp + 0x38]
adc ecx, dword [esp + 0x3c]
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ecx
mov ecx, edx
xor edx, edx
mov dword [esp + 0x58], edx
mul esi
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x58]
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x44]
mov esi, edi
add dword [esp + 0x38], ecx
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x54]
adc dword [esp + 0x3c], ebx
xor edi, edi
imul edx, dword [esp + 0x40]
imul eax, dword [esp + 0x50]
lea ecx, [edx + eax]
mov eax, dword [esp + 0x50]
mul dword [esp + 0x40]
add edx, ecx
mov dword [esp + 0x40], eax
mov eax, 1
add esi, dword [esp + 0x40]
mov dword [esp + 0x44], edx
adc edi, dword [esp + 0x44]
xor edx, edx
cmp dword [esp + 0x3c], ebx
jb 0x53add0
ja 0x53afec
mov ecx, dword [esp + 0x58]
cmp dword [esp + 0x38], ecx
jae 0x53afec
nop
add eax, esi
mov ecx, dword [esp + 0x48]
mov esi, 1
mov ebx, dword [esp + 0x4c]
adc edx, edi
add ecx, dword [esp + 0x38]
adc ebx, dword [esp + 0x3c]
xor edi, edi
cmp dword [esp + 0x4c], ebx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ebx
jbe 0x53afd7
add esi, eax
mov ecx, 0x3f
adc edi, edx
mov edx, dword [esp + 0x3c]
shld edi, esi, 1
add esi, esi
mov eax, dword [esp + 0x38]
mov dword [esp + 0x24], 0
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
cmovne eax, edx
mov edx, dword [esp + 0x1c]
mov ebx, eax
mov eax, dword [esp + 0x18]
and ebx, 1
mov dword [esp + 0x20], ebx
add esi, dword [esp + 0x20]
adc edi, dword [esp + 0x24]
shld edx, eax, 1
add eax, eax
cmp edi, dword [esp + 0x2c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
jb 0x53ae6e
ja 0x53ae5c
cmp esi, dword [esp + 0x28]
jb 0x53ae6e
sub esi, dword [esp + 0x28]
sbb edi, dword [esp + 0x2c]
add dword [esp + 0x18], 1
adc dword [esp + 0x1c], 0
sub ecx, 1
cmp ecx, 0xffffffff
jne 0x53ae06
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
jmp 0x53ac6c
jb 0x53ae8e
cmp ecx, 0xfffffffe
ja 0x53aca1
mov edx, eax
shr edx, 1
and edx, 1
neg esi
adc edi, 0
neg edi
neg dword [esp + 0x30]
adc dword [esp + 0x34], 0
xor eax, edx
neg dword [esp + 0x34]
jmp 0x53ac50
cmp dword [esp + 0x28], 0x7fffffff
ja 0x53ace5
cmp dword [esp + 0x44], 0
jl 0x53aed9
jg 0x53ace5
cmp dword [esp + 0x40], 0x7fffffff
ja 0x53ace5
cmp edi, 0
jle 0x53aff5
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov dword [esp], esi
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
call fcn.00567bf0
mov dword [esp], esi
mov dword [esp + 4], edi
imul edx, dword [esp + 0x40]
mov ecx, eax
mov eax, dword [esp + 0x44]
imul eax, ecx
lea ebx, [edx + eax]
mov eax, dword [esp + 0x40]
mul ecx
mov ecx, dword [esp + 0x2c]
add edx, ebx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x18], eax
mov dword [esp + 8], edx
call fcn.00567e80
imul edx, dword [esp + 0x40]
mov ecx, eax
mov eax, dword [esp + 0x44]
imul eax, ecx
lea ebx, [edx + eax]
mov eax, dword [esp + 0x40]
mul ecx
mov ecx, dword [esp + 0x28]
add edx, ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x24]
add eax, dword [esp + 0x48]
adc edx, dword [esp + 0x4c]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00567bf0
mov esi, eax
mov edi, edx
add esi, dword [esp + 0x18]
adc edi, dword [esp + 0x1c]
jmp 0x53ac6c
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x4c], 0
shr eax, 0x1f
mov dword [esp + 0x48], eax
add dword [esp + 0x48], edx
adc dword [esp + 0x4c], ecx
mov ebx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
shrd ecx, ebx, 1
sar ebx, 1
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], ebx
jmp 0x53acd4
jb 0x53afe3
cmp dword [esp + 0x48], ecx
ja 0x53adfd
xor esi, esi
xor edi, edi
jmp 0x53adfd
xor eax, eax
xor edx, edx
jmp 0x53add0
jl 0x53b003
cmp esi, 0x7fffffff
ja 0x53aee2
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
mov ebx, dword [esp + 0x2c]
imul edx, esi
imul eax, edi
mov dword [esp + 0xc], ebx
lea ecx, [edx + eax]
mov eax, dword [esp + 0x40]
mul esi
mov esi, eax
mov eax, dword [esp + 0x48]
mov edi, edx
mov edx, dword [esp + 0x4c]
add edi, ecx
mov ecx, dword [esp + 0x28]
add eax, esi
adc edx, edi
mov dword [esp + 8], ecx
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00567bf0
mov esi, eax
mov edi, edx
jmp 0x53ac6c