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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x98
mov eax, dword [0x1016a000]
xor eax, esp
mov dword [esp + 0x94], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x10]
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0x2c]
test edi, edi
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x14]
cmove edi, dword [0x1016c398]
test byte [ebp + 0x28], 1
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x34], eax
je 0x545242
call fcn.00619c8c
sub eax, dword [0x1016c4e4]
cmp eax, 0x12c
jge 0x545242
cmp edi, dword [0x1016c4e0]
jne 0x545242
mov eax, dword [0x1016c4dc]
mov dword [0x1016c4e0], 0
test eax, eax
je 0x545d3c
push eax
call fcn.00545d61
pop edi
pop esi
mov ecx, dword [esp + 0x94]
xor ecx, esp
call fcn.0060c402
mov esp, ebp
pop ebp
ret 0x28
mov eax, dword [0x1016c4dc]
test eax, eax
je 0x545251
push eax
call fcn.00545d61
cmp dword [esi + 0x19c], 0
jne 0x545d3c
mov eax, dword [esi + 0x18c]
push esi
push eax
push eax
mov eax, dword [esi + 0x188]
push esi
push 0x284
push esi
mov dword [0x1016c4e0], edi
mov dword [0x1016c4dc], esi
mov dword [esi + 0x10c], 0x3f800000
call eax
cmp eax, 1
jne 0x54533d
movss xmm1, dword [esi + 0x10c]
movss xmm0, dword [0x10156560]
mov ecx, dword [esi + 0x50]
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jp 0x5452bb
movd xmm1, ecx
cvtdq2pd xmm1, xmm1
jmp 0x5452eb
movd xmm0, ecx
sub esp, 8
cvtdq2ps xmm0, xmm0
divss xmm0, xmm1
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
call fcn.0060fbc1
movss xmm0, dword [0x10156560]
add esp, 8
fstp qword [esp + 0x18]
movsd xmm1, qword [esp + 0x18]
mov ecx, dword [esi + 0x54]
cvttsd2si eax, xmm1
movss xmm1, dword [esi + 0x10c]
ucomiss xmm1, xmm0
mov dword [esp + 0x18], eax
movd xmm0, ecx
lahf
test ah, 0x44
jp 0x545311
cvtdq2pd xmm0, xmm0
jmp 0x545335
cvtdq2ps xmm0, xmm0
sub esp, 8
divss xmm0, xmm1
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
call fcn.0060fbc1
fstp qword [esp + 0x40]
movsd xmm0, qword [esp + 0x40]
add esp, 8
cvttsd2si eax, xmm0
mov dword [esp + 0x38], eax
lea eax, [esp + 0x74]
mov dword [esp + 0x74], 0x28
push eax
push 2
push 0x5f5e100
push 0x5f5e100
call dword [0x1014725c]
push eax
call dword [0x1014727c]
mov ecx, dword [esp + 0x90]
cmp dword [esp + 0x18], ecx
mov edx, dword [esp + 0x94]
cmovle ecx, dword [esp + 0x18]
cmp dword [esp + 0x38], edx
mov dword [esp + 0x18], ecx
cmovle edx, dword [esp + 0x38]
cmp dword [ebp + 0x28], 0
mov dword [esp + 0x38], edx
je 0x54585a
lea eax, [esp + 0x60]
xorps xmm0, xmm0
push eax
push dword [edi + 0x28]
movaps xmmword [esp + 0x68], xmm0
call dword [0x101472b8]
lea eax, [esp + 0x74]
mov dword [esp + 0x74], 0x28
push eax
push 2
push 0x5f5e100
push 0x5f5e100
call dword [0x1014725c]
push eax
call dword [0x1014727c]
mov ecx, dword [ebp + 0x28]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], eax
test cl, 4
jne 0x54554a
movss xmm1, dword [edi + 0x10c]
movss xmm0, dword [0x10156560]
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jp 0x545412
movd xmm1, dword [esp + 0x14]
cvtdq2pd xmm1, xmm1
jmp 0x545444
movd xmm0, dword [esp + 0x14]
sub esp, 8
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
call fcn.0060fbc1
movss xmm0, dword [0x10156560]
add esp, 8
fstp qword [esp + 0x28]
movsd xmm1, qword [esp + 0x28]
cvttsd2si eax, xmm1
movss xmm1, dword [edi + 0x10c]
ucomiss xmm1, xmm0
mov dword [esp + 0x14], eax
lahf
test ah, 0x44
jp 0x545469
movd xmm1, dword [esp + 0x10]
cvtdq2pd xmm1, xmm1
jmp 0x54549b
movd xmm0, dword [esp + 0x10]
sub esp, 8
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
call fcn.0060fbc1
movss xmm0, dword [0x10156560]
add esp, 8
fstp qword [esp + 0x28]
movsd xmm1, qword [esp + 0x28]
cvttsd2si eax, xmm1
movss xmm1, dword [edi + 0x10c]
ucomiss xmm1, xmm0
mov dword [esp + 0x10], eax
lahf
test ah, 0x44
jp 0x5454c0
movd xmm1, dword [esp + 0x18]
cvtdq2pd xmm1, xmm1
jmp 0x5454f2
movd xmm0, dword [esp + 0x18]
sub esp, 8
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
call fcn.0060fbc1
movss xmm0, dword [0x10156560]
add esp, 8
fstp qword [esp + 0x18]
movsd xmm1, qword [esp + 0x18]
cvttsd2si edx, xmm1
movss xmm1, dword [edi + 0x10c]
ucomiss xmm1, xmm0
mov dword [esp + 0x28], edx
movd xmm0, dword [esp + 0x38]
lahf
test ah, 0x44
jp 0x545517
cvtdq2pd xmm0, xmm0
jmp 0x54553f
cvtdq2ps xmm0, xmm0
sub esp, 8
mulss xmm0, xmm1
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
call fcn.0060fbc1
mov edx, dword [esp + 0x30]
add esp, 8
fstp qword [esp + 0x18]
movsd xmm0, qword [esp + 0x18]
mov ecx, dword [ebp + 0x28]
cvttsd2si eax, xmm0
mov dword [esp + 0x24], eax
test ecx, 0x4000
je 0x545559
add edx, dword [edi + 0x50]
mov dword [esp + 0x28], edx
test ecx, 0x8000
je 0x545568
add eax, dword [edi + 0x54]
mov dword [esp + 0x24], eax
mov eax, dword [0x101472a4]
test cl, 0x10
je 0x5455cf
lea ecx, [esp + 0x18]
xorps xmm0, xmm0
push ecx
movlpd qword [esp + 0x1c], xmm0
call eax
test byte [ebp + 0x28], 8
je 0x5455bb
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
lea eax, [ecx + edx]
add eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x90]
mov eax, dword [0x101472a4]
jle 0x5455b1
mov ecx, dword [esp + 0x18]
sub ecx, edx
mov dword [esp + 0x14], ecx
jmp 0x5455cc
add ecx, dword [esp + 0x18]
mov dword [esp + 0x14], ecx
jmp 0x5455cc
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x18]
mov dword [esp + 0x14], eax
mov eax, dword [0x101472a4]
mov ecx, dword [ebp + 0x28]
test cl, 0x20
je 0x54561f
lea ecx, [esp + 0x18]
xorps xmm0, xmm0
push ecx
movlpd qword [esp + 0x1c], xmm0
call eax
test byte [ebp + 0x28], 8
mov ecx, dword [esp + 0x10]
je 0x545615
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x24]
add eax, ecx
add eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x94]
jle 0x545615
mov eax, dword [esp + 0x1c]
sub eax, ecx
sub eax, edx
mov ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x545623
add ecx, dword [esp + 0x1c]
mov dword [esp + 0x10], ecx
jmp 0x545623
mov ecx, dword [esp + 0x10]
mov eax, dword [ebp + 0x28]
mov edx, dword [esp + 0x14]
test al, 0x40
je 0x54563e
mov eax, dword [edi + 0x74]
add eax, dword [esp + 0x60]
add edx, eax
mov eax, dword [ebp + 0x28]
mov dword [esp + 0x14], edx
test al, al
jns 0x545656
mov eax, dword [edi + 0x78]
add eax, dword [esp + 0x64]
mov edx, dword [esp + 0x14]
add ecx, eax
mov eax, dword [ebp + 0x28]
mov dword [esp + 0x10], ecx
test eax, 0x100
je 0x545678
mov eax, dword [edi + 0x74]
sub eax, dword [esp + 0x28]
add eax, dword [edi + 0x50]
add eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x10]
add edx, eax
mov eax, dword [ebp + 0x28]
mov dword [esp + 0x14], edx
test eax, 0x200
je 0x54569a
mov eax, dword [edi + 0x54]
sub eax, dword [esp + 0x24]
add eax, dword [edi + 0x78]
add eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x10]
add ecx, eax
mov eax, dword [ebp + 0x28]
mov dword [esp + 0x10], ecx
test eax, 0x400
je 0x545709
mov ecx, dword [edi + 0x74]
sub ecx, dword [esp + 0x28]
add ecx, edx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x10]
test al, 8
je 0x5456fb
mov eax, dword [esp + 0x60]
add eax, dword [esp + 0x18]
mov dword [esp + 0x38], eax
jns 0x5456f3
mov eax, dword [edi + 0x50]
add eax, dword [edi + 0x74]
add edx, eax
mov eax, dword [esp + 0x28]
add eax, edx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x60]
add eax, edx
cmp eax, dword [esp + 0x90]
jge 0x5456ef
add edx, dword [esp + 0x18]
mov dword [esp + 0x14], edx
jmp 0x54570d
mov eax, dword [esp + 0x38]
mov edx, eax
mov dword [esp + 0x14], edx
jmp 0x54570d
mov edx, dword [esp + 0x18]
add edx, dword [esp + 0x60]
mov dword [esp + 0x14], edx
jmp 0x54570d
mov edx, dword [esp + 0x14]
mov eax, dword [ebp + 0x28]
test eax, 0x800
je 0x545781
mov edx, ecx
sub edx, dword [esp + 0x24]
add edx, dword [edi + 0x78]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x14]
test al, 8
je 0x545773
mov eax, dword [esp + 0x64]
add eax, dword [esp + 0x18]
mov dword [esp + 0x38], eax
jns 0x54576b
mov eax, dword [edi + 0x54]
add eax, ecx
mov ecx, dword [edi + 0x78]
add ecx, eax
mov eax, dword [esp + 0x24]
add eax, ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x64]
add eax, ecx
cmp eax, dword [esp + 0x94]
jge 0x545767
add ecx, dword [esp + 0x18]
mov dword [esp + 0x10], ecx
jmp 0x545785
mov eax, dword [esp + 0x38]
mov ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x545785
mov ecx, dword [esp + 0x18]
add ecx, dword [esp + 0x64]
mov dword [esp + 0x10], ecx
jmp 0x545785
mov ecx, dword [esp + 0x10]
mov eax, dword [ebp + 0x28]
test eax, 0x1000
je 0x5457df
test al, 8
je 0x5457cf
mov eax, dword [edi + 0x74]
sub eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x10]
add eax, edx
add eax, dword [esp + 0x60]
mov dword [esp + 0x18], eax
test eax, eax
jle 0x5457cf
mov eax, dword [edi + 0x50]
add eax, dword [edi + 0x74]
add eax, edx
add eax, dword [esp + 0x28]
add eax, dword [esp + 0x60]
cmp eax, dword [esp + 0x90]
jle 0x5457cf
mov eax, dword [esp + 0x18]
mov dword [esp + 0x14], eax
jmp 0x5457df
mov eax, dword [edi + 0x50]
add eax, dword [edi + 0x74]
add eax, dword [esp + 0x60]
add edx, eax
mov dword [esp + 0x14], edx
mov edx, dword [ebp + 0x28]
test edx, 0x2000
je 0x54596a
mov eax, dword [edi + 0x78]
test dl, 8
je 0x545845
sub eax, dword [esp + 0x24]
mov edx, dword [esp + 0x24]
add eax, ecx
add eax, dword [esp + 0x64]
mov dword [esp + 0x18], eax
test eax, eax
jle 0x545830
mov eax, dword [edi + 0x78]
add eax, ecx
add eax, edx
add eax, dword [esp + 0x64]
add eax, dword [edi + 0x54]
cmp eax, dword [esp + 0x94]
jle 0x545830
mov eax, dword [esp + 0x18]
mov dword [esp + 0x10], eax
jmp 0x54596a
mov eax, dword [esp + 0x64]
add eax, dword [edi + 0x78]
add eax, dword [edi + 0x54]
add ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x54596a
mov eax, dword [edi + 0x54]
add eax, dword [edi + 0x78]
add eax, dword [esp + 0x64]
add ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x54596a
cmp dword [esp + 0x14], 0
jl 0x545887
cmp dword [esp + 0x10], 0
jl 0x545887
movss xmm1, dword [0x10156560]
test edi, edi
je 0x5458c0
movss xmm0, dword [edi + 0x10c]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x5458c0
jmp 0x5458d0
lea eax, [esp + 0x28]
push eax
call dword [0x101472a4]
mov edx, dword [esp + 0x14]
test edx, edx
mov eax, dword [esp + 0x10]
cmovs edx, dword [esp + 0x28]
test eax, eax
movss xmm1, dword [0x10156560]
cmovs eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], edx
test edi, edi
je 0x54596a
movss xmm2, dword [edi + 0x10c]
ucomiss xmm2, xmm1
movd xmm0, ecx
lahf
test ah, 0x44
jp 0x5458eb
cvtdq2pd xmm0, xmm0
jmp 0x54591b
cvtdq2ps xmm0, xmm0
sub esp, 8
mulss xmm0, xmm2
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
call fcn.0060fbc1
movss xmm1, dword [0x10156560]
add esp, 8
mov edx, dword [esp + 0x38]
fstp qword [esp + 0x18]
movsd xmm0, qword [esp + 0x18]
movss xmm2, dword [edi + 0x10c]
cvttsd2si eax, xmm0
ucomiss xmm2, xmm1
mov dword [esp + 0x28], eax
movd xmm0, edx
lahf
test ah, 0x44
jp 0x54593e
cvtdq2pd xmm0, xmm0
jmp 0x545962
cvtdq2ps xmm0, xmm0
sub esp, 8
mulss xmm0, xmm2
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
call fcn.0060fbc1
fstp qword [esp + 0x20]
movsd xmm0, qword [esp + 0x20]
add esp, 8
cvttsd2si eax, xmm0
mov dword [esp + 0x24], eax
cmp dword [0x1016ce38], 0
jne 0x545a10
push 0
call dword [0x101471b8]
push 0x1014e870
push eax
mov dword [0x1016ce38], eax
mov dword [esp + 0x7c], 3
mov dword [esp + 0x80], 0x100592e0
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], eax
call dword [0x10147298]
push 0x7f00
push 0
mov dword [esp + 0x90], eax
call dword [0x101472f8]
mov dword [esp + 0x8c], eax
lea eax, [esp + 0x74]
push eax
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0x1014e880
call dword [0x10147290]
test ax, ax
je 0x545d3c
mov eax, dword [esi + 0x18c]
push esi
push eax
push eax
mov eax, dword [esi + 0x188]
push esi
push 0x286
push esi
call eax
cmp eax, 1
je 0x545d3c
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x545a48
test edi, edi
je 0x545a53
mov eax, dword [edi + 0x28]
mov dword [esp + 0x34], eax
test eax, eax
je 0x545a53
push eax
call dword [0x101472a0]
mov eax, dword [esp + 0x34]
push 0
push dword [0x1016ce38]
push 0
push eax
push dword [esp + 0x34]
push dword [esp + 0x3c]
push dword [esp + 0x28]
push dword [esp + 0x30]
push 0xc0400000
push 0x1014e880
push 0x1014e880
push 0x88
call dword [0x10147288]
mov dword [esi + 0x19c], eax
test eax, eax
je 0x545d3c
push 0x90
push dword [esp + 0x28]
push dword [esp + 0x30]
push dword [esp + 0x1c]
push dword [esp + 0x24]
push 0xffffffffffffffff
push eax
call dword [0x101472c8]
push 0
push 0x384
push 0
push dword [esi + 0x184]
mov dword [esi + 0x1d8], 0xffffffff
push 0
push 0x384
push 0x10059300
push 0x100594b0
push dword [esi + 0x180]
mov dword [esi + 0x1dc], 0xffffffff
push 0
push 1
push 0
push 0
push 0
push 0
push dword [esi + 0x19c]
mov dword [esi + 0x1d4], 0xffffffff
push 0
push esi
mov dword [esi + 0x40], 0x10059300
call fcn.00533d61
test byte [ebp + 0x28], 2
jne 0x545b39
test edi, edi
je 0x545b39
movss xmm0, dword [edi + 0x10c]
mulss xmm0, dword [0x10156754]
cvttss2si eax, xmm0
jmp 0x545b3e
mov eax, 0x64
push eax
push esi
call fcn.005371a1
push 0x50
push dword [esp + 0x28]
push dword [esp + 0x30]
push dword [esp + 0x1c]
push dword [esp + 0x24]
push 0xffffffffffffffff
push dword [esi + 0x19c]
call dword [0x101472c8]
mov eax, dword [esi + 0x18c]
push esi
push eax
push eax
mov eax, dword [esi + 0x188]
push esi
push 0x287
push esi
call eax
cmp eax, 1
je 0x545d3c
xorps xmm0, xmm0
mov dword [esi + 0x1e0], 1
movaps xmmword [esp + 0x40], xmm0
movq qword [esp + 0x50], xmm0
mov dword [esp + 0x58], 0
call dword [0x10147294]
push 0
mov edi, eax
push 0x1014e898
mov dword [esp + 0x3c], edi
call dword [0x1014729c]
cmp eax, edi
jne 0x545bd9
push dword [esi + 0x19c]
call dword [0x101472a0]
call dword [0x10147294]
mov dword [esp + 0x34], eax
cmp dword [esi + 0x19c], 0
je 0x545d0e
mov edi, dword [0x1014728c]
nop dword [eax + eax]
push 0
push 0
push 0
push 0
lea eax, [esp + 0x50]
push eax
call edi
test eax, eax
je 0x545ce5
mov ecx, dword [esp + 0x44]
cmp ecx, 0x12
je 0x545d0e
cmp ecx, 0x201
je 0x545c4a
cmp ecx, 0x204
je 0x545c4a
cmp ecx, 0xa1
je 0x545c4a
cmp ecx, 0xa4
je 0x545c4a
cmp ecx, 0x7b
je 0x545c4a
cmp ecx, 0x206
je 0x545c4a
cmp ecx, 0x203
jne 0x545c60
mov eax, dword [esi + 0x19c]
cmp eax, dword [esp + 0x40]
je 0x545c60
push esi
call fcn.00545d61
mov ecx, dword [esp + 0x44]
cmp ecx, 0x20a
jne 0x545ca4
mov eax, dword [esi + 0x19c]
cmp eax, dword [esp + 0x40]
je 0x545ca4
mov edx, dword [esi + 0x44]
cmp edx, 0x1004f8a0
je 0x545c93
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
push ecx
push eax
push ecx
push eax
push 0x29e
push esi
call edx
push 1
push 0
push 0
push 0
lea eax, [esp + 0x50]
push eax
call edi
jmp 0x545cf9
call dword [0x10147294]
cmp eax, dword [esi + 0x19c]
je 0x545cbe
cmp dword [esp + 0x34], eax
je 0x545cbe
push esi
call fcn.00545d61
push 1
push 0
push 0
push 0
lea eax, [esp + 0x50]
push eax
call edi
lea eax, [esp + 0x40]
push eax
call dword [0x101472f4]
lea eax, [esp + 0x40]
push eax
call dword [0x101472e0]
jmp 0x545cf9
call dword [0x10147294]
cmp eax, dword [esi + 0x19c]
je 0x545cf9
cmp dword [esp + 0x34], eax
jne 0x545d08
cmp dword [esi + 0x19c], 0
jne 0x545bf1
jmp 0x545d0e
push esi
call fcn.00545d61
push esi
call fcn.00545d61
mov dword [0x1016c4dc], 0
mov dword [esi + 0x19c], 0
mov dword [esi + 0x1e0], 0
call fcn.00619c8c
mov dword [0x1016c4e4], eax
mov ecx, dword [esp + 0x9c]
pop edi
pop esi
xor ecx, esp
call fcn.0060c402
mov esp, ebp
pop ebp
ret 0x28