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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov ebx, dword [esp + 0x7c]
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x74]
mov ebp, dword [esp + 0x78]
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
test ebx, ebx
mov ecx, dword [esp + 0x88]
js 0x1003477d
mov dword [esp + 0x28], eax
add eax, 0xffffffff
mov dword [esp + 0x2c], edx
adc edx, 0xffffffff
or edx, dword [esp + 0x2c]
js 0x1003477d
mov eax, ecx
and ah, 0xdf
cmp eax, 5
ja 0x1003477d
cmp eax, 4
je 0x1003477d
mov dword [esp + 0x18], ebp
mov eax, 1
xor edx, edx
mov ebp, ecx
mov dword [esp + 0x20], ebx
test ebp, 0x2000
je 0x100343bb
mov ecx, esi
mov ebx, edi
add ecx, 0xffffffff
adc ebx, 0x7fffffff
cmp ebx, 0xffffffff
jb 0x100343b5
cmp ecx, 0xfffffffd
jbe 0x100343b5
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 0x10034410
mov ecx, ebp
shr ecx, 1
and ecx, 1
xor ebp, ecx
cmp edi, 0x80000000
jg 0x100343df
cmp esi, 1
jae 0x100343df
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 0x10034400
cmp ecx, 4
jne 0x10034374
add esp, 0x5c
mov edx, eax
xor eax, eax
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 ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
je 0x10034724
and ecx, 1
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
jne 0x1003473f
cmp ebx, 0
jl 0x1003460c
jle 0x10034600
mov eax, edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x30], esi
sar eax, 0x1f
mov dword [esp + 0x48], eax
mov eax, ebx
sar eax, 0x1f
mov dword [esp + 0x4c], eax
mov ecx, eax
mov eax, esi
mul ebx
imul ecx, esi
mov edi, edx
mov esi, eax
mov eax, dword [esp + 0x44]
add edi, ecx
mov ecx, dword [esp + 0x48]
mul ebp
imul ecx, ebp
add edx, ecx
add esi, eax
mov eax, dword [esp + 0x30]
adc edi, edx
xor edx, edx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], esi
mul ebp
add eax, dword [esp + 0x20]
mov ebp, dword [esp + 0x48]
adc edx, dword [esp + 0x24]
imul ebp, ebx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x34], edx
imul eax, ecx
add ebp, eax
mov eax, ecx
mul ebx
mov ecx, eax
mov ebx, edx
xor edx, edx
add ebx, ebp
add ecx, edi
mov ebp, dword [esp + 0x24]
adc ebx, edx
xor edx, edx
cmp ebp, dword [esp + 0x34]
mov eax, 1
ja 0x100344e8
xor eax, eax
xor edx, edx
add ecx, eax
mov eax, dword [esp + 0x30]
mov ebp, dword [esp + 0x1c]
adc ebx, edx
add eax, dword [esp + 0x18]
mov edx, dword [esp + 0x34]
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 0x1003451f
jae 0x1003476a
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]
mov esi, dword [esp + 0x34]
mov ebx, dword [esp + 0x30]
mov ecx, ebp
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x14], 0
shrd ebx, esi, cl
shld edx, eax, 1
shr esi, cl
add eax, eax
test cl, 0x20
cmovne ebx, esi
mov edi, ebx
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 0x100345c2
ja 0x100345b0
cmp ebx, eax
jb 0x100345c2
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 0x10034540
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
test edi, edi
mov eax, esi
mov edx, edi
js 0x1003475a
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 ebp, 0x7fffffff
ja 0x10034453
cmp dword [esp + 0x2c], 0
jl 0x10034627
jg 0x10034453
cmp dword [esp + 0x28], 0x7fffffff
ja 0x10034453
cmp edi, 0
jle 0x10034789
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.100ab830
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.100ab970
mov ecx, ebx
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
imul edx, ebp
imul ecx, eax
mov dword [esp + 8], esi
mov dword [esp + 0xc], edi
add ecx, edx
mul ebp
add edx, ecx
add eax, dword [esp + 0x18]
adc edx, dword [esp + 0x1c]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.100ab830
cmp dword [esp + 0x10], 0
mov esi, eax
mov edi, edx
jle 0x100347d6
mov eax, ebp
or eax, ebx
je 0x100346e7
mov eax, 0xffffffff
mov edx, 0x7fffffff
mov dword [esp + 8], ebp
sub eax, esi
mov dword [esp + 0xc], ebx
sbb edx, edi
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.100ab830
cmp dword [esp + 0x10], edx
jl 0x100346e7
jg 0x1003475a
cmp dword [esp + 0x20], eax
ja 0x1003475a
imul ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
imul eax, ebp
mov ecx, ebx
add ecx, eax
mov eax, dword [esp + 0x20]
mul ebp
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 0x100343ad
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 0x10034444
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 0x10034444
mov eax, dword [esp + 0x38]
mov edx, eax
xor eax, eax
shl edx, 0x1f
jmp 0x100343ad
mov ebp, dword [esp + 0x30]
cmp dword [esp + 0x18], ebp
ja 0x1003451f
jmp 0x1003451b
xor eax, eax
mov edx, 0x80000000
jmp 0x100343ad
jl 0x10034797
cmp esi, 0x7fffffff
ja 0x10034630
imul ebx, esi
mov edx, edi
mov eax, ebp
imul edx, ebp
mov edi, dword [esp + 0x1c]
mov ecx, ebx
add ecx, edx
mul esi
mov esi, dword [esp + 0x18]
add edx, ecx
add esi, eax
mov eax, dword [esp + 0x28]
adc edi, edx
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.100ab830
jmp 0x100345e2
jl 0x100346e7
cmp dword [esp + 0x20], 0x7ffffffe
jbe 0x100346e7
jmp 0x100346b1