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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x90
mov edx, dword [ebp + 0xc]
mov eax, dword [0x4e6418]
xor eax, ebp
mov dword [esp + 0x88], eax
xorpd xmm0, xmm0
test edx, edx
je 0x452e2a
mov ecx, dword [ebp + 0x10]
lea edi, [ecx + edx]
movsd xmm1, qword [0x4d7ca0]
cmp edi, 0x135
jg 0x453442
cmp edi, 0xfffffebd
jl 0x452e2a
cmp edx, 0xf
jg 0x452ffa
cmp ecx, 0xffffffea
jae 0x452e52
cmp ecx, 0x16
ja 0x452fdc
test edx, edx
jle 0x452e1e
xor eax, eax
mov esi, 1
xor ecx, ecx
mov edx, dword [ebp + 8]
movsx ebx, byte [edx + esi - 1]
mov edi, ebx
mov edx, 0xa
mul edx
sar edi, 0x1f
add eax, ebx
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*2]
adc ecx, edi
add eax, 0xffffffd0
adc ecx, 0xffffffff
cmp esi, dword [ebp + 0xc]
jge 0x452df6
inc esi
mov edx, 0x99999999
cmp eax, edx
mov edx, ecx
mov edi, 0x19999999
sbb edx, edi
jb 0x452dba
movd xmm1, eax
movd xmm0, ecx
punpckldq xmm1, xmm0
punpckldq xmm1, xmmword [0x4d44d0]
subpd xmm1, xmmword [0x4d44e0]
movapd xmm0, xmm1
unpckhpd xmm0, xmm1
addsd xmm0, xmm1
mov eax, dword [ebp + 0x10]
mulsd xmm0, qword [eax*8 + 0x4dd920]
movsd qword [esp + 0x58], xmm0
fld qword [esp + 0x58]
fstp xword [esp + 0x20]
mov ecx, dword [esp + 0x88]
xor ecx, ebp
call fcn.0045901d
fld xword [esp + 0x20]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
neg ecx
mov dword [esp + 0x20], ecx
test edx, edx
jle 0x452ebf
xor eax, eax
xor ecx, ecx
inc ecx
xor ebx, ebx
mov edx, dword [ebp + 8]
movsx esi, byte [edx + ecx - 1]
mov edi, esi
mov edx, 0xa
mul edx
sar edi, 0x1f
add eax, esi
lea esi, [ebx + ebx*4]
lea ebx, [edx + esi*2]
adc ebx, edi
add eax, 0xffffffd0
adc ebx, 0xffffffff
cmp ecx, dword [ebp + 0xc]
jge 0x452e9f
inc ecx
mov edx, 0x99999999
cmp eax, edx
mov edx, ebx
mov esi, 0x19999999
sbb edx, esi
jb 0x452e63
movd xmm0, eax
movd xmm1, ebx
punpckldq xmm0, xmm1
punpckldq xmm0, xmmword [0x4d44d0]
subpd xmm0, xmmword [0x4d44e0]
haddpd xmm0, xmm0
mov eax, dword [esp + 0x20]
divsd xmm0, qword [eax*8 + 0x4dd920]
jmp 0x452e2a
mov dword [esp + 0x20], eax
test edx, edx
jle 0x452f40
xor eax, eax
xor esi, esi
inc esi
xor ebx, ebx
mov edx, dword [ebp + 8]
movsx edi, byte [edx + esi - 1]
mov dword [esp + 0xc], edi
mov edx, 0xa
mul edx
sar edi, 0x1f
add eax, dword [esp + 0xc]
lea ebx, [ebx + ebx*4]
lea ebx, [edx + ebx*2]
adc ebx, edi
add eax, 0xffffffd0
adc ebx, 0xffffffff
cmp esi, dword [ebp + 0xc]
jge 0x452f20
inc esi
mov edx, 0x99999999
cmp eax, edx
mov edx, ebx
mov edi, 0x19999999
sbb edx, edi
jb 0x452ee0
movd xmm0, eax
movd xmm1, ebx
punpckldq xmm0, xmm1
punpckldq xmm0, xmmword [0x4d44d0]
subpd xmm0, xmmword [0x4d44e0]
haddpd xmm0, xmm0
mov eax, dword [esp + 0x20]
mulsd xmm0, qword [eax*8 + 0x4dd920]
mulsd xmm0, qword [ecx*8 + 0x4dd920]
jmp 0x452e2a
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
jmp 0x4531c7
xor ecx, ecx
add esi, 0x61698000
setb cl
mov dword [esp + 0x14], 0xa
jmp 0x453143
xor ecx, ecx
add esi, 0x2f698000
setb cl
mov dword [esp + 0x14], 7
jmp 0x453143
mov esi, edx
jmp 0x453143
xor ecx, ecx
add esi, 0x3a98000
setb cl
mov dword [esp + 0x14], 0xe
jmp 0x453143
xor ecx, ecx
add esi, 0x2ab98000
setb cl
mov dword [esp + 0x14], 0x11
jmp 0x453143
mov dword [esp + 0x14], 0x18
jmp 0x453143
test ecx, ecx
js 0x452ff2
mov eax, 0xf
sub eax, edx
sub ecx, eax
cmp ecx, 0x16
jle 0x452ed1
test edx, edx
jle 0x453462
xor edx, edx
xor ecx, ecx
xor ebx, ebx
mov eax, dword [ebp + 8]
movsx esi, byte [eax + ebx]
mov dword [esp + 0x20], esi
inc ebx
mov eax, edx
mov edx, 0xa
mul edx
mov dword [esp + 0xc], edx
sar esi, 0x1f
mov edx, eax
add edx, dword [esp + 0x20]
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0xc]
lea ecx, [ecx + eax*2]
adc ecx, esi
add edx, 0xffffffd0
adc ecx, 0xffffffff
cmp ebx, dword [ebp + 0xc]
jge 0x45304b
mov eax, 0x99999999
cmp edx, eax
mov eax, ecx
mov esi, 0x19999999
sbb eax, esi
jb 0x453000
mov esi, edx
xor edx, edx
mov eax, ebx
mov ebx, dword [ebp + 0xc]
cmp eax, ebx
jne 0x4534e1
mov edi, dword [ebp + 0x10]
xor eax, eax
mov dword [esp + 0xc], eax
test ecx, 0xffc00000
jne 0x453452
xor edx, edx
mov eax, ecx
mov ebx, 0x1000
shld eax, esi, 0xa
shl esi, 0xa
add edx, 0xfffffff6
cmp ecx, ebx
mov ecx, eax
jb 0x45307a
test eax, eax
mov ecx, eax
mov eax, esi
js 0x453459
mov ebx, dword [esp + 0xc]
shld ecx, eax, 1
add eax, eax
dec edx
test ecx, ecx
jns 0x45309a
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], edx
mov ecx, edx
neg cl
xor edx, edx
shld edx, ebx, cl
shl ebx, cl
xor eax, eax
test cl, 0x20
cmovne edx, ebx
mov dword [esp + 0x20], edx
cmovne ebx, eax
cmp edi, 0xfffffea4
jl 0x452e2a
movapd xmm0, xmmword [0x4d7b50]
lea eax, [esp + 0x78]
movupd xmmword [eax], xmm0
lea esi, [esp + 0x74]
mov dword [esi], 0xffffffff
push esi
push eax
push edi
call fcn.0043ca60
add esp, 0xc
sub edi, dword [esi]
mov dword [esp + 0xc], ebx
je 0x452f5b
lea eax, [edi - 1]
cmp eax, 6
ja case.default.0x453129
xor ecx, ecx
mov esi, 0x98968000
lea edx, [esi + 0x7698000]
mov dword [esp + 0x14], 4
jmp dword [eax*4 + 0x4dd9d8]
xor ecx, ecx
add esi, 0x5b8d8000
setb cl
mov dword [esp + 0x14], 0x14
mov eax, ecx
mov edx, dword [esp + 0x10]
imul eax, edx
mov dword [esp + 0x38], eax
mov eax, esi
mul edx
mov dword [esp + 0x3c], eax
mov ebx, dword [esp + 0x1c]
imul ecx, ebx
mov dword [esp + 0x10], edx
mov eax, esi
mul ebx
add ecx, edx
mov edx, dword [esp + 0x14]
add dword [esp + 0x18], edx
and eax, 0x80000000
add ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x10]
adc edx, dword [esp + 0x38]
add eax, 0x80000000
adc ecx, 0
mov dword [esp + 0x14], ecx
adc edx, 0
mov dword [esp + 0x10], edx
mov eax, 0x13
sub eax, dword [ebp + 0xc]
mov edx, dword [esp + 0xc]
mov ebx, edx
add ebx, 4
mov esi, dword [esp + 0x20]
mov ecx, esi
adc ecx, 0
cmp eax, edi
mov edi, dword [esp + 0x10]
cmovl esi, ecx
mov dword [esp + 0x20], esi
cmovl edx, ebx
mov dword [esp + 0xc], edx
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x7c]
mov eax, ecx
mul edi
mov dword [esp + 0x10], edx
mov ebx, eax
mov eax, ecx
mul esi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], edx
mov ecx, dword [esp + 0x78]
mov eax, ecx
mul edi
mov edi, edx
mov dword [esp + 0x38], eax
mov eax, ecx
mul esi
mov esi, dword [esp + 0x10]
xor ecx, ecx
add edx, dword [esp + 0x38]
setb cl
add edx, dword [esp + 0x1c]
adc ecx, 0
add edi, ebx
adc esi, 0
add edi, dword [esp + 0x14]
adc esi, 0
add edx, 0x80000000
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x18]
lea eax, [edx + eax + 0x40]
mov dword [esp + 0x18], eax
adc edi, ecx
adc esi, 0
xor edx, edx
mov eax, dword [esp + 0xc]
mov ecx, eax
mov ebx, dword [esp + 0x20]
or ecx, ebx
sete dl
xor edx, 9
add edx, eax
mov dword [esp + 0x40], 0x400000
adc ebx, 0
mov dword [esp + 0x20], ebx
cmp esi, 0x400000
jb 0x45347f
mov ecx, dword [esp + 0x18]
mov eax, ecx
mov dword [esp + 0xc], esi
test esi, esi
js 0x45344b
mov esi, eax
mov eax, dword [esp + 0xc]
shld eax, edi, 1
add edi, edi
dec esi
mov dword [esp + 0xc], eax
test eax, eax
jns 0x453276
sub ecx, esi
mov eax, dword [esp + 0x20]
shld eax, edx, cl
shl edx, cl
xor ebx, ebx
test cl, 0x20
mov ecx, eax
cmovne ecx, edx
cmovne edx, ebx
mov dword [esp + 0x10], edx
lea eax, [esi + 0x472]
cmp esi, 0xfffffb8f
cmovl eax, ebx
mov dword [esp + 0x14], esi
cmp esi, 0xfffffbc3
mov edx, 0x35
cmovl edx, eax
cmp edx, 3
jle 0x453533
mov dword [esp + 0x20], ecx
mov dword [esp + 0x18], edi
mov ebx, 0x40
sub ebx, edx
mov edx, dword [esp + 0xc]
mov edi, edx
mov esi, edx
mov ecx, ebx
shr esi, cl
test bl, 0x20
mov eax, esi
mov ecx, 0
cmovne eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x18]
mov ecx, ebx
shrd eax, edx, cl
test bl, 0x20
cmovne eax, esi
mov dword [esp + 0x38], eax
xor edx, edx
dec edx
shl edx, cl
test bl, 0x20
mov esi, edx
mov eax, 0
cmovne esi, eax
mov eax, 0xffffffff
cmove edx, eax
not esi
and esi, dword [esp + 0x18]
not edx
and edx, edi
dec cl
mov eax, 8
xor edi, edi
shld edi, eax, cl
shld edx, esi, 3
shl esi, 3
shl eax, cl
test cl, 0x20
cmovne edi, eax
mov ecx, 0
cmovne eax, ecx
mov ecx, dword [esp + 0x14]
add ecx, ebx
mov dword [esp + 0x1c], eax
add eax, dword [esp + 0x10]
mov dword [esp + 0x14], edi
adc edi, dword [esp + 0x20]
mov dword [esp + 0x18], esi
mov dword [esp + 0x44], eax
cmp esi, eax
mov esi, dword [esp + 0xc]
mov eax, edx
mov dword [esp + 0x3c], edi
sbb eax, edi
setae al
movzx eax, al
add eax, dword [esp + 0x38]
adc esi, 0
cmp esi, 0x200000
jae 0x4534a7
mov edi, esi
cmp ecx, 0x3cb
jg 0x453472
mov dword [esp + 0xc], edx
cmp ecx, 0xfffffbce
jl 0x453582
xor esi, esi
dec esi
add esi, 1
mov ebx, 0
adc ebx, 0xfffff
and ebx, edi
sete dl
cmp ecx, 0xfffffbce
je 0x4533de
or esi, ebx
je 0x453505
mov esi, dword [esp + 0x20]
cmp ecx, 0xfffffbce
sete dh
shl ecx, 0x14
add ecx, 0x43300000
test dh, dl
mov edx, 0
cmovne ecx, edx
xor edx, edx
dec edx
and eax, edx
mov edx, 0xfffff
and edi, edx
or edi, ecx
movd xmm0, edi
movd xmm1, eax
mov eax, dword [esp + 0x1c]
sub eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
sbb edx, esi
mov ecx, dword [esp + 0x18]
cmp eax, ecx
mov eax, dword [esp + 0xc]
sbb edx, eax
punpckldq xmm1, xmm0
jae 0x453442
cmp ecx, dword [esp + 0x44]
sbb eax, dword [esp + 0x3c]
jb 0x4534c4
movapd xmm0, xmm1
jmp 0x452e2a
mov esi, eax
jmp 0x453289
mov eax, ecx
jmp 0x45308a
mov ebx, dword [esp + 0xc]
jmp 0x4530a5
xor ebx, ebx
xor edx, edx
xor ecx, ecx
jmp 0x45304b
call fcn.004b6420
movsd xmm0, qword [0x4d7ca0]
jmp 0x452e2a
mov ecx, dword [esp + 0x18]
mov eax, ecx
mov dword [esp + 0x10], esi
shld esi, edi, 0xa
shl edi, 0xa
add eax, 0xfffffff6
test dword [esp + 0x10], 0xfffff000
mov dword [esp + 0x10], esi
jne 0x453268
jmp 0x453489
dec dword [esp + 0x40]
mov ebx, esi
mov edi, esi
shrd eax, ebx, 1
shr edi, 1
inc ecx
cmp dword [esp + 0x40], ebx
mov ebx, edi
jae 0x45339c
jmp 0x4534af
movsd xmm0, qword [0x4d7ca0]
movdqa xmmword [esp + 0x20], xmm1
ucomisd xmm1, xmm0
jae 0x452e2a
jmp 0x4535c0
mov ebx, eax
xor eax, eax
mov edx, dword [ebp + 8]
cmp byte [edx + ebx], 0x35
mov edx, 0
setge al
add esi, eax
adc ecx, 0
sub edi, ebx
mov eax, 4
jmp 0x453061
mov esi, edi
shld edi, eax, 1
add eax, eax
and esi, 0x80000
sete dl
cmp ecx, 0xfffffbd0
lea ecx, [ecx - 1]
jl 0x4533de
test esi, esi
mov esi, dword [esp + 0x20]
jne 0x4533e2
jmp 0x453505
mov esi, ecx
mov ecx, 4
sub ecx, edx
mov edx, dword [esp + 0xc]
shrd edi, edx, cl
shr edx, cl
mov eax, dword [esp + 0x10]
shrd eax, esi, cl
add dword [esp + 0x14], ecx
shr esi, cl
test cl, 0x20
cmovne edi, edx
mov dword [esp + 0x18], edi
mov ecx, 0
cmovne edx, ecx
cmovne eax, esi
cmovne esi, ecx
add eax, 9
mov dword [esp + 0x10], eax
adc esi, 0
mov dword [esp + 0x20], esi
mov ebx, 0x3c
jmp 0x4532e2
mov ecx, dword [esp + 0x1c]
sub ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
sbb eax, dword [esp + 0x20]
cmp ecx, dword [esp + 0x18]
sbb eax, dword [esp + 0xc]
xorpd xmm0, xmm0
movapd xmmword [esp + 0x20], xmm0
jae 0x452e2a
mov eax, dword [esp + 0x44]
cmp dword [esp + 0x18], eax
mov eax, dword [esp + 0x3c]
sbb dword [esp + 0xc], eax
jae 0x452e2a
movaps xmm0, xmmword [esp + 0x20]
movsd qword [esp + 0x50], xmm0
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x54]
mov eax, edi
shr eax, 0x14
and eax, 0x7ff
add eax, 0xfffffbcc
mov edx, edi
shld edx, ecx, 1
mov dword [esp + 0xc], ecx
add ecx, ecx
and ecx, 0xfffffffe
mov dword [esp + 0x10], ecx
and edx, 0x1fffff
mov esi, 0xfffffffe
add esi, 2
mov ebx, 0x1fffff
adc ebx, 0
or ebx, edx
or esi, ecx
test edi, 0x7ff00000
mov ecx, 0xfffffbcd
cmovne ecx, eax
cmove ebx, edx
cmove esi, dword [esp + 0x10]
mov dword [esp + 0x64], ebx
or esi, 1
mov dword [esp + 0x60], esi
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], 0xffffffff
sub esp, 0x14
movupd xmm0, xmmword [esp + 0x74]
movupd xmmword [esp + 4], xmm0
mov eax, dword [ebp + 0x10]
mov dword [esp], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
call fcn.004bcf30
add esp, 0x14
test eax, eax
js 0x4536b5
je 0x4536c9
lea eax, [edi - 0x80000000]
or eax, dword [esp + 0xc]
je 0x4536c0
mov eax, edi
xor eax, 0x7ff00000
or eax, dword [esp + 0xc]
movsd xmm0, qword [0x4d7ca0]
je 0x452e2a
test edi, edi
js 0x45369a
mov eax, dword [esp + 0xc]
add eax, 1
adc edi, 0
jmp 0x4536a4
mov eax, dword [esp + 0xc]
add eax, 0xffffffff
adc edi, 0xffffffff
movd xmm1, edi
movd xmm0, eax
punpckldq xmm0, xmm1
jmp 0x452e2a
movapd xmm0, xmmword [esp + 0x20]
jmp 0x452e2a
xorpd xmm0, xmm0
jmp 0x452e2a
test byte [esp + 0xc], 1
je 0x4536b5
mov eax, edi
xor eax, 0x7ff00000
or eax, dword [esp + 0xc]
movsd xmm0, qword [0x4d7ca0]
je 0x452e2a
movapd xmm0, xmmword [esp + 0x20]
movsd qword [esp + 0x48], xmm0
test edi, edi
jns 0x45368a
mov eax, 0x7fffffff
and eax, dword [esp + 0x4c]
or eax, dword [esp + 0x48]
xorpd xmm0, xmm0
je 0x452e2a
jmp 0x45368a