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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x74]
mov ebx, dword [esp + 0x78]
mov ebp, dword [esp + 0x7c]
mov dword [esp + 0x28], eax
add eax, 0xffffffff
mov dword [esp + 0x2c], edx
adc edx, 0xffffffff
or edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x88]
js 0x892617
mov eax, ebp
shr eax, 0x1f
test al, al
jne 0x892617
mov eax, ecx
and ah, 0xdf
cmp eax, 5
ja 0x892617
cmp eax, 4
je 0x892617
mov dword [esp + 0x20], ebp
mov eax, 1
xor edx, edx
mov dword [esp + 0x18], ebx
mov ebp, ecx
lea esi, [esi]
test ebp, 0x2000
je 0x892247
mov ecx, esi
mov ebx, edi
add ecx, 0xffffffff
adc ebx, 0x7fffffff
cmp ebx, 0xffffffff
jb 0x892241
cmp ecx, 0xfffffffd
jbe 0x892241
mov ecx, edx
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
imul eax, edi
imul ecx, esi
add ecx, eax
mov eax, dword [esp + 0x38]
mul esi
add edx, ecx
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
sub ebp, 0x2000
test edi, edi
jns 0x8922a0
mov ecx, ebp
shr ecx, 1
and ecx, 1
xor ebp, ecx
cmp edi, 0x80000000
jg 0x89226b
cmp esi, 1
jae 0x89226b
mov esi, 1
mov edi, 0x80000000
neg esi
mov ecx, ebp
adc edi, 0
neg edi
neg eax
adc edx, 0
and ch, 0xdf
neg edx
cmp ecx, 5
ja 0x89228c
cmp ecx, 4
jne 0x892200
add esp, 0x5c
mov edx, eax
mov eax, 0
pop ebx
shl edx, 0x1f
pop esi
pop edi
pop ebp
ret
mov ecx, ebp
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
cmp ecx, 5
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
je 0x8925e0
and ecx, 1
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
jne 0x8925c5
cmp ebp, 0
jl 0x8924ad
jle 0x8924a1
mov eax, edi
mov dword [esp + 0x20], edi
mov edi, ebp
sar eax, 0x1f
sar edi, 0x1f
mov dword [esp + 0x40], esi
mov dword [esp + 0x48], eax
mov eax, esi
mov ecx, edi
mul ebp
mov dword [esp + 0x4c], edi
imul ecx, esi
mov edi, edx
mov esi, eax
mov eax, dword [esp + 0x20]
add edi, ecx
mov ecx, dword [esp + 0x48]
mul ebx
imul ecx, ebx
add edx, ecx
add esi, eax
mov eax, esi
adc edi, edx
mov edx, eax
mov eax, 0
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x34], edx
mul ebx
mov ebx, dword [esp + 0x4c]
mov ecx, edx
mov edx, eax
add edx, dword [esp + 0x30]
adc ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x48]
imul ebx, dword [esp + 0x20]
imul eax, ebp
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], ecx
lea ecx, [eax + ebx]
mov eax, dword [esp + 0x20]
mov ebx, edi
mul ebp
mov ebp, dword [esp + 0x34]
add edx, ecx
mov ecx, ebx
xor ebx, ebx
add ecx, eax
mov eax, 1
adc ebx, edx
xor edx, edx
cmp ebp, dword [esp + 0x44]
ja 0x892384
xor eax, eax
xor edx, edx
add ecx, eax
mov eax, dword [esp + 0x40]
mov ebp, dword [esp + 0x1c]
adc ebx, edx
add eax, dword [esp + 0x18]
mov edx, dword [esp + 0x44]
adc edx, dword [esp + 0x1c]
mov dword [esp + 0x30], eax
mov eax, 1
mov dword [esp + 0x34], edx
xor edx, edx
cmp ebp, dword [esp + 0x34]
ja 0x8923bb
jae 0x892604
xor eax, eax
xor edx, edx
add eax, ecx
mov ecx, 0x3f
mov dword [esp + 0x18], esi
adc edx, ebx
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], edi
mov dword [esp + 0x24], edx
mov ebp, ecx
lea esi, [esi]
lea edi, [edi]
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x34]
mov ecx, ebp
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x30]
shld edx, eax, 1
shrd ebx, esi, cl
add eax, eax
shr esi, cl
test cl, 0x20
je 0x892404
mov ebx, esi
mov edi, ebx
mov dword [esp + 0x14], 0
and edi, 1
mov dword [esp + 0x10], edi
add eax, dword [esp + 0x10]
adc edx, dword [esp + 0x14]
mov ebx, eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x18]
mov esi, edx
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x1c]
shld edx, eax, 1
add eax, eax
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x28]
cmp esi, edx
jb 0x892463
ja 0x892451
cmp ebx, eax
jb 0x892463
sub dword [esp + 0x20], eax
sbb dword [esp + 0x24], edx
add dword [esp + 0x18], 1
adc dword [esp + 0x1c], 0
sub ebp, 1
cmp ebp, 0xffffffff
jne 0x8923e0
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
test edi, edi
mov eax, esi
mov edx, edi
js 0x8925fb
mov ebp, dword [esp + 0x3c]
mov edi, dword [esp + 0x38]
add esp, 0x5c
pop ebx
pop esi
mov ecx, ebp
imul edx, edi
imul ecx, eax
add ecx, edx
mul edi
pop edi
pop ebp
add edx, ecx
ret
cmp ebx, 0x7fffffff
ja 0x8922e3
cmp dword [esp + 0x2c], 0
jl 0x8924c8
jg 0x8922e3
cmp dword [esp + 0x28], 0x7fffffff
ja 0x8922e3
cmp edi, 0
jle 0x892623
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.00bd0e70
mov dword [esp + 0x20], eax
mov dword [esp + 0x10], edx
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.00bd0fb0
mov ecx, ebp
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
imul edx, ebx
imul ecx, eax
mov dword [esp + 8], esi
mov dword [esp + 0xc], edi
add ecx, edx
mul ebx
add edx, ecx
add eax, dword [esp + 0x18]
adc edx, dword [esp + 0x1c]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00bd0e70
cmp dword [esp + 0x10], 0
mov esi, eax
mov edi, edx
jle 0x892670
mov eax, ebx
or eax, ebp
je 0x892588
mov eax, 0xffffffff
mov edx, 0x7fffffff
mov dword [esp + 8], ebx
sub eax, esi
mov dword [esp + 0xc], ebp
sbb edx, edi
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00bd0e70
cmp dword [esp + 0x10], edx
jl 0x892588
jg 0x8925fb
cmp dword [esp + 0x20], eax
ja 0x8925fb
mov ecx, ebp
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x20]
imul eax, ebx
imul ecx, ebp
add ecx, eax
mov eax, ebp
mul ebx
add edx, ecx
add esi, eax
mov eax, dword [esp + 0x38]
adc edi, edx
mov edx, dword [esp + 0x3c]
mov ecx, eax
mov eax, edx
imul eax, esi
imul ecx, edi
add ecx, eax
mov eax, dword [esp + 0x38]
mul esi
add edx, ecx
jmp 0x892239
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
add eax, 0xffffffff
adc edx, 0xffffffff
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
jmp 0x8922d4
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
shrd eax, edx, 1
sar edx, 1
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
jmp 0x8922d4
mov eax, dword [esp + 0x38]
jmp 0x89228c
mov ebp, dword [esp + 0x30]
cmp dword [esp + 0x18], ebp
ja 0x8923bb
jmp 0x8923b7
xor eax, eax
mov edx, 0x80000000
jmp 0x892239
jl 0x892631
cmp esi, 0x7fffffff
ja 0x8924d1
mov eax, ebp
mov ecx, edi
imul eax, esi
imul ecx, ebx
add ecx, eax
mov eax, ebx
mul esi
mov edi, edx
mov esi, eax
mov edx, dword [esp + 0x2c]
add edi, ecx
add esi, dword [esp + 0x18]
mov eax, dword [esp + 0x28]
adc edi, dword [esp + 0x1c]
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov dword [esp], esi
mov dword [esp + 4], edi
call fcn.00bd0e70
jmp 0x892483
jl 0x892588
cmp dword [esp + 0x20], 0x7ffffffe
jbe 0x892588
jmp 0x892552