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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x134
mov ecx, dword [0x53151c]
push ebx
push esi
push edi
mov eax, dword [ecx + 0x19b0]
mov byte [eax + 0x7c], 1
mov esi, dword [ecx + 0x19b0]
mov dword [esp + 0x3c], esi
cmp byte [esi + 0x7f], 0
jne 0x45132b
mov ecx, dword [ebp + 0x1c]
mov ebx, ecx
mov edi, dword [0x53151c]
mov eax, ecx
shr eax, 0xe
and eax, 0xffffff01
shr ebx, 0x14
mov dword [esp + 0x44], eax
and ebx, 0xffffff01
mov eax, ecx
mov dword [esp + 0x70], edi
shr eax, 0xf
and eax, 0xffffff01
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x90], eax
mov eax, ecx
shr eax, 0x10
not al
and eax, 0xffffff01
mov dword [esp + 0x54], eax
mov eax, ecx
shr eax, 0x12
and eax, 0xffffff01
mov dword [esp + 0x6c], eax
test bl, bl
je 0x451185
call fcn.0041c960
push 0
push dword [ebp + 8]
mov ecx, esi
call fcn.00420b80
movss xmm0, dword [0x48f4f8]
push ecx
mov dword [esp], 0xbf800000
push 1
push 0
push dword [ebp + 8]
mov dword [esp + 0x44], eax
lea eax, [esp + 0x100]
push eax
movss dword [esp + 0xfc], xmm0
call fcn.0041d6d0
add esp, 0x14
test bl, bl
je 0x4511db
movss xmm1, dword [edi + 0x18c4]
mulss xmm1, dword [0x4a7448]
jmp 0x4511e4
movss xmm1, dword [esp + 0xf4]
movss xmm0, dword [edi + 0x154c]
addss xmm0, xmm0
push ecx
addss xmm0, xmm1
movss dword [esp], xmm0
call fcn.0041d330
mov eax, dword [ebp + 0x18]
push ecx
fstp dword [esp]
push dword [eax + 4]
push dword [eax]
lea eax, [esp + 0x118]
push eax
call fcn.0041d260
movss xmm0, dword [esp + 0x104]
xorps xmm1, xmm1
add esp, 0x14
comiss xmm0, xmm1
jbe 0x45123a
movss xmm4, dword [edi + 0x1560]
addss xmm4, xmm0
jmp 0x45123d
xorps xmm4, xmm4
movss xmm0, dword [esi + 0xcc]
movss xmm3, dword [esi + 0xc8]
movss xmm6, dword [esp + 0x10c]
movaps xmm1, xmm3
movss xmm5, dword [esp + 0x108]
addss xmm0, xmm6
movss dword [esp + 0x98], xmm3
addss xmm4, xmm5
movss xmm2, dword [esi + 0xcc]
addss xmm1, xmm5
movss dword [esp + 0x8c], xmm5
movss dword [esp + 0x94], xmm6
movss dword [esp + 0xa4], xmm0
movaps xmm0, xmm2
movss dword [esp + 0x9c], xmm2
addss xmm4, xmm3
movss dword [esp + 0xa0], xmm1
addss xmm0, xmm6
movss dword [esp + 0xf8], xmm3
movss dword [esp + 0xfc], xmm2
mov dword [esp + 0x4c], esi
movss dword [esp + 0x100], xmm4
movss dword [esp + 0x104], xmm0
test bl, bl
je 0x4513ba
mov ebx, dword [esp + 0x34]
lea eax, [esp + 0x98]
push eax
lea eax, [esp + 0xfc]
push ebx
push eax
call fcn.00423720
add esp, 0xc
test al, al
jne 0x451334
movss xmm0, dword [edi + 0x154c]
lea eax, [esp + 0xf8]
push ecx
movss dword [esp], xmm0
push eax
call fcn.00423a90
add esp, 8
call fcn.0041f360
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movss xmm0, dword [esp + 0xa0]
lea eax, [esp + 0x58]
subss xmm0, dword [esp + 0x98]
push 0
push eax
push ebx
movss dword [esp + 0x64], xmm0
movss xmm0, dword [esp + 0xb0]
subss xmm0, dword [esp + 0xa8]
movss dword [esp + 0x68], xmm0
call fcn.0041c590
add esp, 0xc
test al, al
jne 0x45138b
call fcn.0041eed0
call fcn.0041f360
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x19b0]
movss xmm0, dword [esp + 0x8c]
mov dword [esp + 0x4c], ecx
subss xmm0, dword [ecx + 0x70]
mov eax, dword [ecx + 0x134]
or dword [ecx + 0x13c], eax
movss dword [esp + 0x8c], xmm0
jmp 0x4513fa
movss xmm0, dword [edi + 0x154c]
lea eax, [esp + 0xf8]
push ecx
movss dword [esp], xmm0
push eax
call fcn.00423a90
mov ebx, dword [esp + 0x3c]
lea eax, [esp + 0xa0]
push eax
lea eax, [esp + 0x104]
push ebx
push eax
call fcn.00423720
add esp, 0x14
test al, al
je 0x45132b
lea eax, [esp + 0x98]
push ebx
push eax
call fcn.004238c0
add esp, 8
mov byte [esp + 0x13], al
test al, al
je 0x45141d
mov dword [edi + 0x1d30], 1
mov ecx, dword [esp + 0x34]
lea eax, [edi + 0x1e00]
xor ebx, ebx
cmp dword [eax], ecx
push ecx
cmove ebx, eax
push esi
mov dword [esp + 0x80], ebx
call fcn.00420220
add esp, 8
mov byte [esp + 0x33], al
test al, al
je 0x451461
cmp dword [edi + 0x1bdc], esi
jne 0x451461
mov ecx, dword [edi + 0x1be4]
cmp ecx, dword [esi + 0x164]
jne 0x451461
mov cl, 1
jmp 0x451463
xor cl, cl
mov byte [esp + 0x24], cl
test al, al
je 0x451474
mov byte [esp + 0x23], 1
test cl, cl
je 0x451479
mov byte [esp + 0x23], 0
cmp byte [esp + 0x13], 0
je 0x45148e
cmp byte [edi + 0x3d8], 0
mov byte [esp + 0x14], 1
jne 0x451493
mov byte [esp + 0x14], 0
mov eax, dword [edi + 0x19e4]
mov ecx, dword [esp + 0x34]
cmp eax, ecx
je 0x4514c1
cmp dword [edi + 0x1ae4], ecx
je 0x4514ba
cmp dword [edi + 0x1ad8], ecx
jne 0x4514c1
cmp dword [edi + 0x1af8], 3
jne 0x4514c1
mov byte [esp + 0x16], 1
jmp 0x4514c6
mov byte [esp + 0x16], 0
cmp byte [esp + 0x2c], 0
je 0x4514f1
test ebx, ebx
je 0x4514f1
test eax, eax
jne 0x4514f1
mov ecx, dword [esp + 0x4c]
push eax
push str.SCROLLY
call fcn.00420d30
mov byte [esp + 0x18], 1
cmp dword [edi + 0x1a18], eax
je 0x4514f6
mov byte [esp + 0x18], 0
cmp byte [esp + 0x2c], 0
je 0x45151f
test ebx, ebx
je 0x45151f
mov ecx, dword [esp + 0x4c]
push 0
push str.SCROLLY
call fcn.00420d30
mov ecx, dword [edi + 0x19e4]
cmp ecx, eax
jne 0x45151f
mov dl, 1
jmp 0x451527
mov ecx, dword [edi + 0x19e4]
xor dl, dl
mov eax, ecx
mov byte [esp + 0x17], dl
mov byte [esp + 0x25], 0
cmp eax, dword [esp + 0x34]
je 0x451551
test byte [ebp + 0x1c], 0x10
jne 0x451545
cmp byte [esp + 0x16], 0
je 0x451551
cmp byte [esp + 0x2c], 0
mov byte [esp + 0x1c], 1
je 0x451556
mov byte [esp + 0x1c], 0
cmp byte [esp + 0x33], 0
jne 0x451584
cmp byte [esp + 0x14], 0
jne 0x451584
cmp byte [esp + 0x18], 0
jne 0x451584
cmp byte [esp + 0x16], 0
jne 0x451584
mov byte [esp + 0x15], 0
test dl, dl
jne 0x451589
mov byte [esp + 0x18], dl
jmp 0x4516cf
mov byte [esp + 0x15], 1
mov byte [esp + 0x18], 1
cmp ecx, dword [esp + 0x34]
je 0x4516cf
mov esi, dword [ebp + 0x10]
lea ebx, [edi + 0x1e00]
mov dword [esp + 0x78], ebx
mov dword [ebx + 0xe60], 0xbe99999a
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x4515b2
sub esi, ecx
lea ecx, [ebx + 0x24]
inc esi
push esi
call fcn.004314f0
push esi
push dword [ebp + 0x10]
push dword [ebx + 0x2c]
call fcn.0046ded0
mov esi, dword [ebp + 0x14]
lea ecx, [ebx + 0xc]
add esp, 0xc
mov dword [esp + 0x28], 0
lea eax, [esi + 1]
push eax
call fcn.004315e0
push 0
lea ecx, [ebx + 0x18]
call fcn.004314f0
lea eax, [esp + 0x28]
mov byte [ebx + 0x30], 0
push eax
push 0
push dword [ebp + 0x10]
push esi
push dword [ebx + 0x14]
call fcn.004222b0
mov dword [ebx + 4], eax
add esp, 0x14
mov eax, dword [esp + 0x28]
sub eax, dword [ebp + 0x10]
mov dword [ebx + 8], eax
mov eax, dword [esp + 0x34]
cmp dword [ebx], eax
jne 0x451631
mov ecx, ebx
call fcn.0044dd10
mov edx, dword [esp + 0x2c]
jmp 0x4516a1
mov edx, dword [esp + 0x2c]
mov dword [ebx], eax
mov al, dl
mov dword [ebx + 0x38], 0
xor al, 1
mov dword [ebx + 0xe52], 0x630000
mov dword [ebx + 0xe58], 0
mov dword [ebx + 0xe5c], 0x3e7
mov dword [ebx + 0x40], 0
mov dword [ebx + 0x44], 0
mov dword [ebx + 0x3c], 0
mov dword [ebx + 0x48], 0x10000
mov dword [ebx + 0x50], 0
mov byte [ebx + 0x4c], al
test dl, dl
jne 0x4516a1
mov eax, dword [esp + 0x1c]
mov ecx, 1
cmp byte [esp + 0x24], dl
movzx eax, al
cmovne eax, ecx
mov dword [esp + 0x1c], eax
test dword [ebp + 0x1c], 0x2000
je 0x4516ae
mov byte [ebx + 0x48], 1
test dl, dl
jne 0x4516cb
cmp byte [esp + 0x23], dl
jne 0x4516c6
cmp byte [esp + 0x14], dl
je 0x4516cb
cmp byte [edi + 0x100], dl
je 0x4516cb
mov byte [esp + 0x1c], 1
mov esi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x34]
cmp dword [edi + 0x19e4], ecx
je 0x451779
cmp byte [esp + 0x15], 0
je 0x451779
push esi
push ecx
call fcn.0042d460
push esi
push dword [esp + 0x40]
call fcn.0042d7f0
push esi
call fcn.004200a0
mov eax, dword [edi + 0x19f8]
add esp, 0x14
mov edx, dword [esp + 0x2c]
or eax, 3
mov dword [edi + 0x19f8], eax
test dl, dl
jne 0x451721
test byte [ebp + 0x1c], 0x80
je 0x45172a
or eax, 0xc
mov dword [edi + 0x19f8], eax
mov eax, dword [edi + 0x1a00]
or dword [edi + 0x19fc], 2
or eax, 0x180
mov ecx, dword [edi + 0x1a04]
mov dword [edi + 0x1a00], eax
mov dword [edi + 0x1a04], ecx
test dl, dl
je 0x451761
or eax, 0x60
mov dword [edi + 0x1a04], ecx
mov dword [edi + 0x1a00], eax
test dword [ebp + 0x1c], 0x440
je 0x451779
or eax, 1
mov dword [edi + 0x1a04], ecx
mov dword [edi + 0x1a00], eax
mov eax, dword [edi + 0x19e4]
mov esi, dword [esp + 0x34]
cmp eax, esi
jne 0x4517ba
test ebx, ebx
jne 0x451796
call fcn.0041dfb0
mov eax, dword [edi + 0x19e4]
cmp eax, esi
jne 0x4517ba
cmp byte [edi + 0x3d8], 0
je 0x4517c5
cmp byte [esp + 0x18], 0
jne 0x4517c5
cmp byte [esp + 0x15], 0
jne 0x4517c5
mov byte [esp + 0x25], 1
mov cl, 1
jmp 0x4517cb
test ebx, ebx
je 0x4517c9
cmp byte [esp + 0x17], 0
je 0x4517c9
mov cl, 1
jmp 0x4517cb
xor cl, cl
mov byte [esp + 0x1b], cl
test ebx, ebx
je 0x4517e3
mov eax, dword [ebx + 0x40]
cmp eax, dword [ebx + 0x44]
je 0x4517e3
test cl, cl
je 0x4517e3
mov al, 1
jmp 0x4517e5
xor al, al
mov edx, dword [esp + 0x44]
mov byte [esp + 0x19], al
mov byte [esp + 0x24], 0
mov byte [esp + 0x18], 0
test dl, dl
je 0x451866
test ebx, ebx
je 0x451866
test cl, cl
jne 0x451807
test al, al
je 0x45186e
mov eax, dword [ebp + 0x14]
lea ecx, [ebx + 0xc]
inc eax
mov dword [esp + 0x28], 0
push eax
call fcn.004315e0
lea eax, [esp + 0x28]
push eax
push 0
push dword [ebp + 0x10]
push dword [ebx + 0xc]
push dword [ebx + 0x14]
call fcn.004222b0
mov dword [ebx + 4], eax
add esp, 0x14
mov eax, dword [esp + 0x28]
mov ecx, ebx
sub eax, dword [ebp + 0x10]
mov dword [ebx + 8], eax
call fcn.0044dd10
mov ecx, dword [ebx + 0x40]
xor edx, edx
movzx eax, byte [esp + 0x19]
cmp ecx, dword [ebx + 0x44]
mov cl, byte [esp + 0x1b]
cmovne edx, eax
mov al, dl
mov edx, dword [esp + 0x44]
mov byte [esp + 0x19], al
test cl, cl
jne 0x451876
test al, al
jne 0x451876
cmp dword [edi + 0x19e4], esi
jne 0x451887
test dl, dl
jne 0x451887
test ebx, ebx
je 0x451887
cmp byte [ebx + 0x30], dl
je 0x451887
mov al, 1
jmp 0x451889
xor al, al
cmp dword [ebp + 0xc], 0
mov byte [esp + 0x33], al
je 0x4518a8
test al, al
je 0x45189c
mov eax, dword [ebx + 0x20]
jmp 0x45189f
mov eax, dword [ebp + 0x10]
cmp byte [eax], 0
jne 0x4518a8
mov al, 1
jmp 0x4518aa
xor al, al
cmp byte [esp + 0x90], 0
mov byte [esp + 0x1a], al
je 0x451931
test al, al
jne 0x451931
mov ecx, dword [edi + 0x18c0]
push 0x2a
call fcn.00434500
mov ecx, dword [edi + 0x18c0]
lea esi, [edi + 0x2c74]
mov edx, eax
push esi
mov ecx, dword [ecx + 0x10]
mov dword [esi + 0x10], ecx
mov ecx, dword [edi + 0x18c0]
mov ecx, dword [ecx + 0x48]
mov dword [esi + 0x48], ecx
mov ecx, dword [edi + 0x18c0]
mov eax, dword [ecx + 0x30]
mov dword [esi + 0x30], eax
mov eax, dword [ecx + 0x34]
mov dword [esi + 0x34], eax
mov eax, dword [edi + 0x18c0]
mov eax, dword [eax + 0x4c]
mov dword [esi + 0x4c], eax
mov eax, dword [edi + 0x18c0]
mov eax, dword [eax + 0x50]
mov dword [esi + 0x50], eax
mov eax, dword [edi + 0x18c0]
mov eax, dword [eax + 0x38]
mov dword [esi + 0x38], eax
mov dword [esi + 0x2c], edx
mov eax, dword [edx + 4]
mov dword [esi + 0xc], eax
call fcn.00429ef0
add esp, 4
mov eax, dword [esp + 0x34]
mov dword [esp + 0x40], 0
cmp dword [edi + 0x19e4], eax
jne 0x451cc5
mov eax, dword [ebx + 8]
mov esi, dword [ebp + 0x24]
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 0x14]
mov dword [ebx + 0x34], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebx + 0xe68], eax
mov eax, dword [ebp + 0x20]
mov dword [ebx + 0xe6c], eax
mov dword [ebx + 0xe70], esi
cmp byte [edi + 0xf0], 0
mov dword [edi + 0x2f7c], 1
sete al
cmp byte [esp + 0x2c], 0
mov byte [edi + 0x19f1], al
movss xmm7, dword [edi + 0xe8]
subss xmm7, dword [esp + 0x98]
subss xmm7, dword [edi + 0x1548]
addss xmm7, dword [ebx + 0x38]
je 0x4519ce
mov eax, dword [esp + 0x4c]
movss xmm1, dword [edi + 0xec]
subss xmm1, dword [eax + 0xcc]
subss xmm1, dword [edi + 0x154c]
jmp 0x4519de
movss xmm1, dword [edi + 0x18c4]
mulss xmm1, dword [0x48fc20]
cmp byte [esp + 0x1c], 0
mov cl, byte [edi + 0xb1]
mov byte [esp + 0x14], cl
jne 0x451b53
mov dl, byte [esp + 0x13]
test dl, dl
je 0x451a11
mov al, byte [edi + 0x3dd]
test cl, cl
jne 0x451a8c
test al, al
jne 0x451b53
cmp byte [edi + 0x3d8], 0
mov al, byte [ebx + 0xe65]
je 0x451ab1
test al, al
jne 0x451ab1
test dl, dl
je 0x451b6e
cmp byte [ebx + 0x4c], al
je 0x451a55
push 0
lea eax, [esp + 0xbc]
push ebx
push eax
call fcn.00456320
movss xmm1, dword [esp + 0xd0]
add esp, 0xc
sub esp, 8
movss dword [esp + 4], xmm1
movss dword [esp], xmm7
push ebx
call fcn.0045b7d0
mov cl, byte [esp + 0x20]
add esp, 0xc
mov dword [ebx + 0x3c], eax
mov dword [ebx + 0x40], eax
mov dword [ebx + 0x44], eax
mov byte [ebx + 0x4b], 0
mov dword [ebx + 0xe60], 0xbe99999a
jmp 0x451b6e
test al, al
je 0x451a11
push 0x20000c
mov ecx, ebx
call fcn.00454a70
push 0x60000d
mov ecx, ebx
call fcn.00454a70
mov cl, byte [esp + 0x14]
jmp 0x451b6e
cmp byte [edi + 0xf0], 0
je 0x451b6e
test al, al
jne 0x451b6e
movss xmm0, dword [edi + 0x378]
xorps xmm2, xmm2
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jp 0x451aef
movss xmm0, dword [edi + 0x37c]
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jnp 0x451b6e
cmp byte [ebx + 0x4c], 0
je 0x451b11
push 0
lea eax, [esp + 0xbc]
push ebx
push eax
call fcn.00456320
movss xmm1, dword [esp + 0xd0]
add esp, 0xc
mov eax, dword [ebx + 0x40]
cmp eax, dword [ebx + 0x44]
jne 0x451b1f
mov eax, dword [ebx + 0x3c]
mov dword [ebx + 0x40], eax
sub esp, 8
movss dword [esp + 4], xmm1
movss dword [esp], xmm7
push ebx
call fcn.0045b7d0
mov cl, byte [esp + 0x20]
add esp, 0xc
mov dword [ebx + 0x44], eax
mov dword [ebx + 0x3c], eax
mov dword [ebx + 0xe60], 0xbe99999a
mov byte [ebx + 0xe64], 1
jmp 0x451b6e
mov eax, dword [ebx + 4]
mov dword [ebx + 0x40], 0
mov dword [ebx + 0x44], eax
mov dword [ebx + 0x3c], eax
mov byte [ebx + 0x4b], 0
mov byte [ebx + 0xe65], 1
cmp byte [ebx + 0xe65], 0
je 0x451b87
cmp byte [edi + 0xf0], 0
jne 0x451b87
mov byte [ebx + 0xe65], 0
cmp byte [edi + 0x100], 0
je 0x451b99
cmp byte [edi + 0x102], 0
je 0x451ba6
test cl, cl
je 0x451bad
cmp byte [edi + 0x103], 0
je 0x451bad
mov byte [esp + 0x13], 1
jmp 0x451bb2
mov byte [esp + 0x13], 0
test dword [ebp + 0x1c], 0x400
je 0x451c3d
mov eax, dword [0x53151c]
mov eax, dword [eax + 0x34]
test eax, eax
js 0x451c3d
push 1
push eax
call fcn.004230d0
mov dl, byte [esp + 0x1b]
add esp, 8
test al, al
je 0x451c41
test dl, dl
jne 0x451c41
cmp byte [edi + 0x101], dl
jne 0x451c41
cmp byte [esp + 0x44], dl
jne 0x451c41
mov ecx, dword [edi + 0x1508]
mov eax, dword [edi + 0x1500]
lea edx, [ecx + eax*2]
cmp ecx, edx
jae 0x451c12
movzx eax, word [ecx]
add ecx, 2
cmp eax, 9
je 0x451c3d
cmp ecx, edx
jb 0x451c03
push esi
push dword [ebp + 0x20]
lea eax, [esp + 0x30]
mov dword [esp + 0x30], 9
push dword [ebp + 0x1c]
push eax
call fcn.00453640
add esp, 0x10
test al, al
je 0x451c3d
push dword [esp + 0x28]
mov ecx, ebx
call fcn.00454a70
mov dl, byte [esp + 0x13]
mov ecx, dword [edi + 0x1500]
lea eax, [edi + 0x1500]
test ecx, ecx
jle 0x451cc5
test dl, dl
jne 0x451cbc
cmp byte [esp + 0x44], dl
jne 0x451cbc
cmp byte [esp + 0x16], dl
jne 0x451cbc
xor esi, esi
test ecx, ecx
jle 0x451cbc
nop word [eax + eax]
mov eax, dword [edi + 0x1508]
movzx eax, word [eax + esi*2]
mov dword [esp + 0x28], eax
cmp eax, 9
jne 0x451c8c
cmp byte [edi + 0x101], 0
jne 0x451cb1
push dword [ebp + 0x24]
lea eax, [esp + 0x2c]
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push eax
call fcn.00453640
add esp, 0x10
test al, al
je 0x451cb1
push dword [esp + 0x28]
mov ecx, ebx
call fcn.00454a70
inc esi
lea eax, [edi + 0x1500]
cmp esi, dword [eax]
jl 0x451c70
push 0
mov ecx, eax
call fcn.004315e0
mov ecx, dword [edi + 0x19e4]
xor dl, dl
mov eax, ecx
mov byte [esp + 0x13], dl
cmp ecx, dword [esp + 0x34]
jne 0x452557
cmp byte [edi + 0x19f0], dl
jne 0x452557
cmp byte [esp + 0x25], dl
jne 0x452557
mov dl, byte [edi + 0x101]
xor esi, esi
mov dh, byte [edi + 0xb1]
test dl, dl
mov eax, 0x400000
mov byte [esp + 0x77], dh
cmovne esi, eax
mov al, byte [edi + 0x100]
test dh, dh
je 0x451d65
cmp byte [edi + 0x103], 0
je 0x451d2d
test al, al
jne 0x451d2d
mov ecx, 1
jmp 0x451d2f
xor ecx, ecx
test ecx, ecx
jne 0x451d72
xor ah, ah
mov byte [esp + 0x15], ah
mov cl, al
test dh, dh
je 0x451d83
cmp byte [edi + 0x103], 0
je 0x451d83
test dl, dl
je 0x451d83
mov cl, byte [edi + 0x100]
test cl, cl
jne 0x451d83
cmp byte [edi + 0x102], cl
jne 0x451d83
mov byte [esp + 0x27], 1
jmp 0x451d88
test al, al
je 0x451d33
cmp byte [edi + 0x103], 0
jne 0x451d33
cmp byte [edi + 0x102], 0
jne 0x451d33
test dl, dl
jne 0x451d33
mov ah, 1
jmp 0x451d35
mov byte [esp + 0x27], 0
test dh, dh
je 0x451e3b
cmp byte [edi + 0x103], 0
mov al, byte [edi + 0x102]
mov byte [esp + 0x14], al
je 0x451e3f
test cl, cl
jne 0x451e3f
test al, al
jne 0x451e3f
mov byte [esp + 0x16], 1
mov al, byte [edi + 0x101]
mov byte [esp + 0x26], 0
test al, al
je 0x451de4
test cl, cl
jne 0x451de4
cmp byte [edi + 0x102], cl
jne 0x451de4
mov byte [esp + 0x17], 1
cmp byte [edi + 0x103], cl
je 0x451de9
mov byte [esp + 0x17], 0
test ah, ah
je 0x451dfd
push 1
push 0x13
call fcn.004231a0
add esp, 8
test al, al
jne 0x451e14
cmp byte [esp + 0x17], 0
je 0x451e76
push 1
push 0xa
call fcn.004231a0
add esp, 8
test al, al
je 0x451e76
cmp byte [esp + 0x44], 0
jne 0x451e76
cmp byte [esp + 0x90], 0
jne 0x451e76
cmp byte [esp + 0x2c], 0
je 0x451e34
mov eax, dword [ebx + 0x40]
cmp eax, dword [ebx + 0x44]
je 0x451e76
mov byte [esp + 0x23], 1
jmp 0x451e7b
mov byte [esp + 0x14], cl
mov byte [esp + 0x16], 0
test cl, cl
je 0x451dbc
test dl, dl
jne 0x451dbc
cmp byte [edi + 0x102], dl
jne 0x451dbc
cmp byte [edi + 0x103], dl
jne 0x451dbc
mov byte [esp + 0x26], 1
jmp 0x451de4
mov byte [esp + 0x23], 0
cmp byte [esp + 0x15], 0
je 0x451e92
push 1
push 0x11
call fcn.004231a0
add esp, 8
test al, al
jne 0x451ea9
cmp byte [esp + 0x26], 0
je 0x451ec9
push 1
push 9
call fcn.004231a0
add esp, 8
test al, al
je 0x451ec9
cmp byte [esp + 0x90], 0
jne 0x451ec9
cmp byte [esp + 0x2c], 0
je 0x451ec2
mov eax, dword [ebx + 0x40]
cmp eax, dword [ebx + 0x44]
je 0x451ec9
mov byte [esp + 0x53], 1
jmp 0x451ece
mov byte [esp + 0x53], 0
cmp byte [esp + 0x15], 0
je 0x451ee5
push 1
push 0x12
call fcn.004231a0
add esp, 8
test al, al
jne 0x451efc
cmp byte [esp + 0x17], 0
je 0x451f08
push 1
push 9
call fcn.004231a0
add esp, 8
test al, al
je 0x451f08
cmp byte [esp + 0x44], 0
mov byte [esp + 0x17], 1
je 0x451f0d
mov byte [esp + 0x17], 0
cmp byte [esp + 0x15], 0
je 0x451f37
push 1
push 0x15
call fcn.004231a0
add esp, 8
test al, al
je 0x451f37
cmp byte [esp + 0x44], 0
jne 0x451f37
cmp byte [esp + 0x54], 0
mov byte [esp + 0x26], 1
jne 0x451f3c
mov byte [esp + 0x26], 0
cmp byte [esp + 0x15], 0
je 0x451f53
push 1
push 0x14
call fcn.004231a0
add esp, 8
test al, al
jne 0x451f6a
cmp byte [esp + 0x27], 0
je 0x451f7d
push 1
push 0x15
call fcn.004231a0
add esp, 8
test al, al
je 0x451f7d
cmp byte [esp + 0x44], 0
jne 0x451f7d
cmp byte [esp + 0x54], 0
mov byte [esp + 0x27], 1
jne 0x451f82
mov byte [esp + 0x27], 0
push 1
push 1
call fcn.004231a0
add esp, 8
test al, al
je 0x451fce
cmp byte [esp + 0x16], 0
je 0x451fad
mov eax, 0x200004
mov ecx, ebx
or eax, esi
push eax
call fcn.00454a70
jmp 0x4524f6
mov eax, 0x200000
mov ecx, 0x20000c
cmp byte [esp + 0x14], 0
cmovne eax, ecx
mov ecx, ebx
or eax, esi
push eax
call fcn.00454a70
jmp 0x4524f6
push 1
push 2
call fcn.004231a0
add esp, 8
test al, al
je 0x452003
cmp byte [esp + 0x16], 0
je 0x451ff9
mov eax, 0x200005
mov ecx, ebx
or eax, esi
push eax
call fcn.00454a70
jmp 0x4524f6
mov eax, 0x200001
lea ecx, [eax + 0xc]
jmp 0x451fb7
push 1
push 3
call fcn.004231a0
add esp, 8
test al, al
je 0x45206b
cmp byte [esp + 0x2c], 0
je 0x45206b
cmp byte [edi + 0x100], 0
je 0x452050
mov esi, dword [esp + 0x4c]
push ecx
movss xmm0, dword [esi + 0x54]
subss xmm0, dword [edi + 0x18c4]
maxss xmm0, dword [0x48f4f0]
movss dword [esp], xmm0
push esi
call fcn.0042dfb0
add esp, 8
jmp 0x4524f6
movzx eax, byte [esp + 0x16]
mov ecx, ebx
lea eax, [eax*4 + 0x200002]
or eax, esi
push eax
call fcn.00454a70
jmp 0x4524f6
push 1
push 4
call fcn.004231a0
add esp, 8
test al, al
je 0x4520e6
cmp byte [esp + 0x2c], 0
je 0x4520e6
cmp byte [edi + 0x100], 0
je 0x4520cb
mov esi, dword [esp + 0x4c]
movss xmm0, dword [edi + 0x18c4]
addss xmm0, dword [esi + 0x54]
movss dword [esp + 0x7c], xmm0
call fcn.00421460
movss xmm0, dword [esp + 0x7c]
fstp dword [esp + 0x28]
minss xmm0, dword [esp + 0x28]
push ecx
movss dword [esp], xmm0
push esi
call fcn.0042dfb0
add esp, 8
jmp 0x4524f6
movzx eax, byte [esp + 0x16]
mov ecx, ebx
lea eax, [eax*4 + 0x200003]
or eax, esi
push eax
call fcn.00454a70
jmp 0x4524f6
push 1
push 7
call fcn.004231a0
add esp, 8
test al, al
je 0x452117
xor eax, eax
mov ecx, ebx
cmp byte [edi + 0x100], al
setne al
lea eax, [eax*2 + 0x200004]
or eax, esi
push eax
call fcn.00454a70
jmp 0x4524f6
push 1
push 8
call fcn.004231a0
add esp, 8
test al, al
je 0x452148
xor eax, eax
mov ecx, ebx
cmp byte [edi + 0x100], al
setne al
lea eax, [eax*2 + 0x200005]
or eax, esi
push eax
call fcn.00454a70
jmp 0x4524f6
push 1
push 0xa
call fcn.004231a0
add esp, 8
test al, al
je 0x452172
cmp byte [esp + 0x44], 0
jne 0x452172
or esi, 0x200008
mov ecx, ebx
push esi
call fcn.00454a70
jmp 0x4524f6
push 1
push 0xb
call fcn.004231a0
add esp, 8
test al, al
je 0x4521f8
cmp byte [esp + 0x44], 0
jne 0x4521f8
mov eax, dword [ebx + 0x40]
cmp eax, dword [ebx + 0x44]
jne 0x4521e5
cmp byte [esp + 0x14], 0
je 0x4521b7
push 0x60000c
mov ecx, ebx
call fcn.00454a70
or esi, 0x200009
mov ecx, ebx
push esi
call fcn.00454a70
jmp 0x4524f6
cmp byte [esp + 0x77], 0
je 0x4521e5
cmp byte [edi + 0x103], 0
je 0x4521e5
cmp byte [edi + 0x102], 0
jne 0x4521e5
cmp byte [edi + 0x100], 0
jne 0x4521e5
push 0x600004
mov ecx, ebx
call fcn.00454a70
or esi, 0x200009
mov ecx, ebx
push esi
call fcn.00454a70
jmp 0x4524f6
push 1
push 0xd
call fcn.004231a0
add esp, 8
test al, al
jne 0x4524cd
push 1
push 0xf
call fcn.004231a0
add esp, 8
test al, al
jne 0x4524cd
push 1
push 0xe
call fcn.004231a0
add esp, 8
test al, al
je 0x45223b
mov dl, 1
mov byte [esp + 0x25], dl
jmp 0x4524fa
mov al, byte [esp + 0x26]
test al, al
jne 0x4524af
cmp byte [esp + 0x27], al
jne 0x4524af
cmp byte [esp + 0x15], al
je 0x452287
push 1
push 0x10
call fcn.004231a0
add esp, 8
test al, al
je 0x452287
mov eax, dword [ebx + 4]
mov dword [ebx + 0x40], 0
mov dword [ebx + 0x44], eax
mov dword [ebx + 0x3c], eax
mov byte [ebx + 0x4b], 0
mov byte [ebx + 0xe64], 1
jmp 0x4524f6
mov al, byte [esp + 0x23]
test al, al
jne 0x4523ec
cmp byte [esp + 0x53], al
jne 0x4523ec
cmp byte [esp + 0x17], al
je 0x4524f6
call fcn.00420500
mov esi, eax
test esi, esi
je 0x4524f6
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4522c0
sub ecx, edx
lea eax, [ecx*2 + 2]
push eax
call fcn.00424520
mov dword [esp + 0x40], eax
add esp, 4
xor eax, eax
mov dword [esp + 0x1c], eax
cmp byte [esi], al
je 0x452342
mov ebx, dword [esp + 0x3c]
xor edi, edi
nop dword [eax]
push 0
lea eax, [esp + 0x3c]
push esi
push eax
call fcn.00421d50
add esp, 0xc
add esi, eax
cmp dword [esp + 0x38], 0
je 0x452332
push dword [ebp + 0x24]
lea eax, [esp + 0x3c]
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push eax
call fcn.00453640
add esp, 0x10
test al, al
je 0x45232d
mov ax, word [esp + 0x38]
mov word [ebx + edi*2], ax
inc edi
cmp byte [esi], 0
jne 0x4522f0
mov ebx, dword [esp + 0x78]
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x70]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x3c]
xor edx, edx
mov word [ecx + eax*2], dx
test eax, eax
jle 0x4523db
mov edx, dword [ebx + 0x44]
lea esi, [ebx + 0x3c]
mov ecx, dword [esi + 4]
mov eax, dword [ebx + 4]
cmp ecx, edx
je 0x45237c
cmp ecx, eax
jle 0x45236d
mov dword [esi + 4], eax
mov ecx, eax
cmp edx, eax
jle 0x452376
mov dword [esi + 8], eax
mov edx, eax
cmp ecx, edx
jne 0x45237c
mov dword [esi], ecx
cmp dword [esi], eax
jle 0x452382
mov dword [esi], eax
push esi
push ebx
call fcn.0045bc00
push dword [esp + 0x24]
push dword [esp + 0x48]
push dword [esi]
push ebx
call fcn.00456230
add esp, 0x18
test al, al
je 0x4523c0
push dword [esp + 0x1c]
lea eax, [esi + 0x18]
push 0
push dword [esi]
push eax
call fcn.0045b700
mov eax, dword [esp + 0x2c]
add esp, 0x10
add dword [esi], eax
mov byte [esi + 0xf], 0
jmp 0x4523d4
movzx eax, word [esi + 0xe16]
test ax, ax
je 0x4523d4
dec eax
mov word [esi + 0xe16], ax
mov byte [ebx + 0xe64], 1
push dword [esp + 0x3c]
call fcn.00424550
add esp, 4
jmp 0x4524f6
cmp dword [edi + 0xd4], 0
je 0x452469
mov eax, dword [ebx + 0x44]
mov ecx, dword [ebx + 0x40]
cmp ecx, eax
je 0x452406
mov edx, eax
cmovl edx, ecx
jmp 0x452408
xor edx, edx
cmp ecx, eax
mov dword [esp + 0x54], edx
cmovge eax, ecx
jne 0x452416
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 0x14]
mov dword [esp + 0x28], eax
lea eax, [ecx + eax*2]
push eax
lea eax, [ecx + edx*2]
push eax
call fcn.00422230
lea esi, [eax + 1]
push esi
call fcn.00424520
mov edx, dword [ebx + 0x14]
mov edi, eax
mov eax, dword [esp + 0x34]
lea ecx, [edx + eax*2]
mov eax, dword [esp + 0x60]
push ecx
lea ecx, [edx + eax*2]
push ecx
push esi
push edi
call fcn.00422520
push edi
call fcn.0042d530
push edi
call fcn.00424550
mov edi, dword [esp + 0x94]
add esp, 0x24
mov al, byte [esp + 0x23]
test al, al
je 0x4524f6
mov eax, dword [ebx + 0x40]
cmp eax, dword [ebx + 0x44]
jne 0x45248d
mov eax, dword [ebx + 4]
mov dword [ebx + 0x40], 0
mov dword [ebx + 0x44], eax
mov dword [ebx + 0x3c], eax
mov byte [ebx + 0x4b], 0
lea esi, [ebx + 0x3c]
mov byte [ebx + 0xe64], 1
mov eax, dword [esi + 4]
cmp eax, dword [esi + 8]
je 0x4524f6
push esi
push ebx
call fcn.0045bc00
add esp, 8
mov byte [esi + 0xf], 0
jmp 0x4524f6
movzx eax, al
mov ecx, ebx
xor eax, 1
add eax, 0x20000a
push eax
call fcn.00454a70
mov eax, dword [ebx + 0x3c]
mov dword [ebx + 0x44], eax
mov dword [ebx + 0x40], eax
jmp 0x4524f6
mov edx, dword [ebp + 0x1c]
mov eax, edx
shr eax, 0xb
and al, 1
cmp byte [esp + 0x2c], 0
je 0x4524ec
mov cl, byte [edi + 0x100]
test al, al
je 0x45250d
test cl, cl
jne 0x452511
mov byte [esp + 0x25], 1
mov byte [esp + 0x18], 1
mov dl, byte [esp + 0x13]
mov eax, dword [ebx + 0x40]
cmp eax, dword [ebx + 0x44]
je 0x452545
cmp byte [esp + 0x1b], 0
je 0x452545
mov al, 1
jmp 0x452547
test cl, cl
jne 0x4524ec
cmp byte [esp + 0x44], 0
jne 0x4524f6
push dword [ebp + 0x24]
lea eax, [esp + 0x2c]
mov dword [esp + 0x2c], 0xa
push dword [ebp + 0x20]
push edx
push eax
call fcn.00453640
add esp, 0x10
test al, al
je 0x4524f6
push dword [esp + 0x28]
mov ecx, ebx
call fcn.00454a70
jmp 0x4524f6
xor al, al
mov ah, byte [esp + 0x19]
or ah, al
mov byte [esp + 0x19], ah
mov eax, dword [edi + 0x19e4]
cmp eax, dword [esp + 0x34]
jne 0x452963
xor eax, eax
mov dword [esp + 0x48], 0
mov dword [esp + 0x1c], eax
test dl, dl
je 0x452683
cmp byte [esp + 0x44], al
jne 0x4525ba
mov esi, dword [ebx + 0x2c]
mov ecx, esi
mov eax, dword [ebp + 0x10]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4525a5
test dl, dl
je 0x4525a1
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4525a5
add eax, 2
add ecx, 2
test dl, dl
jne 0x452585
xor eax, eax
jmp 0x4525aa
sbb eax, eax
or eax, 1
test eax, eax
je 0x4525ba
mov eax, dword [ebx + 0x24]
dec eax
mov dword [esp + 0x48], esi
mov dword [esp + 0x1c], eax
cmp byte [esp + 0x18], 0
mov eax, dword [ebp + 0x1c]
je 0x4525cc
test al, 0x20
jne 0x452686
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x1c]
test esi, esi
je 0x452945
cmp dword [esp + 0x40], ecx
je 0x452928
cmp byte [esp + 0x6c], 0
je 0x452928
mov dword [esp + 0x114], eax
xorps xmm0, xmm0
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x124], eax
lea eax, [ecx + 1]
cmp dword [ebp + 0x14], eax
movlpd qword [esp + 0x11c], xmm0
cmovge eax, dword [ebp + 0x14]
mov dword [esp + 0x12c], eax
mov eax, dword [ebp + 0x24]
mov dword [esp + 0x118], eax
lea eax, [esp + 0x110]
push eax
movlpd qword [esp + 0x134], xmm0
movlpd qword [esp + 0x13c], xmm0
mov dword [esp + 0x114], 0x40000
mov dword [esp + 0x12c], ecx
call dword [ebp + 0x20]
mov edx, dword [esp + 0x130]
add esp, 4
mov eax, dword [esp + 0x124]
mov dword [ebp + 0x10], eax
lea ecx, [edx - 1]
cmp dword [esp + 0x128], ecx
cmovl ecx, dword [esp + 0x128]
jmp 0x45292b
mov eax, dword [ebp + 0x1c]
cmp byte [esp + 0x44], 0
jne 0x4526ba
mov eax, dword [ebx + 0xc]
lea ecx, [ebx + 0x18]
mov byte [ebx + 0x30], 1
lea eax, [eax*4 + 1]
push eax
call fcn.004314f0
push 0
push dword [ebx + 0x14]
push dword [ebx + 0x18]
push dword [ebx + 0x20]
call fcn.00422520
mov eax, dword [ebp + 0x1c]
add esp, 0x10
test eax, 0x1c0
je 0x4528d6
mov esi, 0x16
test al, 0x40
je 0x4526e8
push 1
push 0
call fcn.004231a0
add esp, 8
test al, al
je 0x4526e5
lea eax, [esi + 0x2a]
xor esi, esi
jmp 0x452733
mov eax, dword [ebp + 0x1c]
test al, al
jns 0x452723
push 1
push 3
call fcn.004231a0
add esp, 8
test al, al
je 0x452706
mov eax, 0x80
lea esi, [eax - 0x7d]
jmp 0x452733
push 1
push 4
call fcn.004231a0
add esp, 8
test al, al
je 0x452720
mov eax, 0x80
lea esi, [eax - 0x7c]
jmp 0x452733
mov eax, dword [ebp + 0x1c]
test eax, 0x100
je 0x4528d6
mov eax, 0x100
mov dword [esp + 0xb8], eax
xor ecx, ecx
mov eax, dword [ebp + 0x1c]
xorps xmm0, xmm0
mov dword [esp + 0xbc], eax
mov eax, dword [ebp + 0x24]
mov dword [esp + 0xc0], eax
mov eax, dword [ebx + 0x20]
mov dword [esp + 0xcc], eax
mov eax, dword [ebx + 8]
mov dword [esp + 0xd0], eax
mov eax, dword [ebx + 0x34]
mov dword [esp + 0xd4], eax
mov eax, dword [ebx + 0x3c]
mov dword [esp + 0xc8], esi
mov esi, dword [ebx + 0x14]
mov dword [esp + 0xc4], 0
movlpd qword [esp + 0xd9], xmm0
mov dword [esp + 0xe1], 0
lea eax, [esi + eax*2]
mov word [esp + 0xe5], cx
push eax
push esi
mov byte [esp + 0xef], cl
mov byte [esp + 0xe0], cl
call fcn.00422230
mov ecx, dword [ebx + 0x40]
mov edi, eax
mov dword [esp + 0xe4], edi
lea ecx, [esi + ecx*2]
push ecx
push esi
call fcn.00422230
mov ecx, dword [ebx + 0x44]
mov dword [esp + 0x8c], eax
mov dword [esp + 0xf0], eax
lea ecx, [esi + ecx*2]
push ecx
push esi
call fcn.00422230
mov esi, eax
lea eax, [esp + 0xd0]
push eax
mov dword [esp + 0x100], esi
call dword [ebp + 0x20]
mov edx, dword [esp + 0xf8]
add esp, 0x1c
cmp edx, edi
je 0x45282e
mov ecx, dword [esp + 0xcc]
lea eax, [edx + ecx]
push eax
push ecx
call fcn.00421f10
add esp, 8
mov dword [ebx + 0x3c], eax
mov byte [ebx + 0xe64], 1
mov eax, dword [esp + 0xe0]
cmp eax, dword [esp + 0x7c]
je 0x452851
mov ecx, dword [esp + 0xcc]
add eax, ecx
push eax
push ecx
call fcn.00421f10
add esp, 8
mov dword [ebx + 0x40], eax
mov eax, dword [esp + 0xe4]
cmp eax, esi
je 0x452872
mov ecx, dword [esp + 0xcc]
add eax, ecx
push eax
push ecx
call fcn.00421f10
add esp, 8
mov dword [ebx + 0x44], eax
cmp byte [esp + 0xd8], 0
je 0x4528cf
mov eax, dword [esp + 0xd0]
mov edx, dword [esp + 0x40]
cmp eax, edx
jle 0x45289f
cmp byte [esp + 0x6c], 0
je 0x45289f
lea ecx, [ebx + 0xc]
sub eax, edx
add eax, dword [ecx]
push eax
call fcn.004315e0
push 0
push 0
push dword [esp + 0xd4]
push dword [ebx + 0xc]
push dword [ebx + 0x14]
call fcn.004222b0
mov dword [ebx + 4], eax
add esp, 0x14
mov eax, dword [esp + 0xd0]
mov dword [ebx + 8], eax
mov dword [ebx + 0xe60], 0xbe99999a
mov eax, dword [ebp + 0x1c]
mov edi, dword [esp + 0x70]
cmp byte [esp + 0x44], 0
jne 0x4525cc
mov esi, dword [ebx + 0x20]
mov eax, esi
mov ecx, dword [ebp + 0x10]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x452910
test dl, dl
je 0x45290c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x452910
add eax, 2
add ecx, 2
test dl, dl
jne 0x4528f0
xor eax, eax
jmp 0x452915
sbb eax, eax
or eax, 1
test eax, eax
mov eax, dword [ebp + 0x1c]
je 0x4525cc
mov ecx, dword [ebx + 8]
jmp 0x4525d4
mov edx, dword [ebp + 0x14]
lea eax, [ecx + 1]
cmp eax, edx
cmovl edx, eax
push edx
push esi
push dword [ebp + 0x10]
call fcn.00421d20
add esp, 0xc
mov byte [esp + 0x24], 1
mov dword [ebx + 0xe68], 0
mov dword [ebx + 0xe6c], 0
mov dword [ebx + 0xe70], 0
cmp byte [esp + 0x25], 0
mov eax, dword [esp + 0x34]
je 0x45297f
cmp dword [edi + 0x19e4], eax
jne 0x45297f
call fcn.0041dfb0
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x2c]
test dl, dl
jne 0x4529e4
push 1
push eax
lea eax, [esp + 0xa0]
push eax
call fcn.0042afc0
movss xmm0, dword [edi + 0x1550]
add esp, 8
movss dword [esp], xmm0
push 1
push ecx
mov dword [esp], 0x3f800000
push 7
call fcn.004207e0
add esp, 8
push eax
push dword [esp + 0xb0]
push dword [esp + 0xb0]
push dword [esp + 0xb0]
push dword [esp + 0xb0]
call fcn.0042ad10
mov edx, dword [esp + 0x48]
add esp, 0x1c
movss xmm0, dword [esp + 0x98]
movss xmm2, dword [esp + 0x8c]
movss xmm1, dword [esp + 0x9c]
movss dword [esp + 0xa8], xmm0
addss xmm0, xmm2
movss dword [esp + 0xac], xmm1
movss dword [esp + 0xb0], xmm0
movss xmm0, dword [esp + 0x94]
addss xmm0, xmm1
movss dword [esp + 0xb4], xmm0
test dl, dl
je 0x452a52
mov ecx, dword [esp + 0x4c]
mov eax, dword [ecx + 0xc8]
mov dword [esp + 0x58], eax
mov eax, dword [ecx + 0xcc]
mov dword [esp + 0x5c], eax
jmp 0x452a80
movss xmm0, dword [edi + 0x1548]
addss xmm0, dword [esp + 0x98]
movss dword [esp + 0x58], xmm0
movss xmm0, dword [edi + 0x154c]
addss xmm0, dword [esp + 0x9c]
movss dword [esp + 0x5c], xmm0
cmp byte [esp + 0x33], 0
lea eax, [esp + 0x58]
movss xmm0, dword [eax]
xorps xmm3, xmm3
movss dword [esp + 0x80], xmm0
movss xmm0, dword [eax + 4]
movss dword [esp + 0x84], xmm0
xorps xmm0, xmm0
movss dword [esp + 0x54], xmm0
movss dword [esp + 0x28], xmm3
je 0x452abe
mov eax, dword [ebx + 0x20]
mov dword [ebp + 0x10], eax
mov al, byte [esp + 0x1a]
mov dword [esp + 0x48], 0
test al, al
je 0x452af8
mov esi, dword [ebp + 0xc]
mov ecx, esi
mov dword [ebp + 0x10], esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x452ae0
sub ecx, edx
mov edx, dword [esp + 0x2c]
lea eax, [ecx + esi]
mov dword [esp + 0x48], eax
mov al, byte [esp + 0x1a]
mov ch, byte [esp + 0x1b]
mov cl, byte [esp + 0x19]
test ch, ch
jne 0x452bff
test cl, cl
jne 0x452bff
mov esi, dword [ebp + 0x10]
test dl, dl
je 0x452b61
mov dl, byte [esi]
lea ebx, [esi + 1]
xor ecx, ecx
test dl, dl
je 0x452b34
cmp dl, 0xa
lea eax, [ecx + 1]
mov dl, byte [ebx]
cmovne eax, ecx
inc ebx
mov ecx, eax
test dl, dl
jne 0x452b22
mov al, byte [ebx - 1]
dec ebx
cmp al, 0xa
je 0x452b41
cmp al, 0xd
je 0x452b41
inc ecx
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [edi + 0x18c4]
movss dword [esp + 0x28], xmm0
movaps xmm0, xmm2
movss dword [esp + 0x54], xmm0
jmp 0x452ba1
test al, al
jne 0x452b8e
mov eax, dword [esp + 0x34]
cmp dword [edi + 0x19e4], eax
jne 0x452b78
mov ebx, dword [ebx + 8]
add ebx, esi
jmp 0x452b92
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x452b80
sub ecx, edx
lea ebx, [esi + ecx]
jmp 0x452b92
mov ebx, dword [esp + 0x48]
mov eax, ebx
sub eax, esi
cmp eax, 0x200000
jge 0x453567
movzx eax, byte [esp + 0x1a]
push ecx
mov dword [esp], 0x3f800000
push eax
call fcn.004207e0
movss xmm0, dword [edi + 0x18c4]
lea ecx, [esp + 0xb0]
add esp, 8
xor edx, edx
cmp byte [esp + 0x2c], dl
cmovne ecx, edx
push ecx
push ecx
mov dword [esp], edx
push ebx
push esi
push eax
lea eax, [esp + 0x94]
push eax
mov eax, dword [esp + 0x64]
push ecx
movss dword [esp], xmm0
push dword [edi + 0x18c0]
mov ecx, dword [eax + 0x274]
call fcn.00433700
jmp 0x453499
test al, al
jne 0x452c0d
mov eax, dword [ebx + 8]
add eax, dword [ebp + 0x10]
mov dword [esp + 0x48], eax
mov esi, dword [ebx + 0x14]
xor edx, edx
mov dword [esp + 0x6c], esi
movss dword [esp + 0x3c], xmm3
movss dword [esp + 0x7c], xmm3
mov dword [esp + 0x1c], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x40], 0xfffffc18
mov dword [esp + 0x38], 0xfffffc18
test ch, ch
je 0x452c60
mov eax, dword [ebx + 0x3c]
mov edx, 1
mov dword [esp + 0x40], 0xffffffff
lea eax, [esi + eax*2]
mov dword [esp + 0x1c], eax
test cl, cl
je 0x452c81
mov ecx, dword [ebx + 0x44]
cmp dword [ebx + 0x40], ecx
mov dword [esp + 0x38], 0xffffffff
cmovl ecx, dword [ebx + 0x40]
inc edx
lea eax, [esi + ecx*2]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x2c]
xor esi, esi
movzx eax, al
add edx, eax
mov eax, dword [esp + 0x6c]
mov ecx, eax
movzx eax, word [eax]
test ax, ax
je 0x452cec
mov ebx, dword [esp + 0x40]
mov edi, eax
cmp di, 0xa
jne 0x452cd2
inc esi
cmp ebx, 0xffffffff
jne 0x452cb9
cmp ecx, dword [esp + 0x1c]
jb 0x452cb9
dec edx
mov ebx, esi
test edx, edx
jle 0x452ce0
cmp dword [esp + 0x38], 0xffffffff
jne 0x452cd2
cmp ecx, dword [esp + 0x88]
jb 0x452cd2
dec edx
mov dword [esp + 0x38], esi
test edx, edx
jle 0x452ce0
movzx eax, word [ecx + 2]
add ecx, 2
mov edi, eax
test ax, ax
jne 0x452ca0
mov edi, dword [esp + 0x70]
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x78]
cmp dword [esp + 0x40], 0xffffffff
lea edx, [esi + 1]
push dword [esp + 0x6c]
mov ecx, edx
mov dword [esp + 0x5c], edx
cmovne ecx, dword [esp + 0x44]
cmp dword [esp + 0x3c], 0xffffffff
push dword [esp + 0x20]
mov dword [esp + 0x48], ecx
mov ecx, edx
cmovne ecx, dword [esp + 0x40]
mov dword [esp + 0x40], ecx
call fcn.00421c50
mov ecx, dword [0x53151c]
mov edx, eax
add esp, 8
xorps xmm6, xmm6
xorps xmm1, xmm1
xorps xmm4, xmm4
mov esi, dword [ecx + 0x18c0]
movss xmm2, dword [ecx + 0x18c4]
divss xmm2, dword [esi + 0x10]
cmp edx, dword [esp + 0x1c]
jae 0x452d91
mov ebx, dword [esp + 0x1c]
movzx eax, word [edx]
add edx, 2
mov ecx, eax
cmp eax, 0xa
jne 0x452d67
maxss xmm1, xmm4
movaps xmm4, xmm6
jmp 0x452d89
cmp ecx, 0xd
je 0x452d89
mov ecx, eax
cmp ecx, dword [esi]
jge 0x452d7c
mov eax, dword [esi + 8]
movss xmm0, dword [eax + ecx*4]
jmp 0x452d81
movss xmm0, dword [esi + 0xc]
mulss xmm0, xmm2
addss xmm4, xmm0
cmp edx, ebx
jb 0x452d51
mov ebx, dword [esp + 0x78]
cmp dword [esp + 0x38], 0
maxss xmm4, xmm1
movd xmm3, dword [esp + 0x40]
movss xmm0, dword [edi + 0x18c4]
cvtdq2ps xmm3, xmm3
movss dword [esp + 0x70], xmm4
mulss xmm3, xmm0
movss dword [esp + 0x1c], xmm3
jl 0x452e79
push dword [esp + 0x6c]
push dword [esp + 0x8c]
call fcn.00421c50
mov ecx, dword [0x53151c]
mov edx, eax
add esp, 8
xorps xmm6, xmm6
xorps xmm1, xmm1
xorps xmm3, xmm3
mov esi, dword [ecx + 0x18c0]
movss xmm2, dword [ecx + 0x18c4]
divss xmm2, dword [esi + 0x10]
cmp edx, dword [esp + 0x88]
jae 0x452e48
mov ebx, dword [esp + 0x88]
movzx eax, word [edx]
add edx, 2
mov ecx, eax
cmp eax, 0xa
jne 0x452e1e
maxss xmm1, xmm3
movaps xmm3, xmm6
jmp 0x452e40
cmp ecx, 0xd
je 0x452e40
mov ecx, eax
cmp ecx, dword [esi]
jge 0x452e33
mov eax, dword [esi + 8]
movss xmm0, dword [eax + ecx*4]
jmp 0x452e38
movss xmm0, dword [esi + 0xc]
mulss xmm0, xmm2
addss xmm3, xmm0
cmp edx, ebx
jb 0x452e08
mov ebx, dword [esp + 0x78]
movss xmm0, dword [edi + 0x18c4]
maxss xmm3, xmm1
movd xmm1, dword [esp + 0x38]
movss xmm4, dword [esp + 0x70]
cvtdq2ps xmm1, xmm1
movss dword [esp + 0x7c], xmm3
movss xmm3, dword [esp + 0x1c]
mulss xmm1, xmm0
movss dword [esp + 0x3c], xmm1
mov ecx, dword [esp + 0x2c]
movss xmm5, dword [esp + 0x8c]
test cl, cl
je 0x452ea6
movd xmm1, dword [esp + 0x58]
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm0
movaps xmm0, xmm5
movss dword [esp + 0x54], xmm0
movss dword [esp + 0x28], xmm1
cmp byte [esp + 0x1b], 0
je 0x452f6a
cmp byte [ebx + 0xe64], 0
je 0x452f6a
test dword [ebp + 0x1c], 0x1000
jne 0x452f0b
movss xmm2, dword [ebx + 0x38]
movaps xmm0, xmm5
comiss xmm2, xmm4
mulss xmm0, dword [0x490ca4]
movaps xmm1, xmm4
jbe 0x452eec
subss xmm1, xmm0
movaps xmm0, xmm6
maxss xmm0, xmm1
jmp 0x452ef9
subss xmm1, xmm5
comiss xmm1, xmm2
jb 0x452f12
addss xmm0, xmm1
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ebx + 0x38], xmm0
jmp 0x452f12
mov dword [ebx + 0x38], 0
test cl, cl
je 0x452f63
mov eax, dword [esp + 0x4c]
movaps xmm2, xmm3
subss xmm2, dword [edi + 0x18c4]
movss xmm1, dword [eax + 0x54]
comiss xmm1, xmm2
jbe 0x452f38
movaps xmm0, xmm6
maxss xmm0, xmm2
jmp 0x452f48
movaps xmm0, xmm3
subss xmm0, dword [esp + 0x94]
maxss xmm0, xmm1
subss xmm1, xmm0
addss xmm1, dword [esp + 0x84]
movss dword [esp + 0x84], xmm1
movss dword [eax + 0x54], xmm0
mov byte [ebx + 0xe64], 0
cmp byte [esp + 0x19], 0
movss xmm0, dword [ebx + 0x38]
movss dword [esp + 0x40], xmm0
je 0x453232
mov edx, dword [ebx + 0x44]
mov eax, edx
mov ecx, dword [ebx + 0x40]
cmp ecx, edx
mov esi, dword [esp + 0x6c]
cmovl eax, ecx
cmovge edx, ecx
cmp byte [esp + 0x1b], 0
lea esi, [esi + eax*2]
mov eax, dword [esp + 0x6c]
lea eax, [eax + edx*2]
mov dword [esp + 0x38], eax
je 0x452fb3
movss xmm0, dword [0x48f4f4]
jmp 0x452fbb
movss xmm0, dword [0x4a7408]
push ecx
movss dword [esp], xmm0
push 0x2a
call fcn.004207e0
add esp, 8
mov dword [esp + 0x58], eax
cmp byte [esp + 0x2c], 0
je 0x452fed
xorps xmm0, xmm0
movss dword [esp + 0xe8], xmm0
movss dword [esp + 0x94], xmm0
jmp 0x453001
movss xmm0, dword [0x4a7438]
movss dword [esp + 0x94], xmm0
xorps xmm0, xmm0
movss xmm6, dword [esp + 0x3c]
addss xmm6, dword [esp + 0x84]
movss xmm4, dword [esp + 0x80]
addss xmm4, dword [esp + 0x7c]
mov ecx, dword [esp + 0x38]
subss xmm6, xmm0
subss xmm4, dword [esp + 0x40]
movss dword [esp + 0x3c], xmm6
cmp esi, ecx
jae 0x453232
movss xmm5, dword [edi + 0x18c4]
movss xmm7, dword [esp + 0xb4]
movaps xmm1, xmm5
movss xmm2, dword [esp + 0xac]
mov ebx, dword [esp + 0x58]
nop dword [eax]
movaps xmm0, xmm7
addss xmm0, xmm1
comiss xmm6, xmm0
ja 0x45322e
comiss xmm2, xmm6
jbe 0x453098
cmp esi, ecx
jae 0x453202
nop dword [eax]
movzx eax, word [esi]
add esi, 2
cmp eax, 0xa
je 0x453202
cmp esi, ecx
jb 0x453080
jmp 0x453202
mov eax, dword [0x53151c]
xorps xmm0, xmm0
xorps xmm3, xmm3
xorps xmm1, xmm1
mov edx, dword [eax + 0x18c0]
movss xmm2, dword [eax + 0x18c4]
divss xmm2, dword [edx + 0x10]
cmp esi, ecx
jae 0x453108
nop dword [eax]
movzx eax, word [esi]
add esi, 2
mov ecx, eax
cmp eax, 0xa
je 0x4530f7
cmp ecx, 0xd
je 0x4530ed
cmp ecx, dword [edx]
jge 0x4530e0
mov eax, dword [edx + 8]
movss xmm0, dword [eax + ecx*4]
jmp 0x4530e5
movss xmm0, dword [edx + 0xc]
mulss xmm0, xmm2
addss xmm1, xmm0
mov ecx, dword [esp + 0x38]
cmp esi, ecx
jb 0x4530c0
jmp 0x453105
mov ecx, dword [esp + 0x38]
xorps xmm3, xmm3
maxss xmm3, xmm1
xorps xmm1, xmm1
xorps xmm0, xmm0
maxss xmm1, xmm3
comiss xmm0, xmm1
jb 0x453141
mov eax, dword [edi + 0x18c0]
cmp dword [eax], 0x20
jle 0x453129
mov eax, dword [eax + 8]
movss xmm0, dword [eax + 0x80]
jmp 0x45312e
movss xmm0, dword [eax + 0xc]
mulss xmm0, dword [0x48fc20]
cvttss2si eax, xmm0
movd xmm1, eax
cvtdq2ps xmm1, xmm1
movss xmm2, dword [esp + 0xe8]
addss xmm1, xmm4
addss xmm4, dword [0x48f4f0]
movss xmm3, dword [esp + 0xac]
subss xmm2, xmm5
movss xmm5, dword [esp + 0xb0]
movaps xmm0, xmm6
addss xmm0, dword [esp + 0x94]
minss xmm1, xmm5
maxss xmm4, dword [esp + 0xa8]
addss xmm2, xmm6
minss xmm0, xmm7
movss dword [esp + 0x60], xmm1
movss dword [esp + 0x58], xmm4
maxss xmm2, xmm3
comiss xmm0, xmm3
movss dword [esp + 0x5c], xmm2
movss dword [esp + 0x64], xmm0
jbe 0x4531f9
comiss xmm7, xmm2
jbe 0x4531f9
comiss xmm1, dword [esp + 0xa8]
jbe 0x4531f9
comiss xmm5, xmm4
jbe 0x4531f9
push 0xf
push ecx
mov dword [esp], 0
lea eax, [esp + 0x68]
push ebx
push eax
lea eax, [esp + 0x68]
push eax
mov eax, dword [esp + 0x60]
mov ecx, dword [eax + 0x274]
call fcn.004333a0
movss xmm7, dword [esp + 0xb4]
movss xmm6, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
movss xmm2, dword [esp + 0xac]
movss xmm5, dword [edi + 0x18c4]
movss xmm4, dword [esp + 0x80]
addss xmm6, xmm5
movaps xmm1, xmm5
subss xmm4, dword [esp + 0x40]
movss dword [esp + 0x3c], xmm6
cmp esi, ecx
jb 0x453060
mov ebx, dword [esp + 0x78]
cmp byte [esp + 0x2c], 0
mov esi, dword [esp + 0x48]
jne 0x45324d
mov eax, esi
sub eax, dword [ebp + 0x10]
cmp eax, 0x200000
jge 0x4532d4
movzx eax, byte [esp + 0x1a]
push ecx
mov dword [esp], 0x3f800000
push eax
call fcn.004207e0
movss xmm0, dword [esp + 0x88]
lea ecx, [esp + 0xb0]
subss xmm0, dword [esp + 0x48]
add esp, 8
xor edx, edx
cmp byte [esp + 0x2c], dl
cmovne ecx, edx
push ecx
push ecx
mov dword [esp], edx
push esi
mov esi, dword [ebp + 0x10]
movss dword [esp + 0x64], xmm0
movss xmm0, dword [esp + 0x90]
subss xmm0, dword [0x48f4f0]
push esi
push eax
lea eax, [esp + 0x6c]
push eax
mov eax, dword [esp + 0x64]
push ecx
movss dword [esp + 0x78], xmm0
movss xmm0, dword [edi + 0x18c4]
mov ecx, dword [eax + 0x274]
movss dword [esp], xmm0
push dword [edi + 0x18c0]
call fcn.00433700
jmp 0x4532d7
mov esi, dword [ebp + 0x10]
cmp byte [esp + 0x1b], 0
je 0x453495
movss xmm0, dword [edi + 0x18]
addss xmm0, dword [ebx + 0xe60]
movss dword [ebx + 0xe60], xmm0
cmp byte [edi + 0xb2], 0
je 0x45333f
xorps xmm1, xmm1
comiss xmm1, xmm0
jae 0x45333f
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x58], xmm0
fld qword [esp + 0x58]
fld qword [0x4abab0]
call fcn.0047ba2a
movss xmm0, dword [0x4a7424]
fstp qword [esp + 0x58]
movsd xmm1, qword [esp + 0x58]
cvtpd2ps xmm1, xmm1
comiss xmm0, xmm1
jae 0x45333f
xor al, al
jmp 0x453341
mov al, 1
movss xmm0, dword [esp + 0x1c]
movss xmm1, dword [esp + 0x80]
movss xmm5, dword [0x48f4f4]
addss xmm0, dword [esp + 0x84]
addss xmm1, dword [esp + 0x70]
subss xmm0, dword [0x48f4f0]
subss xmm1, dword [esp + 0x40]
movss dword [esp + 0x1c], xmm0
movaps xmm2, xmm0
movss dword [esp + 0x58], xmm1
movaps xmm4, xmm1
movss dword [esp + 0xb8], xmm1
movaps xmm3, xmm0
addss xmm4, xmm5
subss xmm2, dword [edi + 0x18c4]
subss xmm3, dword [0x4abaa8]
movss dword [esp + 0xc0], xmm4
addss xmm2, dword [0x48fc20]
movss dword [esp + 0xc4], xmm3
movss dword [esp + 0xbc], xmm2
test al, al
je 0x45346c
comiss xmm3, dword [esp + 0xac]
jbe 0x45346c
movss xmm0, dword [esp + 0xb4]
comiss xmm0, xmm2
jbe 0x453466
comiss xmm4, dword [esp + 0xa8]
jbe 0x453466
movss xmm0, dword [esp + 0xb0]
comiss xmm0, xmm1
jbe 0x453466
sub esp, 8
movss dword [esp + 0xf0], xmm1
movss dword [esp + 0xf4], xmm3
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0x3f800000
push 0
call fcn.004207e0
add esp, 8
push eax
lea eax, [esp + 0xf0]
push eax
lea eax, [esp + 0xc4]
push eax
mov eax, dword [esp + 0x5c]
mov ecx, dword [eax + 0x274]
call fcn.00432710
movss xmm1, dword [esp + 0x58]
movss xmm5, dword [0x48f4f4]
movss xmm0, dword [esp + 0x1c]
cmp byte [esp + 0x44], 0
mov ebx, dword [esp + 0x48]
jne 0x453499
subss xmm0, dword [edi + 0x18c4]
subss xmm1, xmm5
movss dword [edi + 0x2d20], xmm0
movss dword [edi + 0x2d1c], xmm1
jmp 0x453499
mov ebx, dword [esp + 0x48]
cmp byte [esp + 0x2c], 0
je 0x453567
movss xmm0, dword [esp + 0x54]
addss xmm0, dword [0x48f4f0]
mov ecx, dword [0x53151c]
movss dword [esp + 0x58], xmm0
movss xmm0, dword [esp + 0x28]
addss xmm0, dword [edi + 0x18c4]
movss dword [esp + 0x5c], xmm0
mov eax, dword [ecx + 0x19b0]
mov byte [eax + 0x7c], 1
mov eax, dword [ecx + 0x19b0]
cmp byte [eax + 0x7f], 0
jne 0x45355d
movss xmm0, dword [eax + 0xc8]
movss xmm1, dword [eax + 0xcc]
movaps xmm2, xmm0
addss xmm2, dword [esp + 0x58]
addss xmm1, dword [esp + 0x5c]
movss dword [esp + 0xb8], xmm0
movss xmm0, dword [eax + 0xcc]
lea eax, [esp + 0x58]
push ecx
mov dword [esp], 0xbf800000
push eax
movss dword [esp + 0xc4], xmm0
movss dword [esp + 0xc8], xmm2
movss dword [esp + 0xcc], xmm1
call fcn.00423ad0
push 0
lea eax, [esp + 0xc4]
push 0
push eax
call fcn.00423720
add esp, 0x14
call fcn.0041eed0
call fcn.0041f360
mov ecx, dword [esp + 0x90]
mov al, byte [esp + 0x1a]
test cl, cl
je 0x45358a
test al, al
jne 0x45358a
call fcn.00429c50
mov al, byte [esp + 0x1a]
mov ecx, dword [esp + 0x90]
cmp byte [edi + 0x2d58], 0
je 0x4535ad
test cl, cl
je 0x45359b
test al, al
je 0x4535ad
push ebx
lea eax, [esp + 0x84]
push esi
push eax
call fcn.00424230
add esp, 0xc
movss xmm0, dword [esp + 0xf0]
comiss xmm0, dword [0x48f4f0]
jbe 0x453604
movss xmm0, dword [edi + 0x1560]
addss xmm0, dword [esp + 0xa0]
push 1
push 0
push dword [ebp + 8]
movss dword [esp + 0x64], xmm0
movss xmm0, dword [esp + 0xa8]
addss xmm0, dword [edi + 0x154c]
movss dword [esp + 0x68], xmm0
push dword [esp + 0x68]
push dword [esp + 0x68]
call fcn.0042b240
add esp, 0x14
mov al, byte [esp + 0x24]
mov ebx, dword [ebp + 0x1c]
test al, al
je 0x453627
test ebx, 0x200000
jne 0x453627
push dword [esp + 0x34]
call fcn.00424500
mov al, byte [esp + 0x28]
add esp, 4
movzx ecx, byte [esp + 0x18]
test bl, 0x20
pop edi
movzx eax, al
pop esi
cmovne eax, ecx
pop ebx
mov esp, ebp
pop ebp
ret