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

Disassembly:
sub esp, 0x54
xor ecx, ecx
xor eax, eax
inc ecx
push ebx
push ebp
push esi
push edi
mov edi, dword [0x5eb148]
test byte [edi + 8], 2
mov byte [edi + 0x9b], al
je 0x451f76
mov bh, cl
test byte [edi + 0xc], cl
jne 0x451f78
mov bh, al
movaps xmm0, xmmword [0x488c80]
mov byte [esp + 0x15], bh
movups xmmword [esp + 0x40], xmm0
movaps xmm0, xmmword [0x488c90]
movups xmmword [esp + 0x50], xmm0
test bh, bh
je 0x451fc1
lea esi, [esp + 0x40]
mov ecx, dword [esi]
xor edx, edx
call fcn.0044dc6d
test al, al
je 0x451fb3
mov dword [edi + 0x47f8], 3
add esi, 4
lea eax, [esp + 0x60]
cmp esi, eax
jne 0x451f9c
xor ecx, ecx
inc ecx
mov bl, byte [edi + 8]
movaps xmm0, xmmword [0x488c70]
and bl, cl
mov byte [esp + 0x16], bl
movups xmmword [esp + 0x24], xmm0
mov dword [esp + 0x34], 0x201
mov dword [esp + 0x38], 0x203
mov dword [esp + 0x3c], 0x204
je 0x452016
lea esi, [esp + 0x24]
mov ecx, dword [esi]
xor edx, edx
call fcn.0044dc6d
test al, al
je 0x45200b
mov dword [edi + 0x47f8], 2
add esi, 4
lea eax, [esp + 0x40]
cmp esi, eax
jne 0x451ff4
xor edx, edx
mov dword [edi + 0x47e4], edx
cmp dword [edi + 0x480c], edx
je 0x45202d
call fcn.004525bd
xor edx, edx
cmp byte [edi + 0x4834], 0
mov word [edi + 0x4805], 0
mov dword [edi + 0x480c], edx
je 0x45204c
call fcn.00452efb
xor edx, edx
cmp byte [edi + 0x4801], 0
mov al, dl
mov dword [edi + 0x4878], edx
mov word [edi + 0x4834], 0
mov dword [esp + 0x18], eax
je 0x452098
cmp byte [edi + 0x4800], 0
je 0x452098
cmp byte [edi + 0x4802], 0
jne 0x452098
cmp byte [edi + 0x4803], 0
je 0x452098
cmp dword [edi + 0x47c8], edx
push 1
movzx eax, al
pop ecx
cmovne eax, ecx
mov dword [esp + 0x18], eax
mov ecx, dword [edi + 0x47c8]
mov byte [edi + 0x4801], dl
test ecx, ecx
je 0x4520d3
mov eax, ecx
cmp dword [eax + 0x300], eax
je 0x4520c9
test dword [eax + 0xc], 0x14000000
jne 0x4520c5
mov eax, dword [eax + 0x2f8]
test eax, eax
jne 0x4520aa
test eax, eax
je 0x4520d3
cmp eax, ecx
je 0x4520d3
mov dword [eax + 0x310], ecx
mov eax, dword [edi + 0x47c8]
test eax, eax
je 0x4520f3
cmp dword [eax + 0x310], edx
je 0x4520f3
cmp dword [edi + 0x47fc], edx
jne 0x4520f3
mov dword [eax + 0x310], edx
call fcn.0045396b
test bl, bl
jne 0x452100
test bh, bh
je 0x45211c
mov eax, dword [edi + 0x47c8]
test eax, eax
je 0x45211c
test dword [eax + 0xc], 0x40000
jne 0x45211c
xor edx, edx
inc edx
xor ecx, ecx
mov al, dl
jmp 0x452123
xor ecx, ecx
xor edx, edx
mov al, cl
inc edx
mov byte [edi + 0x9d], al
test al, al
je 0x45213e
cmp dword [edi + 0x47cc], ecx
je 0x45213e
cmp byte [edi + 0x4802], 0
je 0x452148
mov al, cl
cmp dword [edi + 0x4934], ecx
je 0x45214a
mov al, dl
mov byte [edi + 0x9e], al
call fcn.00453275
xor ecx, ecx
mov dword [edi + 0x47dc], ecx
mov dword [edi + 0x47d8], ecx
mov dword [edi + 0x47d4], ecx
mov dword [edi + 0x47e0], ecx
cmp dword [edi + 0x47cc], ecx
je 0x452314
cmp byte [edi + 0x4802], cl
jne 0x452314
cmp dword [edi + 0x4934], ecx
jne 0x452314
mov eax, dword [edi + 0x47c8]
test eax, eax
je 0x452314
test dword [eax + 0xc], 0x40000
jne 0x452314
mov ebp, 0x26e
lea esi, [ebp - 0x62]
test bl, bl
je 0x4521c7
xor edx, edx
mov ecx, esi
call fcn.0044dc6d
test al, al
jne 0x4521d8
test bh, bh
je 0x45220e
xor edx, edx
mov ecx, ebp
call fcn.0044dc6d
test al, al
je 0x45220e
xor ecx, ecx
inc ecx
mov byte [esp + 0x17], cl
test bl, bl
je 0x4521f3
push 0
xor edx, edx
mov ecx, esi
call fcn.0044dc9a
pop ecx
test al, al
jne 0x452207
test bh, bh
je 0x452213
push 0
xor edx, edx
mov ecx, ebp
call fcn.0044dc9a
pop ecx
test al, al
je 0x452213
xor eax, eax
inc eax
mov bl, al
jmp 0x452215
mov byte [esp + 0x17], 0
xor bl, bl
cmp byte [esp + 0x16], 0
mov ebp, 0x26d
lea esi, [ebp - 0x60]
je 0x452231
xor edx, edx
mov ecx, esi
call fcn.0044dc6d
test al, al
jne 0x452242
test bh, bh
je 0x45227c
xor edx, edx
mov ecx, ebp
call fcn.0044dc6d
test al, al
je 0x45227c
xor eax, eax
inc eax
cmp byte [esp + 0x16], 0
mov bh, al
je 0x45225e
push 0
xor edx, edx
mov ecx, esi
call fcn.0044dc9a
pop ecx
test al, al
jne 0x452275
cmp byte [esp + 0x15], 0
je 0x45227e
push 0
xor edx, edx
mov ecx, ebp
call fcn.0044dc9a
pop ecx
test al, al
je 0x45227e
xor eax, eax
lea edx, [eax + 1]
jmp 0x452280
xor bh, bh
xor dl, dl
mov ecx, dword [edi + 0x3e94]
test ecx, ecx
jne 0x4522a6
test bl, bl
je 0x4522ae
mov eax, dword [edi + 0x47cc]
mov dword [edi + 0x47d4], eax
mov dword [edi + 0x47e0], 2
jmp 0x4522ae
cmp ecx, dword [edi + 0x47cc]
jne 0x45230a
test dl, dl
je 0x4522c7
mov eax, dword [edi + 0x47cc]
mov dword [edi + 0x47d4], eax
xor eax, eax
inc eax
mov dword [edi + 0x47e0], eax
test ecx, ecx
je 0x4522d3
cmp ecx, dword [edi + 0x47cc]
jne 0x45230a
cmp byte [esp + 0x17], 0
jne 0x4522de
test bh, bh
je 0x4522ea
mov eax, dword [edi + 0x47cc]
mov dword [edi + 0x47d8], eax
test ecx, ecx
je 0x4522f6
cmp ecx, dword [edi + 0x47cc]
jne 0x45230a
test bl, bl
jne 0x4522fe
test dl, dl
je 0x45230a
mov eax, dword [edi + 0x47cc]
mov dword [edi + 0x47dc], eax
mov bh, byte [esp + 0x15]
xor ecx, ecx
mov bl, byte [esp + 0x16]
mov eax, dword [edi + 0x47c8]
test eax, eax
je 0x452330
test dword [eax + 0xc], 0x40000
je 0x452330
xor eax, eax
inc eax
mov byte [edi + 0x4802], al
mov eax, dword [edi + 0x47f0]
test eax, eax
je 0x452358
mov dword [edi + 0x47dc], eax
mov dword [edi + 0x47d8], eax
mov dword [edi + 0x47d4], eax
mov eax, dword [edi + 0x47f4]
mov dword [edi + 0x47e0], eax
mov dword [edi + 0x47f0], ecx
call fcn.00452660
cmp dword [edi + 0x4844], 0xffffffff
jne 0x452371
call fcn.00452e2f
call fcn.00451c04
mov esi, dword [edi + 0x47c8]
xor edx, edx
mov byte [edi + 0x4800], dl
test esi, esi
je 0x45254e
test dword [esi + 0xc], 0x40000
jne 0x45254e
cmp dword [edi + 0x4934], edx
jne 0x45254e
mov ecx, esi
call fcn.004425bc
xorps xmm4, xmm4
mulss xmm0, dword [0x488b28]
mov ecx, dword [edi + 0x4844]
movss xmm2, dword [0x488a38]
mulss xmm0, dword [edi + 0x18]
addss xmm0, dword [0x4889e8]
cvttss2si eax, xmm0
movd xmm3, eax
cvtdq2ps xmm3, xmm3
cmp word [esi + 0x14c], dx
jne 0x45246f
cmp byte [esi + 0x152], dl
je 0x45246f
cmp ecx, 0xffffffff
je 0x45246f
movss xmm1, dword [0x488bc8]
test ecx, ecx
je 0x45240f
xor eax, eax
inc eax
cmp ecx, eax
jne 0x45243a
movaps xmm0, xmm2
jmp 0x452412
movaps xmm0, xmm1
mulss xmm0, xmm3
and dword [esi + 0x90], edx
and dword [esi + 0x98], edx
addss xmm0, dword [esi + 0x78]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi + 0x88], xmm0
cmp ecx, 2
je 0x452447
cmp ecx, 3
jne 0x45246f
movaps xmm1, xmm2
and dword [esi + 0x94], edx
mulss xmm1, xmm3
and dword [esi + 0x9c], edx
addss xmm1, dword [esi + 0x7c]
cvttss2si eax, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi + 0x8c], xmm0
test bh, bh
je 0x45254e
push 0x27c
push 0x27b
push 0x27a
mov edx, 0x279
lea ecx, [esp + 0x28]
call fcn.0044d8e8
add esp, 0xc
xor edx, edx
mov ecx, 0x273
call fcn.0044dc6d
test al, al
je 0x4524b1
movss xmm2, dword [0x4889ac]
jmp 0x4524c9
xor edx, edx
mov ecx, 0x274
call fcn.0044dc6d
test al, al
je 0x4524c9
movss xmm2, dword [0x488ac8]
movss xmm0, dword [esp + 0x1c]
ucomiss xmm0, xmm4
lahf
test ah, 0x44
jnp 0x45250f
cmp byte [esi + 0xa8], 0
je 0x45250f
mulss xmm0, xmm3
and dword [esi + 0x90], 0
and dword [esi + 0x98], 0
mulss xmm0, xmm2
addss xmm0, dword [esi + 0x78]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi + 0x88], xmm0
movss xmm0, dword [esp + 0x20]
ucomiss xmm0, xmm4
lahf
test ah, 0x44
jnp 0x45254c
mulss xmm0, xmm3
and dword [esi + 0x94], 0
and dword [esi + 0x9c], 0
mulss xmm0, xmm2
addss xmm0, dword [esi + 0x7c]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi + 0x8c], xmm0
xor edx, edx
test bl, bl
jne 0x452567
test bh, bh
jne 0x452567
xor eax, eax
mov byte [edi + 0x4803], dl
inc eax
mov byte [edi + 0x4802], al
jmp 0x4525ad
cmp byte [esp + 0x18], 0
je 0x4525ad
test byte [edi + 8], 4
je 0x4525ad
test byte [edi + 0xc], 4
je 0x4525ad
lea ecx, [esp + 0x1c]
call fcn.00451ceb
mov edx, dword [eax]
mov ecx, edx
mov esi, dword [eax + 4]
mov eax, esi
mov dword [edi + 0x36ac], eax
xor eax, eax
inc eax
mov dword [edi + 0x36a8], ecx
mov dword [edi + 0xdc0], edx
mov dword [edi + 0xdc4], esi
mov byte [edi + 0x9b], al
xor eax, eax
mov dword [edi + 0x4870], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret