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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x178
mov eax, dword [0x61d00c]
xor eax, esp
mov dword [esp + 0x174], eax
push esi
mov esi, dword [0x625898]
mov dword [esp + 0xc0], ecx
mov ecx, esi
push edi
mov dword [esp + 0x44], edx
mov dword [esp + 0x10], ecx
mov eax, dword [ecx + 0x199c]
mov byte [eax + 0x78], 1
mov edi, dword [ecx + 0x199c]
mov dword [esp + 0x4c], edi
cmp byte [edi + 0x7b], 0
jne 0x474a01
mov ecx, dword [ebp + 0x10]
mov eax, ecx
shr eax, 0xe
mov edx, ecx
not al
shr edx, 0x14
and eax, 0xffffff01
mov dword [esp + 0x50], ecx
mov dword [esp + 0x5c], eax
and edx, 0xffffff01
mov eax, ecx
mov dword [esp + 0x40], edx
shr eax, 0xf
and eax, 0xffffff01
mov dword [esp + 0x98], eax
mov eax, ecx
shr eax, 0x10
not al
and eax, 0xffffff01
mov dword [esp + 0x64], eax
mov eax, ecx
shr eax, 0x12
and eax, 0xffffff01
mov dword [esp + 0x9c], eax
test dl, dl
je 0x4746d8
call fcn.0045a530
mov esi, dword [0x625898]
mov ecx, dword [edi + 0x1bc]
xor edx, edx
mov eax, dword [edi + 0x1c4]
push dword [eax + ecx*4 - 4]
mov ecx, dword [esp + 0xc8]
call fcn.0044ecd0
add esp, 4
mov dword [esp + 0x28], eax
cmp dword [esi + 0x19bc], eax
jne 0x47470b
mov dword [esi + 0x19c4], eax
cmp dword [esi + 0x19c0], eax
jne 0x47471a
mov byte [esi + 0x19cf], 1
mov eax, dword [esp + 0xc4]
mov ecx, eax
cmp eax, 0xffffffff
jae 0x47473e
mov dl, byte [ecx]
test dl, dl
je 0x47473e
cmp dl, 0x23
jne 0x474738
cmp byte [ecx + 1], dl
je 0x47473e
inc ecx
cmp ecx, 0xffffffff
jb 0x474728
movss xmm4, dword [esi + 0x18bc]
movss xmm0, dword [0x6151a4]
mov edi, dword [esi + 0x18b8]
movss dword [esp + 0xc0], xmm4
movss dword [esp + 0xbc], xmm0
cmp eax, ecx
jne 0x474778
xorps xmm0, xmm0
movss dword [esp + 0xc8], xmm0
jmp 0x4747e4
movss xmm3, dword [0x615198]
movaps xmm2, xmm4
push ecx
push ecx
push eax
push ecx
lea eax, [esp + 0x8c]
mov dword [esp], 0xbf800000
push eax
mov ecx, edi
call fcn.0046cd70
movss xmm1, dword [esp + 0x7c]
xorps xmm0, xmm0
comiss xmm1, xmm0
jbe 0x4747bf
movss xmm0, dword [esp + 0xc0]
divss xmm0, dword [edi]
subss xmm1, xmm0
xorps xmm0, xmm0
addss xmm1, dword [0x6150c0]
movss xmm4, dword [esp + 0x80]
cvttss2si eax, xmm1
movd xmm1, eax
cvtdq2ps xmm1, xmm1
movss dword [esp + 0xc8], xmm1
cmp byte [esp + 0x40], 0
je 0x4747fb
movss xmm4, dword [esi + 0x18bc]
mulss xmm4, dword [0x615138]
mov esi, dword [esi + 0x199c]
movss xmm5, dword [0x6150c8]
movss xmm3, dword [esi + 0x168]
comiss xmm0, xmm3
jbe 0x474879
movss xmm2, dword [esi + 0xc4]
movss xmm1, dword [esi + 0x210]
mov edi, dword [esi + 0x1b8]
subss xmm2, dword [esi + 0xc]
subss xmm1, dword [esi + 0xc]
test edi, edi
je 0x47486a
mov edx, dword [edi + 0xc]
movss xmm1, dword [edi + 0x18]
subss xmm1, dword [edi + 0x14]
lea eax, [edx + 1]
test eax, eax
cmovns edx, eax
mov eax, dword [edi + 0x34]
lea ecx, [edx*8]
sub ecx, edx
mulss xmm1, dword [eax + ecx*4]
addss xmm1, dword [edi + 0x14]
subss xmm1, dword [esi + 0x3c]
subss xmm1, xmm2
addss xmm1, xmm3
movaps xmm3, xmm5
maxss xmm3, xmm1
mov eax, dword [ebp + 0xc]
lea ecx, [esp + 0x7c]
mov edi, dword [esp + 0x10]
push dword [eax + 4]
movss xmm0, dword [edi + 0x1550]
push dword [eax]
cvttss2si eax, xmm3
movaps xmm2, xmm0
addss xmm2, xmm0
movd xmm1, eax
cvtdq2ps xmm1, xmm1
addss xmm2, xmm4
call fcn.00451c70
mov esi, dword [esp + 0x54]
xorps xmm5, xmm5
movss xmm1, dword [esp + 0x84]
add esp, 8
movss xmm2, dword [esp + 0x80]
movss dword [esp + 0x94], xmm1
movss xmm3, dword [esi + 0xc4]
movss xmm4, dword [esi + 0xc8]
movaps xmm0, xmm3
addss xmm0, xmm1
movss dword [esp + 0x74], xmm2
movaps xmm1, xmm4
movss dword [esp + 0xd0], xmm3
addss xmm1, xmm2
movss dword [esp + 0xd4], xmm4
movss xmm2, dword [esp + 0xc8]
comiss xmm2, xmm5
movss dword [esp + 0xd8], xmm0
movss dword [esp + 0xdc], xmm1
jbe 0x474931
addss xmm2, dword [edi + 0x1564]
jmp 0x474934
xorps xmm2, xmm2
cmp byte [esp + 0x40], 0
addss xmm0, xmm2
addss xmm1, xmm5
movss dword [esp + 0x140], xmm3
movss dword [esp + 0x144], xmm4
mov dword [esp + 0x68], esi
movss dword [esp + 0x148], xmm0
movss dword [esp + 0x14c], xmm1
je 0x474a59
mov edx, dword [esp + 0x28]
lea eax, [esp + 0xd0]
push eax
lea ecx, [esp + 0x144]
call fcn.00451770
movss xmm0, dword [esp + 0xdc]
lea edx, [esp + 0x80]
movss xmm1, dword [esp + 0xd4]
mov ecx, dword [esp + 0x2c]
movss dword [esp + 0xc4], xmm0
subss xmm0, xmm1
movss dword [esp + 0x90], xmm1
movss xmm1, dword [esp + 0xd8]
movss dword [esp + 0x88], xmm1
movss dword [esp + 0x80], xmm0
movss xmm0, dword [esp + 0xe0]
subss xmm0, xmm1
movss dword [esp + 0x84], xmm0
call fcn.004546e0
add esp, 4
test al, al
jne 0x474a17
call fcn.00454850
call fcn.0045a670
xor al, al
pop edi
pop esi
mov ecx, dword [esp + 0x174]
xor ecx, esp
call fcn.004acfb6
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x625898]
movss xmm0, dword [esp + 0x94]
mov eax, dword [ecx + 0x199c]
mov byte [eax + 0x78], 1
mov ecx, dword [ecx + 0x199c]
mov dword [esp + 0x68], ecx
subss xmm0, dword [ecx + 0x6c]
mov eax, dword [ecx + 0x134]
or dword [ecx + 0x13c], eax
movss dword [esp + 0x94], xmm0
jmp 0x474ada
subss xmm1, xmm4
subss xmm0, xmm3
lea ecx, [esp + 0x7c]
movss dword [esp + 0x80], xmm1
movss xmm1, dword [edi + 0x1550]
movss dword [esp + 0x7c], xmm0
call fcn.00451600
mov edx, dword [esp + 0x28]
lea eax, [esp + 0xd0]
push eax
lea ecx, [esp + 0x144]
call fcn.00451770
add esp, 4
test al, al
je 0x474a01
movss xmm0, dword [esp + 0xd8]
movss dword [esp + 0xc0], xmm0
movss xmm0, dword [esp + 0xd4]
movss dword [esp + 0x84], xmm0
movss xmm0, dword [esp + 0xd0]
movss dword [esp + 0x8c], xmm0
mov edx, dword [esp + 0x28]
lea ecx, [esp + 0xd0]
call fcn.004519b0
mov byte [esp + 0x3a], al
test al, al
je 0x474afc
mov dword [edi + 0x1c58], 1
cmp byte [esp + 0x98], 0
je 0x474ba0
mov esi, dword [edi + 0x18b8]
cmp dword [esi + 0x28], 0x2a
jg 0x474b1b
mov edi, dword [esi + 0x34]
jmp 0x474b3a
mov eax, dword [esi + 0x30]
mov ecx, 0xffff
movzx eax, word [eax + 0x54]
cmp ax, cx
jne 0x474b31
mov edi, dword [esi + 0x34]
jmp 0x474b3a
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x18]
lea edi, [eax + ecx*8]
mov eax, dword [esi]
mov edx, dword [esp + 0x10]
add edx, 0x2b84
mov dword [edx], eax
mov eax, dword [esi + 4]
mov esi, dword [esp + 0x10]
mov dword [edx + 4], eax
mov eax, dword [esi + 0x18b8]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [edx + 8], ecx
mov ecx, edx
mov dword [edx + 0xc], eax
mov eax, dword [esi + 0x18b8]
mov eax, dword [eax + 0x48]
mov dword [edx + 0x48], eax
mov eax, dword [esi + 0x18b8]
mov eax, dword [eax + 0x4c]
mov dword [edx + 0x4c], eax
mov eax, dword [esi + 0x18b8]
mov eax, dword [eax + 0x44]
mov dword [edx + 0x44], eax
mov dword [edx + 0x34], edi
mov eax, dword [edi + 4]
mov dword [edx + 0x38], eax
call fcn.00459ff0
mov esi, dword [esp + 0x4c]
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x10]
mov ecx, esi
add edi, 0x1d14
test dword [esp + 0x50], 0x440
mov dword [esp + 0x90], edi
sete al
movzx eax, al
push eax
call fcn.00451b20
add esp, 4
mov byte [esp + 0x57], al
test al, al
je 0x474c4f
mov ecx, dword [esi + 0x324]
cmp ecx, dword [esi + 0x32c]
jne 0x474c4f
mov byte [esp + 0x19], 1
mov byte [esp + 0x3b], 0
cmp byte [esp + 0x3a], 0
mov eax, dword [esp + 0x10]
je 0x474c03
cmp byte [eax + 0x3f8], 0
mov byte [esp + 0x17], 1
jne 0x474c08
mov byte [esp + 0x17], 0
cmp byte [esp + 0x40], 0
je 0x474c64
cmp dword [eax + 0x19bc], 0
jne 0x474c64
cmp dword [edi], edx
jne 0x474c64
mov eax, dword [esp + 0x68]
xor edx, edx
mov ecx, dword [eax + 0x1bc]
mov eax, dword [eax + 0x1c4]
push dword [eax + ecx*4 - 4]
mov ecx, str.SCROLLY
call fcn.0044ecd0
mov edx, dword [esp + 0x14]
add esp, 4
cmp dword [edx + 0x19c0], eax
jne 0x474c68
mov cl, 1
jmp 0x474c6a
mov byte [esp + 0x19], 0
test al, al
je 0x474be5
mov byte [esp + 0x3b], 1
mov byte [esp + 0x19], 0
jmp 0x474bea
mov edx, dword [esp + 0x10]
xor cl, cl
mov eax, dword [edx + 0x19bc]
mov edx, dword [esp + 0x28]
cmp eax, edx
je 0x474cb2
mov esi, dword [esp + 0x10]
cmp dword [esi + 0x1abc], edx
mov esi, dword [esp + 0x4c]
je 0x474ca5
mov esi, dword [esp + 0x10]
cmp dword [esi + 0x1ab0], edx
mov esi, dword [esp + 0x4c]
jne 0x474cb2
mov edx, dword [esp + 0x10]
cmp dword [edx + 0x1acc], 3
jne 0x474cb2
mov dl, 1
mov byte [esp + 0x37], 0
mov byte [esp + 0x39], dl
jmp 0x474cc3
xor dl, dl
mov byte [esp + 0x37], 0
mov byte [esp + 0x39], dl
cmp eax, dword [esp + 0x28]
je 0x474cda
test byte [esp + 0x50], 0x10
jne 0x474cce
test dl, dl
je 0x474cda
cmp byte [esp + 0x40], 0
mov byte [esp + 0x30], 1
je 0x474cdf
mov byte [esp + 0x30], 0
cmp byte [esp + 0x57], 0
mov dword [esp + 0x78], 0x20
jne 0x474d17
cmp byte [esp + 0x17], 0
jne 0x474d17
test cl, cl
jne 0x474d17
test dl, dl
jne 0x474d17
mov ecx, dword [esp + 0x10]
cmp byte [ecx + 0x3f8], dl
je 0x474eea
mov byte [esp + 0x37], 1
jmp 0x474eea
mov ecx, dword [esp + 0x28]
cmp eax, ecx
je 0x474ebe
mov esi, dword [esp + 0x44]
mov eax, dword [edi + 0x2c]
mov dword [esp + 0x58], eax
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x474d31
mov eax, dword [edi + 8]
sub esi, ecx
cmp eax, 0x21
jge 0x474d6f
test eax, eax
je 0x474d55
cdq
sub eax, edx
lea edx, [edi + 4]
mov ecx, eax
sar ecx, 1
add ecx, dword [edx + 4]
jmp 0x474d5d
mov ecx, 8
lea edx, [edi + 4]
mov eax, 0x21
cmp ecx, eax
cmovg eax, ecx
mov ecx, edx
push eax
call fcn.00460a60
inc esi
mov dword [edi + 4], 0x21
push esi
lea ecx, [edi + 0x10]
call fcn.00460930
push esi
mov esi, dword [esp + 0x48]
push esi
push dword [edi + 0x18]
call fcn.005649a0
mov edx, dword [esp + 0x84]
lea eax, [esp + 0x30]
add esp, 0xc
mov dword [esp + 0x24], 0
push eax
push ecx
mov ecx, dword [edi + 0xc]
push esi
call fcn.0044f180
mov ecx, dword [esp + 0x30]
add esp, 0xc
sub ecx, esi
mov dword [edi + 0xe5c], 0xbe99999a
mov dword [edi + 0x28], ecx
mov edx, eax
mov ecx, dword [esp + 0x28]
mov dword [edi + 0x2c], edx
cmp dword [edi], ecx
jne 0x474e04
cmp dword [esp + 0x58], edx
jne 0x474e04
cmp dword [edi + 0x38], edx
mov ecx, edx
cmovl ecx, dword [edi + 0x38]
cmp dword [edi + 0x3c], edx
mov dword [edi + 0x38], ecx
mov ecx, edx
cmovl ecx, dword [edi + 0x3c]
cmp dword [edi + 0x40], edx
mov dword [edi + 0x3c], ecx
cmovl edx, dword [edi + 0x40]
mov ecx, dword [esp + 0x28]
mov dword [edi + 0x40], edx
mov edx, dword [esp + 0x40]
jmp 0x474e74
mov edx, dword [esp + 0x40]
mov al, dl
mov dword [edi], ecx
xor al, 1
mov dword [edi + 0x34], 0
mov dword [edi + 0xe4e], 0x630000
mov dword [edi + 0xe54], 0
mov dword [edi + 0xe58], 0x3e7
mov dword [edi + 0x3c], 0
mov dword [edi + 0x40], 0
mov dword [edi + 0x38], 0
mov dword [edi + 0x44], 0x10000
mov dword [edi + 0x4c], 0
mov byte [edi + 0x48], al
test dl, dl
jne 0x474e74
mov eax, dword [esp + 0x30]
mov esi, 1
cmp byte [esp + 0x19], dl
movzx eax, al
cmovne eax, esi
mov dword [esp + 0x30], eax
test dword [esp + 0x50], 0x2000
je 0x474e82
mov byte [edi + 0x44], 1
test dl, dl
jne 0x474eba
cmp byte [esp + 0x3b], dl
jne 0x474e9e
cmp byte [esp + 0x17], dl
je 0x474eba
mov eax, dword [esp + 0x10]
cmp byte [eax + 0xfc], dl
je 0x474eba
mov edx, dword [esp + 0x4c]
mov byte [esp + 0x30], 1
call fcn.00451480
call fcn.00451540
mov ecx, edx
call fcn.00459de0
jmp 0x474ed8
mov esi, dword [esp + 0x4c]
mov edx, esi
call fcn.00451480
call fcn.00451540
mov ecx, esi
call fcn.00459de0
cmp byte [esp + 0x40], 0
jne 0x474eea
test byte [esp + 0x50], 0x80
jne 0x474eea
mov ecx, dword [esp + 0x10]
or dword [ecx + 0x19d4], 0xc
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
movss xmm0, dword [0x61508c]
mov byte [esp + 0x57], 0
mov byte [esp + 0x3b], 0
mov dword [esp + 0x88], 0
cmp dword [eax + 0x19bc], ecx
jne 0x4752ea
cmp byte [esp + 0x5c], 0
mov ecx, eax
jne 0x474fd2
cmp byte [ecx + 0x19cc], 0
jne 0x474fd2
mov esi, dword [edi + 8]
lea eax, [edi + 4]
cmp esi, 0x21
jge 0x474f74
test esi, esi
je 0x474f51
mov eax, esi
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
add ecx, esi
jmp 0x474f56
mov ecx, 8
mov eax, 0x21
cmp ecx, eax
cmovg eax, ecx
lea ecx, [edi + 4]
push eax
call fcn.00460a60
movss xmm0, dword [0x61508c]
lea eax, [edi + 4]
mov dword [eax], 0x21
mov edx, 0x21
lea eax, [esp + 0x24]
mov dword [esp + 0x24], 0
push eax
push ecx
push dword [esp + 0x4c]
mov ecx, dword [edi + 0xc]
call fcn.0044f180
mov ecx, dword [esp + 0x30]
mov esi, eax
sub ecx, dword [esp + 0x50]
add esp, 0xc
cmp dword [edi + 0x38], esi
mov edx, esi
mov dword [edi + 0x28], ecx
mov ecx, esi
cmovl edx, dword [edi + 0x38]
cmp dword [edi + 0x3c], esi
mov dword [edi + 0x2c], esi
cmovl ecx, dword [edi + 0x3c]
cmp dword [edi + 0x40], esi
mov dword [edi + 0x3c], ecx
cmovl esi, dword [edi + 0x40]
mov ecx, dword [esp + 0x10]
mov dword [edi + 0x38], edx
mov dword [edi + 0x40], esi
mov eax, dword [edi + 0x28]
mov dword [edi + 0x30], 0x20
mov dword [edi + 0xe68], 0
mov dword [edi + 0xe6c], 0
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x50]
mov dword [edi + 0xe64], eax
cmp byte [ecx + 0xec], 0
mov dword [ecx + 0x2e60], 1
sete al
cmp byte [esp + 0x40], 0
mov byte [ecx + 0x19cd], al
movss xmm7, dword [ecx + 0xe4]
subss xmm7, dword [esp + 0x8c]
subss xmm7, dword [ecx + 0x154c]
addss xmm7, dword [edi + 0x34]
je 0x47505e
mov eax, dword [esp + 0x68]
movss xmm2, dword [ecx + 0xe8]
subss xmm2, dword [eax + 0xc8]
subss xmm2, dword [ecx + 0x1550]
jmp 0x47506a
movss xmm2, dword [ecx + 0x18bc]
mulss xmm2, xmm0
cmp byte [esp + 0x30], 0
mov al, byte [ecx + 0xbd]
mov byte [esp + 0x1b], al
jne 0x4751f0
mov cl, byte [esp + 0x3a]
mov edx, dword [esp + 0x10]
test cl, cl
je 0x47509b
test al, al
jne 0x475105
cmp byte [edx + 0x3fd], al
jne 0x4751f0
cmp byte [edx + 0x3f8], 0
lea esi, [edi + 0xe61]
mov al, byte [esi]
je 0x47515f
test al, al
jne 0x47515f
test cl, cl
je 0x4750fe
cmp byte [edi + 0x48], al
je 0x4750dd
push 0
mov edx, edi
lea ecx, [esp + 0x144]
call fcn.00472bb0
movss xmm2, dword [esp + 0x150]
add esp, 4
movaps xmm1, xmm7
mov ecx, edi
call fcn.00472ec0
mov dword [edi + 0x38], eax
mov dword [edi + 0x3c], eax
mov dword [edi + 0x40], eax
mov byte [edi + 0x47], 0
mov dword [edi + 0xe5c], 0xbe99999a
mov ecx, esi
jmp 0x47520d
cmp byte [edx + 0x3fd], 0
je 0x47509b
push 0x1000c
lea edx, [edi + 0x38]
mov ecx, edi
call fcn.004732f0
add esp, 4
mov byte [edi + 0xe60], 1
lea edx, [edi + 0x38]
mov dword [edi + 0xe5c], 0xbe99999a
mov ecx, edi
push 0x3000d
call fcn.004732f0
add esp, 4
mov byte [edi + 0xe60], 1
mov dword [edi + 0xe5c], 0xbe99999a
lea ecx, [edi + 0xe61]
jmp 0x47520d
cmp byte [edx + 0xec], 0
mov ecx, esi
je 0x47520d
test al, al
jne 0x47520d
movss xmm0, dword [edx + 0x398]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x47519b
movss xmm0, dword [edx + 0x39c]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x47520d
cmp byte [edi + 0x48], 0
je 0x4751bd
push 0
mov edx, edi
lea ecx, [esp + 0x144]
call fcn.00472bb0
movss xmm2, dword [esp + 0x150]
add esp, 4
mov eax, dword [edi + 0x3c]
cmp eax, dword [edi + 0x40]
jne 0x4751cb
mov eax, dword [edi + 0x38]
mov dword [edi + 0x3c], eax
movaps xmm1, xmm7
mov ecx, edi
call fcn.00472ec0
mov dword [edi + 0x40], eax
mov ecx, esi
mov dword [edi + 0x38], eax
mov dword [edi + 0xe5c], 0xbe99999a
mov byte [edi + 0xe60], 1
jmp 0x47520d
mov eax, dword [edi + 0x2c]
lea ecx, [edi + 0xe61]
mov dword [edi + 0x3c], 0
mov dword [edi + 0x40], eax
mov dword [edi + 0x38], eax
mov byte [edi + 0x47], 0
mov byte [ecx], 1
cmp byte [ecx], 0
je 0x475222
mov eax, dword [esp + 0x10]
cmp byte [eax + 0xec], 0
jne 0x475222
mov byte [ecx], 0
mov ecx, dword [esp + 0x10]
cmp word [ecx + 0x300], 0
lea esi, [ecx + 0x300]
je 0x4752ea
cmp byte [ecx + 0xfc], 0
je 0x475250
cmp byte [ecx + 0xfe], 0
je 0x4752d0
cmp byte [esp + 0x1b], 0
je 0x475260
cmp byte [ecx + 0xff], 0
jne 0x4752d0
cmp byte [esp + 0x5c], 0
je 0x4752d0
cmp byte [esp + 0x39], 0
jne 0x4752d0
mov dword [esp + 0x58], 0
movzx eax, word [esi]
test ax, ax
je 0x4752cc
mov edx, dword [esp + 0x50]
lea ecx, [esp + 0x24]
sub esp, 8
mov dword [esp + 0x2c], eax
call fcn.00474450
add esp, 8
test al, al
je 0x4752bb
push dword [esp + 0x24]
lea edx, [edi + 0x38]
mov ecx, edi
call fcn.004732f0
add esp, 4
mov byte [edi + 0xe60], 1
mov dword [edi + 0xe5c], 0xbe99999a
mov eax, dword [esp + 0x58]
add esi, 2
inc eax
mov dword [esp + 0x58], eax
cmp eax, 0x11
jl 0x475276
mov ecx, dword [esp + 0x10]
xorps xmm0, xmm0
movups xmmword [ecx + 0x300], xmm0
movups xmmword [ecx + 0x310], xmm0
mov word [ecx + 0x320], 0
mov edx, dword [esp + 0x10]
xor cl, cl
mov eax, dword [esp + 0x28]
mov byte [esp + 0xf], cl
cmp dword [edx + 0x19bc], eax
jne 0x47678e
cmp byte [edx + 0x19cc], cl
jne 0x47678e
cmp byte [esp + 0x37], cl
jne 0x47678e
mov ecx, edx
xor esi, esi
mov edx, 0x20000
mov al, byte [ecx + 0xfd]
mov ah, byte [ecx + 0xbd]
test al, al
mov byte [esp + 0x19], al
mov al, byte [ecx + 0xfc]
cmovne esi, edx
mov byte [esp + 0x73], ah
test ah, ah
je 0x47536c
cmp byte [ecx + 0xff], 0
lea edx, [ecx + 0xff]
mov dword [esp + 0x48], edx
je 0x475364
test al, al
jne 0x475364
mov ecx, 1
jmp 0x475366
xor ecx, ecx
test ecx, ecx
je 0x4753a3
jmp 0x475381
add ecx, 0xff
test al, al
je 0x47539d
cmp byte [ecx], 0
jne 0x47539d
mov edx, ecx
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x10]
cmp byte [ecx + 0xfe], 0
mov ch, byte [esp + 0x19]
jne 0x4753a7
test ch, ch
jne 0x4753a7
mov byte [esp + 0x22], 1
jmp 0x4753ac
mov edx, ecx
mov dword [esp + 0x48], edx
mov ch, byte [esp + 0x19]
mov byte [esp + 0x22], 0
mov cl, al
test ah, ah
je 0x4753f2
mov edx, dword [esp + 0x10]
cmp byte [edx + 0xff], 0
mov edx, dword [esp + 0x48]
je 0x4753f2
test ch, ch
je 0x4753f2
mov eax, dword [esp + 0x10]
mov ah, byte [eax + 0xfc]
mov byte [esp + 0x18], ah
mov cl, ah
test ah, ah
jne 0x4753f2
mov edx, dword [esp + 0x10]
cmp byte [edx + 0xfe], ah
mov edx, dword [esp + 0x48]
jne 0x4753f2
mov byte [esp + 0x38], 1
jmp 0x475408
cmp byte [esp + 0x73], 0
mov ah, cl
mov byte [esp + 0x18], cl
mov byte [esp + 0x38], 0
je 0x4754a7
mov edx, dword [esp + 0x10]
mov al, byte [edx + 0xfe]
mov edx, dword [esp + 0x48]
mov byte [esp + 0x1a], al
cmp byte [edx], 0
je 0x4754b6
test ah, ah
jne 0x4754b6
test al, al
jne 0x4754b6
mov dl, 1
cmp byte [esp + 0x19], 0
mov cl, dl
mov byte [esp + 0x39], cl
mov byte [esp + 0x21], cl
mov byte [esp + 0x1a], al
mov byte [esp + 0x17], 0
je 0x4754f1
mov byte [esp + 0x21], cl
mov byte [esp + 0x1a], al
mov byte [esp + 0x17], 0
test ah, ah
jne 0x4754f1
mov edx, dword [esp + 0x10]
mov byte [esp + 0x21], cl
mov byte [esp + 0x1a], al
mov byte [esp + 0x17], ah
cmp byte [edx + 0xfe], ah
jne 0x4754f1
mov edx, dword [esp + 0x48]
mov byte [esp + 0x21], cl
mov byte [esp + 0x1a], al
mov byte [esp + 0x17], ah
cmp byte [edx], ah
jne 0x4754f1
mov byte [esp + 0x23], 1
mov byte [esp + 0x21], cl
mov byte [esp + 0x1a], al
mov byte [esp + 0x17], ah
jmp 0x4754f6
mov al, ah
mov byte [esp + 0x1a], ah
mov byte [esp + 0x38], 0
mov byte [esp + 0x18], ah
xor dl, dl
mov byte [esp + 0x21], dl
test ah, ah
je 0x475435
test ch, ch
jne 0x475435
mov ecx, dword [esp + 0x10]
cmp byte [ecx + 0xfe], dl
jne 0x475435
mov ecx, dword [esp + 0x48]
cmp byte [ecx], dl
jne 0x475435
mov byte [esp + 0x17], 1
mov byte [esp + 0x39], dl
mov byte [esp + 0x23], 0
cmp byte [esp + 0x22], 0
xorps xmm4, xmm4
mov edx, dword [0x625898]
je 0x47558b
mov eax, dword [edx + 0x7c]
test eax, eax
js 0x47558b
movss xmm1, dword [edx + eax*4 + 0x470]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jnp 0x475613
movss xmm2, dword [edx + 0x88]
comiss xmm1, xmm2
jbe 0x47558b
movss xmm3, dword [edx + 0x8c]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jp 0x47554c
mov eax, 1
jmp 0x475583
comiss xmm2, xmm1
jae 0x475581
comiss xmm4, xmm3
jae 0x475581
movaps xmm0, xmm1
subss xmm1, xmm2
subss xmm0, dword [edx + 0x18]
divss xmm1, xmm3
subss xmm0, xmm2
cvttss2si ecx, xmm1
divss xmm0, xmm3
cvttss2si eax, xmm0
sub ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
jmp 0x475583
xor eax, eax
test eax, eax
jg 0x475613
cmp byte [esp + 0x23], 0
je 0x47563a
mov eax, dword [edx + 0x5c]
test eax, eax
js 0x47563a
movss xmm1, dword [edx + eax*4 + 0x470]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jnp 0x475613
movss xmm2, dword [edx + 0x88]
comiss xmm1, xmm2
jbe 0x47563a
movss xmm3, dword [edx + 0x8c]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jp 0x4755d8
mov eax, 1
jmp 0x47560f
comiss xmm2, xmm1
jae 0x47560d
comiss xmm4, xmm3
jae 0x47560d
movaps xmm0, xmm1
subss xmm1, xmm2
subss xmm0, dword [edx + 0x18]
divss xmm1, xmm3
subss xmm0, xmm2
cvttss2si ecx, xmm1
divss xmm0, xmm3
cvttss2si eax, xmm0
sub ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
jmp 0x47560f
xor eax, eax
test eax, eax
jle 0x47563a
cmp byte [esp + 0x5c], 0
je 0x47563a
cmp byte [esp + 0x98], 0
jne 0x47563a
cmp byte [esp + 0x40], 0
je 0x475633
mov eax, dword [edi + 0x3c]
cmp eax, dword [edi + 0x40]
je 0x47563a
mov byte [esp + 0x3a], 1
jmp 0x47563f
mov byte [esp + 0x3a], 0
cmp byte [esp + 0x22], 0
je 0x4756cb
mov eax, dword [edx + 0x74]
test eax, eax
js 0x4756cb
movss xmm1, dword [edx + eax*4 + 0x470]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jnp 0x475753
movss xmm2, dword [edx + 0x88]
comiss xmm1, xmm2
jbe 0x4756cb
movss xmm3, dword [edx + 0x8c]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jp 0x47568c
mov eax, 1
jmp 0x4756c3
comiss xmm2, xmm1
jae 0x4756c1
comiss xmm4, xmm3
jae 0x4756c1
movaps xmm0, xmm1
subss xmm1, xmm2
subss xmm0, dword [edx + 0x18]
divss xmm1, xmm3
subss xmm0, xmm2
cvttss2si ecx, xmm1
divss xmm0, xmm3
cvttss2si eax, xmm0
sub ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
jmp 0x4756c3
xor eax, eax
test eax, eax
jg 0x475753
cmp byte [esp + 0x17], 0
je 0x475773
mov eax, dword [edx + 0x58]
test eax, eax
js 0x475773
movss xmm1, dword [edx + eax*4 + 0x470]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jnp 0x475753
movss xmm2, dword [edx + 0x88]
comiss xmm1, xmm2
jbe 0x475773
movss xmm3, dword [edx + 0x8c]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jp 0x475718
mov eax, 1
jmp 0x47574f
comiss xmm2, xmm1
jae 0x47574d
comiss xmm4, xmm3
jae 0x47574d
movaps xmm0, xmm1
subss xmm1, xmm2
subss xmm0, dword [edx + 0x18]
divss xmm1, xmm3
subss xmm0, xmm2
cvttss2si ecx, xmm1
divss xmm0, xmm3
cvttss2si eax, xmm0
sub ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
jmp 0x47574f
xor eax, eax
test eax, eax
jle 0x475773
cmp byte [esp + 0x98], 0
jne 0x475773
cmp byte [esp + 0x40], 0
je 0x47576c
mov eax, dword [edi + 0x3c]
cmp eax, dword [edi + 0x40]
je 0x475773
mov byte [esp + 0x17], 1
jmp 0x475778
mov byte [esp + 0x17], 0
cmp byte [esp + 0x22], 0
je 0x475804
mov eax, dword [edx + 0x78]
test eax, eax
js 0x475804
movss xmm1, dword [edx + eax*4 + 0x470]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jnp 0x47588c
movss xmm2, dword [edx + 0x88]
comiss xmm1, xmm2
jbe 0x475804
movss xmm3, dword [edx + 0x8c]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jp 0x4757c5
mov eax, 1
jmp 0x4757fc
comiss xmm2, xmm1
jae 0x4757fa
comiss xmm4, xmm3
jae 0x4757fa
movaps xmm0, xmm1
subss xmm1, xmm2
subss xmm0, dword [edx + 0x18]
divss xmm1, xmm3
subss xmm0, xmm2
cvttss2si ecx, xmm1
divss xmm0, xmm3
cvttss2si eax, xmm0
sub ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
jmp 0x4757fc
xor eax, eax
test eax, eax
jg 0x47588c
cmp byte [esp + 0x23], 0
je 0x475898
mov eax, dword [edx + 0x58]
test eax, eax
js 0x475898
movss xmm1, dword [edx + eax*4 + 0x470]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jnp 0x47588c
movss xmm2, dword [edx + 0x88]
comiss xmm1, xmm2
jbe 0x475898
movss xmm3, dword [edx + 0x8c]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jp 0x475851
mov eax, 1
jmp 0x475888
comiss xmm2, xmm1
jae 0x475886
comiss xmm4, xmm3
jae 0x475886
movaps xmm0, xmm1
subss xmm1, xmm2
subss xmm0, dword [edx + 0x18]
divss xmm1, xmm3
subss xmm0, xmm2
cvttss2si ecx, xmm1
divss xmm0, xmm3
cvttss2si eax, xmm0
sub ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
jmp 0x475888
xor eax, eax
test eax, eax
jle 0x475898
cmp byte [esp + 0x5c], 0
mov byte [esp + 0x1b], 1
jne 0x47589d
mov byte [esp + 0x1b], 0
mov cl, byte [esp + 0x22]
test cl, cl
je 0x475942
mov eax, dword [edx + 0x84]
test eax, eax
js 0x475942
movss xmm1, dword [edx + eax*4 + 0x470]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jnp 0x47592d
movss xmm2, dword [edx + 0x88]
comiss xmm1, xmm2
jbe 0x475942
movss xmm3, dword [edx + 0x8c]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jp 0x4758ee
mov eax, 1
jmp 0x475929
comiss xmm2, xmm1
jae 0x475927
comiss xmm4, xmm3
jae 0x475927
movaps xmm0, xmm1
subss xmm1, xmm2
subss xmm0, dword [edx + 0x18]
divss xmm1, xmm3
subss xmm0, xmm2
cvttss2si ecx, xmm1
divss xmm0, xmm3
cvttss2si eax, xmm0
sub ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
mov cl, byte [esp + 0x22]
jmp 0x475929
xor eax, eax
test eax, eax
jle 0x475942
cmp byte [esp + 0x5c], 0
je 0x475942
cmp byte [esp + 0x64], 0
je 0x475942
mov byte [esp + 0x23], 1
jmp 0x47594f
mov byte [esp + 0x23], 0
test cl, cl
je 0x4759d3
mov eax, dword [edx + 0x80]
test eax, eax
js 0x4759d3
movss xmm1, dword [edx + eax*4 + 0x470]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jnp 0x475a5e
movss xmm2, dword [edx + 0x88]
comiss xmm1, xmm2
jbe 0x4759d3
movss xmm3, dword [edx + 0x8c]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jp 0x475994
mov eax, 1
jmp 0x4759cb
comiss xmm2, xmm1
jae 0x4759c9
comiss xmm4, xmm3
jae 0x4759c9
movaps xmm0, xmm1
subss xmm1, xmm2
subss xmm0, dword [edx + 0x18]
divss xmm1, xmm3
subss xmm0, xmm2
cvttss2si ecx, xmm1
divss xmm0, xmm3
cvttss2si eax, xmm0
sub ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
jmp 0x4759cb
xor eax, eax
test eax, eax
jg 0x475a5e
cmp byte [esp + 0x38], 0
je 0x475a71
mov eax, dword [edx + 0x84]
test eax, eax
js 0x475a71
movss xmm1, dword [edx + eax*4 + 0x470]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jnp 0x475a5e
movss xmm2, dword [edx + 0x88]
comiss xmm1, xmm2
jbe 0x475a71
movss xmm3, dword [edx + 0x8c]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jp 0x475a23
mov eax, 1
jmp 0x475a5a
comiss xmm2, xmm1
jae 0x475a58
comiss xmm4, xmm3
jae 0x475a58
movaps xmm0, xmm1
subss xmm1, xmm2
subss xmm0, dword [edx + 0x18]
divss xmm1, xmm3
subss xmm0, xmm2
cvttss2si ecx, xmm1
divss xmm0, xmm3
cvttss2si eax, xmm0
sub ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
jmp 0x475a5a
xor eax, eax
test eax, eax
jle 0x475a71
cmp byte [esp + 0x5c], 0
je 0x475a71
cmp byte [esp + 0x64], 0
mov byte [esp + 0x38], 1
jne 0x475a76
mov byte [esp + 0x38], 0
mov eax, dword [edx + 0x38]
test eax, eax
js 0x475b39
movss xmm1, dword [edx + eax*4 + 0x470]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jnp 0x475af7
movss xmm2, dword [edx + 0x88]
comiss xmm1, xmm2
jbe 0x475b39
movss xmm3, dword [edx + 0x8c]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jp 0x475abc
mov eax, 1
jmp 0x475af3
comiss xmm2, xmm1
jae 0x475af1
comiss xmm4, xmm3
jae 0x475af1
movaps xmm0, xmm1
subss xmm1, xmm2
subss xmm0, dword [edx + 0x18]
divss xmm1, xmm3
subss xmm0, xmm2
cvttss2si ecx, xmm1
divss xmm0, xmm3
cvttss2si eax, xmm0
sub ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
jmp 0x475af3
xor eax, eax
test eax, eax
jle 0x475b39
cmp byte [esp + 0x39], 0
je 0x475b15
mov eax, 0x10004
lea edx, [edi + 0x38]
or eax, esi
mov ecx, edi
push eax
call fcn.004732f0
jmp 0x476772
cmp byte [esp + 0x1a], 0
lea edx, [edi + 0x38]
mov ecx, 0x1000c
mov eax, 0x10000
cmovne eax, ecx
mov ecx, edi
or eax, esi
push eax
call fcn.004732f0
jmp 0x476772
mov eax, dword [edx + 0x3c]
test eax, eax
js 0x475bfc
movss xmm1, dword [edx + eax*4 + 0x470]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jnp 0x475bba
movss xmm2, dword [edx + 0x88]
comiss xmm1, xmm2
jbe 0x475bfc
movss xmm3, dword [edx + 0x8c]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jp 0x475b7f
mov eax, 1
jmp 0x475bb6
comiss xmm2, xmm1
jae 0x475bb4
comiss xmm4, xmm3
jae 0x475bb4
movaps xmm0, xmm1
subss xmm1, xmm2
subss xmm0, dword [edx + 0x18]
divss xmm1, xmm3
subss xmm0, xmm2
cvttss2si ecx, xmm1
divss xmm0, xmm3
cvttss2si eax, xmm0
sub ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
jmp 0x475bb6
xor eax, eax
test eax, eax
jle 0x475bfc
cmp byte [esp + 0x39], 0
je 0x475bd8
mov eax, 0x10005
lea edx, [edi + 0x38]
or eax, esi
mov ecx, edi
push eax
call fcn.004732f0
jmp 0x476772
cmp byte [esp + 0x1a], 0
lea edx, [edi + 0x38]
mov ecx, 0x1000d
mov eax, 0x10001
cmovne eax, ecx
mov ecx, edi
or eax, esi
push eax
call fcn.004732f0
jmp 0x476772
mov eax, dword [edx + 0x40]
test eax, eax
js 0x475ce3
movss xmm1, dword [edx + eax*4 + 0x470]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jnp 0x475c7d
movss xmm2, dword [edx + 0x88]
comiss xmm1, xmm2
jbe 0x475ce3
movss xmm3, dword [edx + 0x8c]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jp 0x475c42
mov eax, 1
jmp 0x475c79
comiss xmm2, xmm1
jae 0x475c77
comiss xmm4, xmm3
jae 0x475c77
movaps xmm0, xmm1
subss xmm1, xmm2
subss xmm0, dword [edx + 0x18]
divss xmm1, xmm3
subss xmm0, xmm2
cvttss2si ecx, xmm1
divss xmm0, xmm3
cvttss2si eax, xmm0
sub ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
jmp 0x475c79
xor eax, eax
test eax, eax
jle 0x475ce3
cmp byte [esp + 0x40], 0
je 0x475ce3
cmp byte [esp + 0x18], 0
je 0x475cc5
mov esi, dword [esp + 0x68]
mov ecx, dword [esp + 0x10]
movss xmm1, dword [esi + 0x58]
movaps xmm0, xmm1
subss xmm0, dword [ecx + 0x18bc]
addss xmm1, dword [esi + 0xe0]
maxss xmm0, xmm4
subss xmm1, xmm0
movss dword [esi + 0x58], xmm0
movss dword [esi + 0xe0], xmm1
jmp 0x476786
movzx eax, byte [esp + 0x21]
lea edx, [edi + 0x38]
mov ecx, edi
lea eax, [eax*4 + 0x10002]
or eax, esi
push eax
call fcn.004732f0
jmp 0x476772
mov eax, dword [edx + 0x44]
test eax, eax
js 0x475df2
movss xmm1, dword [edx + eax*4 + 0x470]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jnp 0x475d68
movss xmm2, dword [edx + 0x88]
comiss xmm1, xmm2
jbe 0x475df2
movss xmm3, dword [edx + 0x8c]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jp 0x475d29
mov eax, 1
jmp 0x475d60
comiss xmm2, xmm1
jae 0x475d5e
comiss xmm4, xmm3
jae 0x475d5e
movaps xmm0, xmm1
subss xmm1, xmm2
subss xmm0, dword [edx + 0x18]
divss xmm1, xmm3
subss xmm0, xmm2
cvttss2si ecx, xmm1
divss xmm0, xmm3
cvttss2si eax, xmm0
sub ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
jmp 0x475d60
xor eax, eax
test eax, eax
jle 0x475df2
cmp byte [esp + 0x40], 0
je 0x475df2
cmp byte [esp + 0x18], 0
je 0x475dd4
mov eax, dword [edx + 0x199c]
mov esi, dword [esp + 0x68]
mov ecx, dword [esp + 0x10]
movss xmm0, dword [eax + 0x20]
subss xmm0, dword [eax + 0x70]
movss xmm1, dword [eax + 0x30]
movss xmm3, dword [esi + 0x58]
movaps xmm2, xmm3
addss xmm2, dword [ecx + 0x18bc]
addss xmm3, dword [esi + 0xe0]
subss xmm1, xmm0
xorps xmm0, xmm0
maxss xmm0, xmm1
minss xmm2, xmm0
subss xmm3, xmm2
movss dword [esi + 0x58], xmm2
movss dword [esi + 0xe0], xmm3
jmp 0x476786
movzx eax, byte [esp + 0x21]
lea edx, [edi + 0x38]
mov ecx, edi
lea eax, [eax*4 + 0x10003]
or eax, esi
push eax
call fcn.004732f0
jmp 0x476772
mov eax, dword [edx + 0x50]
test eax, eax
js 0x475e94
movss xmm1, dword [edx + eax*4 + 0x470]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jnp 0x475e6f
movss xmm2, dword [edx + 0x88]
comiss xmm1, xmm2
jbe 0x475e94
movss xmm3, dword [edx + 0x8c]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jp 0x475e34
mov eax, 1
jmp 0x475e6b
comiss xmm2, xmm1
jae 0x475e69
comiss xmm4, xmm3
jae 0x475e69
movaps xmm0, xmm1
subss xmm1, xmm2
subss xmm0, dword [edx + 0x18]
divss xmm1, xmm3
subss xmm0, xmm2
cvttss2si ecx, xmm1
divss xmm0, xmm3
cvttss2si eax, xmm0
sub ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
jmp 0x475e6b
xor eax, eax
test eax, eax
jle 0x475e94
mov eax, esi
lea edx, [edi + 0x38]
or eax, 0x10006
or esi, 0x10004
cmp byte [esp + 0x18], 0
mov ecx, edi
cmovne esi, eax
push esi
call fcn.004732f0
jmp 0x476772
mov eax, dword [edx + 0x54]
test eax, eax
js 0x475f36
movss xmm1, dword [edx + eax*4 + 0x470]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jnp 0x475f11
movss xmm2, dword [edx + 0x88]
comiss xmm1, xmm2
jbe 0x475f36
movss xmm3, dword [edx + 0x8c]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jp 0x475ed6
mov eax, 1
jmp 0x475f0d
comiss xmm2, xmm1
jae 0x475f0b
comiss xmm4, xmm3
jae 0x475f0b
movaps xmm0, xmm1
subss xmm1, xmm2
subss xmm0, dword [edx + 0x18]
divss xmm1, xmm3
subss xmm0, xmm2
cvttss2si ecx, xmm1
divss xmm0, xmm3
cvttss2si eax, xmm0
sub ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
jmp 0x475f0d
xor eax, eax
test eax, eax
jle 0x475f36
mov eax, esi
lea edx, [edi + 0x38]
or eax, 0x10007
or esi, 0x10005
cmp byte [esp + 0x18], 0
mov ecx, edi
cmovne esi, eax
push esi
call fcn.004732f0
jmp 0x476772
mov eax, dword [edx + 0x5c]
test eax, eax
js 0x475fd0
movss xmm1, dword [edx + eax*4 + 0x470]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jnp 0x475fb3
movss xmm2, dword [edx + 0x88]
comiss xmm1, xmm2
jbe 0x475fd0
movss xmm3, dword [edx + 0x8c]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jp 0x475f78
mov eax, 1
jmp 0x475faf
comiss xmm2, xmm1
jae 0x475fad
comiss xmm4, xmm3
jae 0x475fad
movaps xmm0, xmm1
subss xmm1, xmm2
subss xmm0, dword [edx + 0x18]
divss xmm1, xmm3
subss xmm0, xmm2
cvttss2si ecx, xmm1
divss xmm0, xmm3
cvttss2si eax, xmm0
sub ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
jmp 0x475faf
xor eax, eax
test eax, eax
jle 0x475fd0
cmp byte [esp + 0x5c], 0
je 0x475fd0
or esi, 0x10008
lea edx, [edi + 0x38]
push esi
mov ecx, edi
call fcn.004732f0
jmp 0x476772
mov eax, dword [edx + 0x60]
test eax, eax
js 0x4760cb
movss xmm1, dword [edx + eax*4 + 0x470]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jnp 0x476051
movss xmm2, dword [edx + 0x88]
comiss xmm1, xmm2
jbe 0x4760cb
movss xmm3, dword [edx + 0x8c]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jp 0x476016
mov eax, 1
jmp 0x47604d
comiss xmm2, xmm1
jae 0x47604b
comiss xmm4, xmm3
jae 0x47604b
movaps xmm0, xmm1
subss xmm1, xmm2
subss xmm0, dword [edx + 0x18]
divss xmm1, xmm3
subss xmm0, xmm2
cvttss2si ecx, xmm1
divss xmm0, xmm3
cvttss2si eax, xmm0
sub ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
jmp 0x47604d
xor eax, eax
test eax, eax
jle 0x4760cb
cmp byte [esp + 0x5c], 0
je 0x4760cb
mov eax, dword [edi + 0x3c]
cmp eax, dword [edi + 0x40]
jne 0x4760b5
cmp byte [esp + 0x1a], 0
je 0x47606e
push 0x3000c
jmp 0x476097
cmp byte [esp + 0x73], 0
je 0x4760b5
mov eax, dword [esp + 0x48]
cmp byte [eax], 0
je 0x4760b5
mov eax, dword [esp + 0x10]
cmp byte [eax + 0xfe], 0
jne 0x4760b5
cmp byte [esp + 0x18], 0
jne 0x4760b5
push 0x30004
lea edx, [edi + 0x38]
mov ecx, edi
call fcn.004732f0
mov dword [edi + 0xe5c], 0xbe99999a
add esp, 4
mov byte [edi + 0xe60], 1
or esi, 0x10009
lea edx, [edi + 0x38]
push esi
mov ecx, edi
call fcn.004732f0
jmp 0x476772
mov eax, dword [edx + 0x68]
test eax, eax
js 0x4761be
movss xmm1, dword [edx + eax*4 + 0x470]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jnp 0x47614c
movss xmm2, dword [edx + 0x88]
comiss xmm1, xmm2
jbe 0x4761be
movss xmm3, dword [edx + 0x8c]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jp 0x476111
mov eax, 1
jmp 0x476148
comiss xmm2, xmm1
jae 0x476146
comiss xmm4, xmm3
jae 0x476146
movaps xmm0, xmm1
subss xmm1, xmm2
subss xmm0, dword [edx + 0x18]
divss xmm1, xmm3
subss xmm0, xmm2
cvttss2si ecx, xmm1
divss xmm0, xmm3
cvttss2si eax, xmm0
sub ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
jmp 0x476148
xor eax, eax
test eax, eax
jle 0x4761be
mov ecx, dword [esp + 0x50]
mov eax, ecx
shr eax, 0xb
and al, 1
cmp byte [esp + 0x40], 0
je 0x476169
test al, al
je 0x476178
cmp byte [esp + 0x18], 0
jne 0x47617f
mov byte [esp + 0x37], 1
mov byte [esp + 0x3b], 1
jmp 0x476786
cmp byte [esp + 0x18], 0
jne 0x476169
cmp byte [esp + 0x5c], 0
je 0x476786
mov dword [esp + 0x24], 0xa
sub esp, 8
mov edx, ecx
lea ecx, [esp + 0x2c]
call fcn.00474450
add esp, 8
test al, al
je 0x476786
push dword [esp + 0x24]
lea edx, [edi + 0x38]
mov ecx, edi
call fcn.004732f0
jmp 0x476772
mov ecx, dword [esp + 0x50]
test ecx, 0x400
je 0x476282
mov eax, dword [edx + 0x34]
test eax, eax
js 0x476282
movss xmm1, dword [edx + eax*4 + 0x470]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jnp 0x476253
movss xmm2, dword [edx + 0x88]
comiss xmm1, xmm2
jbe 0x476282
movss xmm3, dword [edx + 0x8c]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jp 0x476214
mov eax, 1
jmp 0x47624f
comiss xmm2, xmm1
jae 0x47624d
comiss xmm4, xmm3
jae 0x47624d
movaps xmm0, xmm1
subss xmm1, xmm2
subss xmm0, dword [edx + 0x18]
divss xmm1, xmm3
subss xmm0, xmm2
cvttss2si ecx, xmm1
divss xmm0, xmm3
cvttss2si eax, xmm0
sub ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
mov ecx, dword [esp + 0x50]
jmp 0x47624f
xor eax, eax
test eax, eax
jle 0x476282
cmp byte [esp + 0x18], 0
jne 0x476282
cmp byte [esp + 0x19], 0
jne 0x476282
mov eax, dword [esp + 0x10]
cmp byte [eax + 0xfe], 0
jne 0x476282
cmp byte [esp + 0x5c], 0
je 0x476282
mov dword [esp + 0x24], 9
jmp 0x476192
mov eax, dword [edx + 0x6c]
test eax, eax
js 0x476306
movss xmm1, dword [edx + eax*4 + 0x470]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jnp 0x4762fb
movss xmm2, dword [edx + 0x88]
comiss xmm1, xmm2
jbe 0x476306
movss xmm3, dword [edx + 0x8c]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jp 0x4762c0
mov eax, 1
jmp 0x4762f7
comiss xmm2, xmm1
jae 0x4762f5
comiss xmm4, xmm3
jae 0x4762f5
movaps xmm0, xmm1
subss xmm1, xmm2
subss xmm0, dword [edx + 0x18]
divss xmm1, xmm3
subss xmm0, xmm2
cvttss2si ecx, xmm1
divss xmm0, xmm3
cvttss2si eax, xmm0
sub ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
jmp 0x4762f7
xor eax, eax
test eax, eax
jle 0x476306
mov cl, 1
mov byte [esp + 0x37], cl
jmp 0x47678a
mov al, byte [esp + 0x23]
test al, al
jne 0x476753
cmp byte [esp + 0x38], al
jne 0x476753
cmp byte [esp + 0x22], al
je 0x4763bc
mov eax, dword [edx + 0x70]
test eax, eax
js 0x4763bc
movss xmm1, dword [edx + eax*4 + 0x470]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jnp 0x4763a3
movss xmm2, dword [edx + 0x88]
comiss xmm1, xmm2
jbe 0x4763bc
movss xmm3, dword [edx + 0x8c]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jp 0x476368
mov eax, 1
jmp 0x47639f
comiss xmm2, xmm1
jae 0x47639d
comiss xmm4, xmm3
jae 0x47639d
movaps xmm0, xmm1
subss xmm1, xmm2
subss xmm0, dword [edx + 0x18]
divss xmm1, xmm3
subss xmm0, xmm2
cvttss2si ecx, xmm1
divss xmm0, xmm3
cvttss2si eax, xmm0
sub ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
jmp 0x47639f
xor eax, eax
test eax, eax
jle 0x4763bc
mov eax, dword [edi + 0x2c]
mov dword [edi + 0x3c], 0
mov dword [edi + 0x40], eax
mov dword [edi + 0x38], eax
mov byte [edi + 0x47], 0
jmp 0x47677f
cmp byte [esp + 0x3a], 0
jne 0x47662d
cmp byte [esp + 0x17], 0
jne 0x47662d
cmp byte [esp + 0x1b], 0
je 0x476786
mov eax, dword [edx + 0xcc]
test eax, eax
je 0x476404
push dword [edx + 0xd4]
call eax
mov esi, eax
add esp, 4
test esi, esi
je 0x476786
mov edx, dword [0x625898]
jmp 0x476409
mov esi, 0x5f20c3
mov ecx, esi
lea eax, [ecx + 1]
mov dword [esp + 0x24], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x476412
sub ecx, dword [esp + 0x24]
test edx, edx
je 0x476427
inc dword [edx + 0x394]
lea eax, [ecx*2 + 2]
push eax
call fcn.00573897
mov ecx, eax
add esp, 4
xor eax, eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x60], eax
cmp byte [esi], al
je 0x4764a2
push 0
mov edx, esi
lea ecx, [esp + 0x70]
call fcn.0044eff0
add esi, eax
add esp, 4
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x47649a
cmp eax, 0x10000
jae 0x476495
mov edx, dword [esp + 0x50]
lea ecx, [esp + 0x6c]
sub esp, 8
call fcn.00474450
add esp, 8
test al, al
je 0x476495
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x48]
mov ax, word [esp + 0x6c]
mov word [edx + ecx*2], ax
inc ecx
mov dword [esp + 0x60], ecx
cmp byte [esi], 0
jne 0x476447
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x48]
xor edx, edx
mov word [ecx + eax*2], dx
test eax, eax
jle 0x47660c
mov ecx, dword [edi + 0x40]
lea esi, [edi + 0x38]
mov eax, dword [esi + 4]
mov edx, dword [edi + 0x2c]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x3c], ecx
cmp eax, ecx
je 0x47650f
mov dword [esp + 0x2c], eax
cmp eax, edx
mov eax, edx
jle 0x4764dc
mov dword [edi + 0x3c], eax
mov edx, dword [edi + 0x2c]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x1c], ecx
cmp ecx, eax
jle 0x4764f0
mov dword [edi + 0x40], eax
mov edx, dword [edi + 0x2c]
mov dword [esp + 0x1c], eax
jmp 0x4764f2
mov eax, ecx
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x2c]
cmp eax, esi
lea esi, [edi + 0x38]
jne 0x47650f
mov ecx, dword [esp + 0x1c]
mov dword [esi], eax
mov dword [esp + 0x3c], ecx
mov ecx, dword [esi]
mov esi, ecx
cmp esi, dword [esp + 0x4c]
lea esi, [edi + 0x38]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x3c]
jle 0x476532
mov ecx, dword [esp + 0x4c]
mov dword [esi], ecx
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x3c]
cmp eax, ecx
je 0x476579
mov dword [esp + 0x2c], eax
cmp eax, edx
jle 0x476545
mov dword [esi + 4], edx
mov dword [esp + 0x2c], edx
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x1c], ecx
cmp ecx, edx
jle 0x476558
mov dword [esi + 8], edx
mov dword [esp + 0x1c], edx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x1c]
mov esi, ecx
cmp dword [esp + 0x2c], esi
lea esi, [edi + 0x38]
jne 0x476579
mov eax, dword [esp + 0x2c]
mov dword [esi], eax
mov dword [esp + 0x30], eax
cmp dword [esp + 0x30], edx
jle 0x476581
mov dword [esi], edx
cmp eax, ecx
je 0x4765b6
mov edx, esi
jge 0x47659c
sub ecx, eax
push ecx
push eax
mov ecx, edi
call fcn.004731b0
mov eax, dword [esi + 4]
mov dword [esi + 8], eax
jmp 0x4765ad
sub eax, ecx
push eax
push ecx
mov ecx, edi
call fcn.004731b0
mov eax, dword [esi + 8]
mov dword [esi + 4], eax
mov dword [esi], eax
add esp, 8
mov byte [esi + 0xf], 0
push dword [esp + 0x60]
mov edx, dword [esi]
mov ecx, edi
push dword [esp + 0x4c]
call fcn.00472d90
add esp, 8
test al, al
je 0x4765ed
push dword [esp + 0x60]
mov edx, dword [esi]
lea ecx, [esi + 0x18]
push 0
call fcn.00473f90
mov eax, dword [esp + 0x68]
add esp, 8
add dword [esi], eax
mov byte [esi + 0xf], 0
jmp 0x476601
movzx eax, word [esi + 0xe16]
test ax, ax
je 0x476601
dec eax
mov word [esi + 0xe16], ax
mov ecx, dword [esp + 0x48]
mov byte [edi + 0xe60], 1
test ecx, ecx
je 0x47661f
mov eax, dword [0x625898]
test eax, eax
je 0x47661f
dec dword [eax + 0x394]
push ecx
call fcn.0056cc9e
add esp, 4
jmp 0x476786
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0xd0], 0
je 0x4766ac
mov eax, dword [edi + 0x40]
mov ecx, dword [edi + 0x3c]
cmp ecx, eax
je 0x47664e
mov edx, eax
cmovge eax, ecx
cmovl edx, ecx
jmp 0x476653
mov eax, dword [edi + 0x2c]
xor edx, edx
mov dword [esp + 0x24], eax
lea ecx, [edi + 0x1c]
sub eax, edx
mov dword [esp + 0x58], edx
lea eax, [eax*4 + 1]
push eax
call fcn.00460930
mov ecx, dword [edi + 0xc]
mov eax, dword [esp + 0x24]
mov edx, dword [edi + 0x1c]
lea eax, [ecx + eax*2]
push eax
mov eax, dword [esp + 0x5c]
lea eax, [ecx + eax*2]
mov ecx, dword [edi + 0x24]
push eax
call fcn.0044f1f0
mov edx, dword [0x625898]
add esp, 8
mov eax, dword [edx + 0xd0]
test eax, eax
je 0x4766ac
push dword [edi + 0x24]
push dword [edx + 0xd4]
call eax
add esp, 8
cmp byte [esp + 0x3a], 0
je 0x476786
mov eax, dword [edi + 0x3c]
lea esi, [edi + 0x38]
cmp eax, dword [edi + 0x40]
jne 0x4766d5
mov eax, dword [edi + 0x2c]
mov dword [edi + 0x3c], 0
mov dword [edi + 0x40], eax
mov dword [esi], eax
mov byte [edi + 0x47], 0
mov byte [edi + 0xe60], 1
mov ecx, dword [esi + 8]
mov eax, dword [esi + 4]
cmp eax, ecx
je 0x476786
mov edx, dword [edi + 0x2c]
cmp eax, edx
jle 0x4766f6
mov dword [esi + 4], edx
mov eax, edx
cmp ecx, edx
jle 0x4766ff
mov dword [esi + 8], edx
mov ecx, edx
cmp eax, ecx
jne 0x476705
mov dword [esi], eax
cmp dword [esi], edx
jle 0x47670b
mov dword [esi], edx
cmp eax, ecx
je 0x47674d
mov edx, esi
jge 0x476733
sub ecx, eax
push ecx
push eax
mov ecx, edi
call fcn.004731b0
mov eax, dword [esi + 4]
add esp, 8
mov dword [esi + 8], eax
mov dword [esi], eax
mov byte [esi + 0xf], 0
mov byte [esi + 0xf], 0
jmp 0x476786
sub eax, ecx
push eax
push ecx
mov ecx, edi
call fcn.004731b0
mov eax, dword [esi + 8]
add esp, 8
mov dword [esi + 4], eax
mov dword [esi], eax
mov byte [esi + 0xf], 0
mov byte [esi + 0xf], 0
jmp 0x476786
movzx eax, al
lea edx, [edi + 0x38]
xor eax, 1
mov ecx, edi
add eax, 0x1000a
push eax
call fcn.004732f0
mov eax, dword [edi + 0x38]
mov dword [edi + 0x40], eax
mov dword [edi + 0x3c], eax
add esp, 4
mov dword [edi + 0xe5c], 0xbe99999a
mov byte [edi + 0xe60], 1
mov cl, byte [esp + 0xf]
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x19bc]
cmp eax, dword [esp + 0x28]
jne 0x476e1a
xor eax, eax
mov dword [esp + 0x3c], 0
mov dword [esp + 0x1c], eax
test cl, cl
je 0x47680b
cmp byte [esp + 0x5c], al
je 0x4767f5
mov esi, dword [edi + 0x18]
mov ecx, esi
mov eax, dword [esp + 0x44]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4767e0
test dl, dl
je 0x4767dc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4767e0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4767c0
xor eax, eax
jmp 0x4767e5
sbb eax, eax
or eax, 1
test eax, eax
je 0x4767f5
mov eax, dword [edi + 0x10]
dec eax
mov dword [esp + 0x3c], esi
mov dword [esp + 0x1c], eax
cmp byte [esp + 0x3b], 0
je 0x476cf0
test byte [esp + 0x50], 0x20
je 0x476cf0
cmp byte [esp + 0x5c], 0
je 0x476838
mov eax, dword [edi + 4]
lea ecx, [edi + 0x1c]
lea eax, [eax*4 + 1]
push eax
call fcn.00460930
mov edx, dword [edi + 0x1c]
mov ecx, dword [edi + 0x24]
push 0
push dword [edi + 0xc]
call fcn.0044f1f0
add esp, 8
mov ecx, dword [esp + 0x50]
test ecx, 0x1c0
je 0x476cad
mov edx, dword [0x625898]
xor esi, esi
xorps xmm4, xmm4
test cl, 0x40
je 0x4768e7
mov eax, dword [edx + 0x34]
test eax, eax
js 0x4768e7
movss xmm1, dword [edx + eax*4 + 0x470]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jnp 0x4768db
movss xmm2, dword [edx + 0x88]
comiss xmm1, xmm2
jbe 0x4768e7
movss xmm3, dword [edx + 0x8c]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jp 0x47689c
lea eax, [esi + 1]
jmp 0x4768d7
comiss xmm2, xmm1
jae 0x4768d5
comiss xmm4, xmm3
jae 0x4768d5
movaps xmm0, xmm1
subss xmm1, xmm2
subss xmm0, dword [edx + 0x18]
divss xmm1, xmm3
subss xmm0, xmm2
cvttss2si ecx, xmm1
divss xmm0, xmm3
cvttss2si eax, xmm0
sub ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
mov ecx, dword [esp + 0x50]
jmp 0x4768d7
xor eax, eax
test eax, eax
jle 0x4768e7
mov esi, 0x40
xor eax, eax
jmp 0x476a1f
test cl, cl
jns 0x476a0c
mov eax, dword [edx + 0x40]
test eax, eax
js 0x47697d
movss xmm1, dword [edx + eax*4 + 0x470]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jnp 0x476970
movss xmm2, dword [edx + 0x88]
comiss xmm1, xmm2
jbe 0x47697d
movss xmm3, dword [edx + 0x8c]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jp 0x476931
mov eax, 1
jmp 0x47696c
comiss xmm2, xmm1
jae 0x47696a
comiss xmm4, xmm3
jae 0x47696a
movaps xmm0, xmm1
subss xmm1, xmm2
subss xmm0, dword [edx + 0x18]
divss xmm1, xmm3
subss xmm0, xmm2
cvttss2si ecx, xmm1
divss xmm0, xmm3
cvttss2si eax, xmm0
sub ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
mov ecx, dword [esp + 0x50]
jmp 0x47696c
xor eax, eax
test eax, eax
jle 0x47697d
mov esi, 0x80
lea eax, [esi - 0x7d]
jmp 0x476a1f
mov eax, dword [edx + 0x44]
test eax, eax
js 0x476a0c
movss xmm1, dword [edx + eax*4 + 0x470]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jnp 0x4769fa
movss xmm2, dword [edx + 0x88]
comiss xmm1, xmm2
jbe 0x476a0c
movss xmm3, dword [edx + 0x8c]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jp 0x4769bf
mov eax, 1
jmp 0x4769f6
comiss xmm2, xmm1
jae 0x4769f4
comiss xmm4, xmm3
jae 0x4769f4
movaps xmm0, xmm1
subss xmm1, xmm2
subss xmm0, dword [edx + 0x18]
divss xmm1, xmm3
subss xmm0, xmm2
cvttss2si ecx, xmm1
divss xmm0, xmm3
cvttss2si eax, xmm0
sub ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
jmp 0x4769f6
xor eax, eax
test eax, eax
jle 0x476a08
mov ecx, dword [esp + 0x50]
mov esi, 0x80
lea eax, [esi - 0x7c]
jmp 0x476a1f
mov ecx, dword [esp + 0x50]
test ecx, 0x100
mov eax, 0x100
cmovne esi, eax
mov eax, 0x15
test esi, esi
je 0x476cad
mov dword [esp + 0xf0], eax
xor edx, edx
mov eax, dword [edi + 0x24]
mov dword [esp + 0xf4], eax
mov eax, dword [edi + 0x28]
mov dword [esp + 0xf8], eax
mov eax, dword [edi + 0x30]
mov dword [esp + 0xe0], esi
mov esi, dword [edi + 0xc]
mov dword [esp + 0xfc], eax
mov eax, dword [edi + 0x38]
mov word [esp + 0x101], dx
mov byte [esp + 0x103], dl
mov dword [esp + 0xe4], ecx
mov ecx, esi
mov dword [esp + 0xe8], edx
mov byte [esp + 0x100], dl
lea edx, [esi + eax*2]
mov dword [esp + 0xec], 0
call fcn.0044f320
mov edi, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x104], edi
mov ecx, dword [eax + 0x1d50]
lea edx, [esi + ecx*2]
mov ecx, esi
call fcn.0044f320
mov dword [esp + 0x58], eax
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x1d54]
lea edx, [esi + ecx*2]
mov ecx, esi
call fcn.0044f320
mov dword [esp + 0x64], eax
mov dword [esp + 0x10c], eax
lea eax, [esp + 0xe0]
push eax
xor eax, eax
call eax
mov ecx, dword [esp + 0x108]
add esp, 4
cmp ecx, edi
je 0x476b52
mov eax, dword [esp + 0xf4]
mov esi, eax
lea edi, [ecx + eax]
xor eax, eax
mov dword [esp + 0x2c], eax
test edi, edi
je 0x476b0f
cmp esi, edi
jae 0x476b3f
cmp byte [esi], 0
je 0x476b3f
push edi
mov edx, esi
lea ecx, [esp + 0x28]
call fcn.0044eff0
add esi, eax
add esp, 4
mov eax, dword [esp + 0x24]
test eax, eax
je 0x476b3b
cmp eax, 0x10000
mov eax, dword [esp + 0x2c]
jae 0x476b07
inc eax
jmp 0x476b03
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x90]
mov dword [edi + 0x38], eax
mov byte [edi + 0xe60], 1
jmp 0x476b59
mov edi, dword [esp + 0x90]
mov eax, dword [esp + 0x108]
cmp eax, dword [esp + 0x58]
je 0x476bbb
add eax, dword [esp + 0xf4]
xor ecx, ecx
mov esi, dword [esp + 0xf4]
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], ecx
nop
test eax, eax
je 0x476b88
cmp esi, eax
jae 0x476bb8
cmp byte [esi], 0
je 0x476bb8
push eax
mov edx, esi
lea ecx, [esp + 0x5c]
call fcn.0044eff0
mov ecx, dword [esp + 0x30]
add esi, eax
mov eax, dword [esp + 0x5c]
add esp, 4
test eax, eax
je 0x476bb8
cmp eax, 0x10000
mov eax, dword [esp + 0x24]
jae 0x476b80
inc ecx
jmp 0x476b7a
mov dword [edi + 0x3c], ecx
mov eax, dword [esp + 0x10c]
cmp eax, dword [esp + 0x64]
je 0x476c1b
add eax, dword [esp + 0xf4]
xor ecx, ecx
mov esi, dword [esp + 0xf4]
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], ecx
test eax, eax
je 0x476be8
cmp esi, eax
jae 0x476c18
cmp byte [esi], 0
je 0x476c18
push eax
mov edx, esi
lea ecx, [esp + 0x5c]
call fcn.0044eff0
mov ecx, dword [esp + 0x30]
add esi, eax
mov eax, dword [esp + 0x5c]
add esp, 4
test eax, eax
je 0x476c18
cmp eax, 0x10000
mov eax, dword [esp + 0x24]
jae 0x476be0
inc ecx
jmp 0x476bdc
mov dword [edi + 0x40], ecx
cmp byte [esp + 0x100], 0
je 0x476cad
mov esi, dword [esp + 0xf8]
mov ecx, dword [esp + 0x88]
cmp esi, ecx
jle 0x476c7e
cmp byte [esp + 0x9c], 0
je 0x476c7e
mov eax, dword [edi + 8]
sub esi, ecx
add esi, dword [edi + 4]
cmp esi, eax
jle 0x476c7b
test eax, eax
je 0x476c64
cdq
sub eax, edx
lea edx, [edi + 4]
mov ecx, eax
sar ecx, 1
add ecx, dword [edx + 4]
jmp 0x476c6c
mov ecx, 8
lea edx, [edi + 4]
cmp ecx, esi
mov eax, esi
cmovg eax, ecx
mov ecx, edx
push eax
call fcn.00460a60
mov dword [edi + 4], esi
mov edx, dword [edi + 4]
push 0
push ecx
push dword [esp + 0xfc]
mov ecx, dword [edi + 0xc]
call fcn.0044f180
mov dword [edi + 0x2c], eax
add esp, 0xc
mov eax, dword [esp + 0xf8]
mov dword [edi + 0x28], eax
mov dword [edi + 0xe5c], 0xbe99999a
cmp byte [esp + 0x5c], 0
je 0x476cf0
mov esi, dword [edi + 0x24]
mov eax, esi
mov ecx, dword [esp + 0x44]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x476ce0
test dl, dl
je 0x476cdc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x476ce0
add eax, 2
add ecx, 2
test dl, dl
jne 0x476cc0
xor eax, eax
jmp 0x476ce5
sbb eax, eax
or eax, 1
test eax, eax
je 0x476cf0
mov ecx, dword [edi + 0x28]
mov eax, esi
jmp 0x476cf8
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x3c]
lea esi, [edi + 0x24]
test eax, eax
je 0x476df0
cmp dword [esp + 0x88], ecx
je 0x476db6
cmp byte [esp + 0x9c], 0
je 0x476db6
mov eax, dword [esp + 0x50]
xorps xmm0, xmm0
mov dword [esp + 0x114], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x124], eax
lea eax, [ecx + 1]
cmp eax, 0x20
movlpd qword [esp + 0x11c], xmm0
movlpd qword [esp + 0x130], xmm0
cmovle eax, dword [esp + 0x78]
mov dword [esp + 0x12c], eax
lea eax, [esp + 0x110]
push eax
xor eax, eax
movlpd qword [esp + 0x13c], xmm0
mov dword [esp + 0x114], 0x40000
mov dword [esp + 0x12c], ecx
mov dword [esp + 0x11c], 0
call eax
mov edx, dword [esp + 0x130]
add esp, 4
mov eax, dword [esp + 0x124]
mov dword [esp + 0x44], eax
lea ecx, [edx - 1]
cmp dword [esp + 0x128], ecx
cmovl ecx, dword [esp + 0x128]
jmp 0x476dbb
mov edx, 0x20
lea eax, [ecx + 1]
cmp eax, edx
cmovl edx, eax
mov dword [esp + 0x78], edx
cmp edx, 1
jb 0x476deb
push edx
push dword [esi]
push dword [esp + 0x4c]
call fcn.0056e610
mov eax, dword [esp + 0x84]
add esp, 0xc
mov ecx, dword [esp + 0x44]
mov byte [eax + ecx - 1], 0
mov byte [esp + 0x57], 1
mov eax, dword [esp + 0x10]
mov dword [edi + 0xe64], 0
mov dword [edi + 0xe68], 0
mov dword [edi + 0xe6c], 0
mov eax, dword [eax + 0x19bc]
jmp 0x476e1d
lea esi, [edi + 0x24]
cmp byte [esp + 0x37], 0
je 0x476e7b
cmp eax, dword [esp + 0x28]
jne 0x476e7b
mov edx, dword [0x625898]
mov ecx, dword [edx + 0x19bc]
test ecx, ecx
setne al
mov byte [edx + 0x19cc], al
test ecx, ecx
je 0x476e56
mov dword [edx + 0x19c8], 0
mov byte [edx + 0x19ce], 0
mov dword [edx + 0x19bc], 0
mov dword [edx + 0x19d4], 0
mov byte [edx + 0x19cd], 0
mov dword [edx + 0x19e0], 0
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x19bc]
mov eax, dword [esp + 0x28]
cmp edx, eax
jne 0x476e9a
cmp byte [esp + 0x5c], 0
je 0x476e9a
mov ecx, dword [esi]
mov dword [esp + 0x44], ecx
cmp byte [esp + 0x40], 0
movss xmm4, dword [0x615184]
jne 0x477063
push 1
mov edx, eax
lea ecx, [esp + 0xd4]
call fcn.00450910
mov eax, dword [0x625898]
xorps xmm3, xmm3
movss xmm6, dword [0x6150c8]
add esp, 4
movups xmm2, xmmword [eax + 0x1628]
comiss xmm3, xmm2
movaps xmm1, xmm2
movaps xmmword [esp + 0x140], xmm2
shufps xmm1, xmm2, 0xff
mulss xmm1, dword [eax + 0x1518]
jbe 0x476ef8
xorps xmm0, xmm0
jmp 0x476eff
movaps xmm0, xmm6
minss xmm0, xmm2
movss xmm5, dword [0x615184]
movss xmm4, dword [0x61508c]
movss xmm2, dword [esp + 0x144]
comiss xmm3, xmm2
mulss xmm0, xmm5
addss xmm0, xmm4
cvttss2si edx, xmm0
jbe 0x476f2e
xorps xmm0, xmm0
jmp 0x476f35
movaps xmm0, xmm6
minss xmm0, xmm2
movss xmm2, dword [esp + 0x148]
mulss xmm0, xmm5
addss xmm0, xmm4
cvttss2si eax, xmm0
shl eax, 8
or edx, eax
comiss xmm3, xmm2
jbe 0x476f59
xorps xmm0, xmm0
jmp 0x476f60
movaps xmm0, xmm6
minss xmm0, xmm2
mulss xmm0, xmm5
addss xmm0, xmm4
cvttss2si eax, xmm0
shl eax, 0x10
or edx, eax
comiss xmm3, xmm1
jbe 0x476f7b
xorps xmm0, xmm0
jmp 0x476f82
movaps xmm0, xmm6
minss xmm0, xmm1
push dword [esp + 0xdc]
mov eax, dword [esp + 0x14]
push dword [esp + 0xdc]
mulss xmm0, xmm5
push dword [esp + 0xdc]
movss xmm2, dword [eax + 0x1554]
push dword [esp + 0xdc]
addss xmm0, xmm4
cvttss2si ecx, xmm0
shl ecx, 0x18
or ecx, edx
mov dl, 1
call fcn.0044fd00
mov ecx, dword [esp + 0x20]
add esp, 0x10
movss xmm5, dword [esp + 0x8c]
movss xmm6, dword [esp + 0x84]
movaps xmm0, xmm5
movss xmm3, dword [esp + 0x94]
movaps xmm2, xmm5
addss xmm0, dword [ecx + 0x154c]
movss xmm1, dword [esp + 0x74]
addss xmm2, xmm3
mov edx, dword [ecx + 0x19bc]
addss xmm1, xmm6
movss xmm4, dword [0x615184]
movss dword [esp + 0x160], xmm5
movss dword [esp + 0xd0], xmm0
movaps xmm0, xmm6
addss xmm0, dword [ecx + 0x1550]
movss dword [esp + 0x164], xmm6
movss dword [esp + 0x9c], xmm2
movss dword [esp + 0x168], xmm2
movss dword [esp + 0x48], xmm1
movss dword [esp + 0x16c], xmm1
movss dword [esp + 0xd4], xmm0
jmp 0x4770ea
movss xmm0, dword [esp + 0x8c]
movss xmm3, dword [esp + 0x94]
movaps xmm2, xmm0
movss xmm5, dword [esp + 0x84]
addss xmm2, xmm3
movss xmm1, dword [esp + 0x74]
mov ecx, dword [esp + 0x68]
addss xmm1, xmm5
movss dword [esp + 0x160], xmm0
movss dword [esp + 0x164], xmm5
movaps xmm0, xmm2
mov eax, dword [ecx + 0xc4]
mov ecx, dword [ecx + 0xc8]
movss dword [esp + 0x9c], xmm0
movss dword [esp + 0x168], xmm0
movaps xmm0, xmm1
mov dword [esp + 0xd4], ecx
mov ecx, dword [esp + 0x10]
movss dword [esp + 0x48], xmm0
movss dword [esp + 0x16c], xmm0
mov dword [esp + 0xd0], eax
mov esi, dword [esp + 0x28]
lea eax, [esp + 0xd0]
xorps xmm7, xmm7
movss xmm0, dword [eax]
movss dword [esp + 0x6c], xmm0
movss dword [esp + 0x7c], xmm0
movss xmm0, dword [eax + 4]
movss dword [esp + 0x4c], xmm0
movss dword [esp + 0x80], xmm0
xorps xmm0, xmm0
mov dword [esp + 0x2c], eax
movss dword [esp + 0x90], xmm1
movss dword [esp + 0x88], xmm2
movss dword [esp + 0x58], xmm0
movss dword [esp + 0x24], xmm0
cmp dword [edi], esi
jne 0x477181
cmp byte [esp + 0x40], 0
je 0x477181
mov eax, dword [esp + 0x68]
xor edx, edx
mov ecx, dword [eax + 0x1bc]
mov eax, dword [eax + 0x1c4]
push dword [eax + ecx*4 - 4]
mov ecx, str.SCROLLY
call fcn.0044ecd0
mov ecx, dword [esp + 0x14]
add esp, 4
mov edx, dword [ecx + 0x19bc]
cmp edx, eax
jne 0x477181
mov al, 1
jmp 0x477183
xor al, al
cmp edx, esi
je 0x477457
test al, al
jne 0x477457
mov esi, dword [esp + 0x44]
cmp byte [esp + 0x40], al
je 0x4771fa
mov al, byte [esi]
lea edx, [esi + 1]
xor ecx, ecx
mov byte [esp + 0x1b], al
test al, al
je 0x4771c8
nop dword [eax]
cmp byte [esp + 0x1b], 0xa
lea eax, [ecx + 1]
cmovne eax, ecx
mov ecx, eax
mov al, byte [edx]
inc edx
mov byte [esp + 0x1b], al
test al, al
jne 0x4771b0
mov al, byte [edx - 1]
dec edx
cmp al, 0xa
je 0x4771d5
cmp al, 0xd
je 0x4771d5
inc ecx
mov eax, dword [esp + 0x10]
movd xmm0, ecx
add eax, 0x18bc
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [eax]
movss dword [esp + 0x24], xmm0
movaps xmm0, xmm3
movss dword [esp + 0x58], xmm0
jmp 0x477221
mov ecx, esi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x477200
sub ecx, edx
lea edx, [ecx + esi]
cmp ecx, 0x200000
jge 0x478109
mov eax, dword [esp + 0x10]
add eax, 0x18bc
mov ecx, dword [esp + 0x68]
movss xmm3, dword [eax]
movss xmm6, dword [0x6150c8]
mov dword [esp + 0x3c], eax
mov ecx, dword [ecx + 0x270]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 0x18b8]
mov dword [esp + 0x6c], ecx
mov ecx, dword [0x625898]
movups xmm2, xmmword [ecx + 0x15b8]
comiss xmm7, xmm2
movaps xmm1, xmm2
movaps xmmword [esp + 0x140], xmm2
shufps xmm1, xmm2, 0xff
mulss xmm1, dword [ecx + 0x1518]
jbe 0x47727b
movaps xmm0, xmm7
jmp 0x477282
movaps xmm0, xmm6
minss xmm0, xmm2
movss xmm5, dword [0x61508c]
movss xmm2, dword [esp + 0x144]
comiss xmm7, xmm2
mulss xmm0, xmm4
addss xmm0, xmm5
cvttss2si esi, xmm0
jbe 0x4772a9
movaps xmm0, xmm7
jmp 0x4772b0
movaps xmm0, xmm6
minss xmm0, xmm2
movss xmm2, dword [esp + 0x148]
mulss xmm0, xmm4
addss xmm0, xmm5
cvttss2si eax, xmm0
shl eax, 8
or esi, eax
comiss xmm7, xmm2
jbe 0x4772d4
movaps xmm0, xmm7
jmp 0x4772db
movaps xmm0, xmm6
minss xmm0, xmm2
mulss xmm0, xmm4
addss xmm0, xmm5
cvttss2si eax, xmm0
shl eax, 0x10
or esi, eax
comiss xmm7, xmm1
jbe 0x4772f6
movaps xmm6, xmm7
jmp 0x4772fa
minss xmm6, xmm1
mulss xmm6, xmm4
xor eax, eax
addss xmm6, xmm5
cvttss2si edi, xmm6
shl edi, 0x18
or edi, esi
cmp byte [esp + 0x40], al
lea esi, [esp + 0x160]
cmovne esi, eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x28], eax
test edi, 0xff000000
je 0x47804a
test edx, edx
jne 0x477357
mov edx, dword [esp + 0x44]
lea eax, [edx + 1]
mov dword [esp + 0xbc], eax
mov al, byte [edx]
inc edx
test al, al
jne 0x477341
sub edx, dword [esp + 0xbc]
add edx, dword [esp + 0x44]
mov eax, dword [esp + 0x3c]
cmp dword [esp + 0x44], edx
je 0x47804e
cmp dword [esp + 0x6c], 0
mov ecx, dword [esp + 0x1c]
jne 0x477376
mov eax, dword [ecx + 0x28]
mov eax, dword [eax + 8]
mov dword [esp + 0x6c], eax
ucomiss xmm3, xmm7
lahf
test ah, 0x44
jp 0x477387
mov eax, dword [ecx + 0x28]
movss xmm3, dword [eax + 0xc]
mov eax, dword [esp + 0x1c]
mov ecx, dword [ecx + 0x3c]
shl ecx, 4
mov eax, dword [eax + 0x44]
movups xmm0, xmmword [eax + ecx - 0x10]
movups xmmword [esp + 0xa0], xmm0
test esi, esi
je 0x47740e
movss xmm1, dword [esi]
movss xmm0, dword [esp + 0xa0]
comiss xmm0, xmm1
jae 0x4773c0
movss dword [esp + 0xa0], xmm1
movss xmm1, dword [esi + 4]
movss xmm0, dword [esp + 0xa4]
comiss xmm0, xmm1
jae 0x4773dc
movss dword [esp + 0xa4], xmm1
movss xmm0, dword [esi + 8]
comiss xmm0, dword [esp + 0xa8]
ja 0x4773f4
movss dword [esp + 0xa8], xmm0
movss xmm0, dword [esi + 0xc]
comiss xmm0, dword [esp + 0xac]
ja 0x47740c
movss dword [esp + 0xac], xmm0
test esi, esi
mov esi, dword [esp + 0x44]
setne al
movzx eax, al
movaps xmm2, xmm3
push eax
push ecx
mov ecx, dword [esp + 0x74]
lea eax, [esp + 0xa8]
mov dword [esp], 0
push edx
push esi
push eax
mov eax, dword [esp + 0x40]
push edi
push dword [eax + 4]
push dword [eax]
push dword [esp + 0x3c]
call fcn.0046cf20
mov eax, dword [esp + 0x3c]
xorps xmm7, xmm7
mov ecx, dword [0x625898]
jmp 0x478052
movss xmm0, dword [ecx + 0x18]
or esi, 0xffffffff
mov ecx, dword [edi + 0xc]
xorps xmm6, xmm6
mov eax, dword [edi + 0x38]
xorps xmm4, xmm4
addss xmm0, dword [edi + 0xe5c]
mov edx, dword [edi + 0x3c]
mov dword [esp + 0x30], ecx
lea eax, [ecx + eax*2]
mov dword [esp + 0x3c], 0
mov dword [esp + 0x28], eax
mov ecx, 1
mov eax, dword [edi + 0x40]
movss dword [edi + 0xe5c], xmm0
mov dword [esp + 0x64], esi
mov dword [esp + 0x60], 0xfffffc19
cmp edx, eax
je 0x4774c0
mov ecx, dword [esp + 0x30]
cmovl eax, edx
mov dword [esp + 0x60], esi
lea eax, [ecx + eax*2]
mov ecx, 2
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x40]
movzx eax, al
add ecx, eax
xor eax, eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x30]
mov edx, eax
movzx eax, word [eax]
test ax, ax
je 0x47752d
mov esi, eax
nop
cmp si, 0xa
jne 0x47751b
mov eax, dword [esp + 0x1c]
inc eax
cmp dword [esp + 0x64], 0xffffffff
mov dword [esp + 0x1c], eax
jne 0x477505
cmp edx, dword [esp + 0x28]
jb 0x477505
dec ecx
mov dword [esp + 0x64], eax
test ecx, ecx
jle 0x477529
cmp dword [esp + 0x60], 0xffffffff
jne 0x47751b
cmp edx, dword [esp + 0x3c]
jb 0x47751b
dec ecx
mov dword [esp + 0x60], eax
test ecx, ecx
jle 0x477529
movzx eax, word [edx + 2]
add edx, 2
mov esi, eax
test ax, ax
jne 0x4774e0
mov esi, dword [esp + 0x64]
mov eax, dword [esp + 0x1c]
inc eax
cmp esi, 0xffffffff
mov ecx, eax
mov dword [esp + 0x1c], eax
cmovne ecx, esi
mov dword [esp + 0xa0], ecx
mov ecx, dword [esp + 0x60]
cmp ecx, 0xffffffff
cmove ecx, eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x60], ecx
mov edx, eax
mov ecx, dword [esp + 0x30]
cmp eax, ecx
jbe 0x477573
cmp word [edx - 2], 0xa
je 0x47756f
add edx, 0xfffffffe
cmp edx, ecx
ja 0x477561
mov eax, dword [esp + 0x28]
mov ecx, dword [0x625898]
movaps xmm1, xmm7
movaps xmm5, xmm7
mov esi, dword [ecx + 0x18b8]
movss xmm2, dword [ecx + 0x18bc]
mov dword [esp + 0x64], esi
divss xmm2, dword [esi]
cmp edx, eax
jae 0x4775f5
nop dword [eax]
movzx eax, word [edx]
add edx, 2
mov dword [esp + 0x78], eax
mov ecx, eax
cmp eax, 0xa
jne 0x4775ba
maxss xmm1, xmm5
movaps xmm5, xmm7
jmp 0x4775e9
cmp ecx, 0xd
je 0x4775e9
movzx eax, ax
cmp eax, dword [esi + 0x1c]
jge 0x4775dc
mov eax, dword [esi + 0x24]
mov esi, dword [esp + 0x78]
movzx ecx, si
mov esi, dword [esp + 0x64]
movss xmm0, dword [eax + ecx*4]
jmp 0x4775e1
movss xmm0, dword [esi + 0x38]
mulss xmm0, xmm2
addss xmm5, xmm0
cmp edx, dword [esp + 0x28]
jb 0x4775a0
mov ecx, dword [0x625898]
cmp dword [esp + 0x60], 0
maxss xmm5, xmm1
mov eax, dword [esp + 0x10]
movd xmm0, dword [esp + 0xa0]
lea edx, [eax + 0x18bc]
movss xmm3, dword [edx]
cvtdq2ps xmm0, xmm0
mov dword [esp + 0x28], edx
movss dword [esp + 0xcc], xmm5
mulss xmm0, xmm3
movss dword [esp + 0x64], xmm0
jl 0x4776cb
mov eax, dword [esp + 0x3c]
mov edx, eax
cmp eax, dword [esp + 0x30]
jbe 0x47765d
mov esi, dword [esp + 0x30]
cmp word [edx - 2], 0xa
je 0x477653
add edx, 0xfffffffe
cmp edx, esi
ja 0x477645
mov esi, dword [ecx + 0x18b8]
mov eax, dword [esp + 0x3c]
movaps xmm1, xmm7
movaps xmm4, xmm7
cmp edx, eax
jae 0x4776b6
movzx eax, word [edx]
add edx, 2
cmp eax, 0xa
jne 0x47767b
maxss xmm1, xmm4
movaps xmm4, xmm7
jmp 0x4776aa
cmp eax, 0xd
je 0x4776aa
mov dword [esp + 0xa0], eax
cmp eax, dword [esi + 0x1c]
jge 0x47769d
mov eax, dword [esi + 0x24]
mov ecx, dword [esp + 0xa0]
movss xmm0, dword [eax + ecx*4]
jmp 0x4776a2
movss xmm0, dword [esi + 0x38]
mulss xmm0, xmm2
addss xmm4, xmm0
cmp edx, dword [esp + 0x3c]
jb 0x477667
mov ecx, dword [0x625898]
movd xmm6, dword [esp + 0x60]
maxss xmm4, xmm1
mov edx, dword [esp + 0x28]
cvtdq2ps xmm6, xmm6
mulss xmm6, xmm3
cmp byte [esp + 0x40], 0
je 0x4776fb
mov eax, dword [esp + 0x1c]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm3
movss xmm3, dword [esp + 0x94]
movss dword [esp + 0x24], xmm0
movaps xmm0, xmm3
movss dword [esp + 0x58], xmm0
jmp 0x477704
movss xmm3, dword [esp + 0x94]
cmp byte [edi + 0xe60], 0
je 0x4777c5
test dword [esp + 0x50], 0x1000
jne 0x47775f
movss xmm2, dword [edi + 0x34]
movaps xmm0, xmm3
comiss xmm2, xmm5
mulss xmm0, dword [0x615060]
movaps xmm1, xmm5
jbe 0x477740
subss xmm1, xmm0
movaps xmm0, xmm7
maxss xmm0, xmm1
jmp 0x47774d
subss xmm1, xmm3
comiss xmm1, xmm2
jb 0x477766
addss xmm0, xmm1
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x34], xmm0
jmp 0x477766
mov dword [edi + 0x34], 0
cmp byte [esp + 0x40], 0
je 0x4777c5
movss xmm0, dword [esp + 0x64]
mov eax, dword [esp + 0x68]
movaps xmm1, xmm0
subss xmm1, dword [edx]
movss xmm3, dword [eax + 0x58]
comiss xmm3, xmm1
jbe 0x477791
movaps xmm0, xmm7
maxss xmm0, xmm1
jmp 0x47779b
subss xmm0, dword [esp + 0x74]
maxss xmm0, xmm3
subss xmm3, xmm0
movss dword [eax + 0x58], xmm0
addss xmm3, dword [eax + 0xc8]
movss dword [esp + 0x4c], xmm3
movss dword [eax + 0xc8], xmm3
movss dword [esp + 0x80], xmm3
jmp 0x4777cb
movss xmm3, dword [esp + 0x4c]
movss xmm5, dword [edi + 0x34]
mov edx, dword [edi + 0x40]
mov esi, dword [edi + 0x3c]
mov byte [edi + 0xe60], 0
movss dword [esp + 0x3c], xmm5
cmp esi, edx
je 0x477b79
mov eax, edx
cmovl eax, esi
mov esi, dword [esp + 0x30]
cmp dword [edi + 0x3c], edx
cmovge edx, dword [edi + 0x3c]
cmp byte [esp + 0x40], 0
lea esi, [esi + eax*2]
mov eax, dword [esp + 0x30]
lea edx, [eax + edx*2]
mov dword [esp + 0x30], edx
je 0x477821
movss dword [esp + 0xbc], xmm7
movss dword [esp + 0x78], xmm7
jmp 0x47782f
movss xmm0, dword [0x6150ec]
movss dword [esp + 0x78], xmm0
movups xmm1, xmmword [ecx + 0x1858]
comiss xmm7, xmm1
movaps xmm2, xmm1
movaps xmmword [esp + 0x140], xmm1
shufps xmm2, xmm1, 0xff
mulss xmm2, dword [ecx + 0x1518]
jbe 0x477857
movaps xmm0, xmm7
jmp 0x477863
movss xmm0, dword [0x6150c8]
minss xmm0, xmm1
movss xmm5, dword [0x615184]
movss xmm1, dword [esp + 0x144]
comiss xmm7, xmm1
mulss xmm0, xmm5
addss xmm0, dword [0x61508c]
cvttss2si eax, xmm0
mov dword [esp + 0x1c], eax
jbe 0x477892
movaps xmm0, xmm7
jmp 0x47789e
movss xmm0, dword [0x6150c8]
minss xmm0, xmm1
movss xmm1, dword [esp + 0x148]
mulss xmm0, xmm5
addss xmm0, dword [0x61508c]
cvttss2si eax, xmm0
shl eax, 8
or dword [esp + 0x1c], eax
comiss xmm7, xmm1
jbe 0x4778c8
movaps xmm0, xmm7
jmp 0x4778d4
movss xmm0, dword [0x6150c8]
minss xmm0, xmm1
movss xmm1, dword [0x61508c]
mulss xmm0, xmm5
addss xmm0, xmm1
cvttss2si eax, xmm0
shl eax, 0x10
or dword [esp + 0x1c], eax
comiss xmm7, xmm2
jbe 0x4778f9
movaps xmm0, xmm7
jmp 0x477905
movss xmm0, dword [0x6150c8]
minss xmm0, xmm2
mulss xmm0, xmm5
addss xmm0, xmm1
cvttss2si eax, xmm0
shl eax, 0x18
or eax, dword [esp + 0x1c]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x2c]
movss xmm0, dword [eax]
movaps xmm5, xmm0
addss xmm5, xmm4
movaps xmm4, xmm3
addss xmm4, xmm6
subss xmm5, dword [esp + 0x3c]
subss xmm4, xmm7
movss dword [esp + 0x74], xmm4
cmp esi, edx
jae 0x477b71
movss xmm1, dword [esp + 0x48]
mov eax, dword [esp + 0x28]
movaps xmm0, xmm1
movss xmm6, dword [eax]
addss xmm0, xmm6
comiss xmm4, xmm0
ja 0x477b6b
movss xmm0, dword [esp + 0x84]
comiss xmm0, xmm4
jbe 0x47799a
cmp esi, edx
jae 0x477b36
mov ax, word [esi]
add esi, 2
cmp ax, 0xa
je 0x477b36
cmp esi, edx
jb 0x477981
jmp 0x477b36
movaps xmm3, xmm7
mov edx, dword [ecx + 0x18b8]
movaps xmm1, xmm7
movss xmm2, dword [ecx + 0x18bc]
divss xmm2, dword [edx]
cmp esi, dword [esp + 0x30]
jae 0x477a00
nop dword [eax + eax]
movzx eax, word [esi]
add esi, 2
cmp eax, 0xa
je 0x4779f6
cmp eax, 0xd
je 0x4779ee
mov ecx, eax
cmp ecx, dword [edx + 0x1c]
jge 0x4779e1
mov eax, dword [edx + 0x24]
movss xmm0, dword [eax + ecx*4]
jmp 0x4779e6
movss xmm0, dword [edx + 0x38]
mulss xmm0, xmm2
addss xmm1, xmm0
cmp esi, dword [esp + 0x30]
jb 0x4779c0
jmp 0x477a00
movaps xmm3, xmm7
maxss xmm3, xmm1
movaps xmm1, xmm7
maxss xmm1, xmm3
comiss xmm7, xmm1
jb 0x477a3e
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x18b8]
cmp dword [eax + 0x1c], 0x20
jle 0x477a26
mov eax, dword [eax + 0x24]
movss xmm0, dword [eax + 0x80]
jmp 0x477a2b
movss xmm0, dword [eax + 0x38]
mulss xmm0, dword [0x61508c]
cvttss2si eax, xmm0
movd xmm1, eax
cvtdq2ps xmm1, xmm1
movss xmm2, dword [esp + 0xbc]
addss xmm1, xmm5
movss xmm0, dword [esp + 0x78]
subss xmm2, xmm6
movss xmm6, dword [esp + 0x9c]
addss xmm0, xmm4
movaps xmm3, xmm5
movss xmm5, dword [esp + 0x48]
addss xmm3, xmm7
minss xmm1, xmm6
addss xmm2, xmm4
minss xmm0, xmm5
maxss xmm3, dword [esp + 0x8c]
movss dword [esp + 0x148], xmm1
maxss xmm2, dword [esp + 0x84]
comiss xmm0, dword [esp + 0x84]
movss dword [esp + 0x140], xmm3
movss dword [esp + 0x144], xmm2
movss dword [esp + 0x14c], xmm0
jbe 0x477b2c
comiss xmm5, xmm2
jbe 0x477b2c
comiss xmm1, dword [esp + 0x8c]
jbe 0x477b2c
comiss xmm6, xmm3
jbe 0x477b2c
push 0xf
push ecx
mov dword [esp], 0
lea eax, [esp + 0x150]
push dword [esp + 0xa8]
push eax
lea eax, [esp + 0x150]
push eax
mov eax, dword [esp + 0x7c]
mov ecx, dword [eax + 0x270]
call fcn.0046a530
movss xmm0, dword [esp + 0x88]
xorps xmm7, xmm7
movss xmm4, dword [esp + 0x74]
movss dword [esp + 0x88], xmm0
movss xmm0, dword [esp + 0x90]
movss dword [esp + 0x90], xmm0
movss xmm1, dword [esp + 0x48]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
movss xmm0, dword [ecx]
mov ecx, dword [esp + 0x28]
movaps xmm5, xmm0
subss xmm5, dword [esp + 0x3c]
addss xmm4, dword [ecx]
mov ecx, dword [0x625898]
movss dword [esp + 0x74], xmm4
cmp esi, edx
jb 0x477953
movss xmm5, dword [esp + 0x3c]
jmp 0x477b7f
movss xmm0, dword [esp + 0x6c]
movss xmm5, dword [esp + 0x3c]
jmp 0x477b7f
movss xmm0, dword [esp + 0x6c]
cmp byte [esp + 0x40], 0
mov edx, dword [edi + 0x28]
jne 0x477b95
cmp edx, 0x200000
jge 0x477dd0
mov eax, dword [esp + 0x68]
subss xmm0, xmm5
movups xmm2, xmmword [ecx + 0x15b8]
movss xmm6, dword [0x6150c8]
comiss xmm7, xmm2
mov eax, dword [eax + 0x270]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x18b8]
movss dword [esp + 0xa0], xmm0
movaps xmm1, xmm2
movss xmm0, dword [esp + 0x4c]
mov dword [esp + 0x74], eax
subss xmm0, xmm7
mov eax, dword [esp + 0x28]
shufps xmm1, xmm2, 0xff
mulss xmm1, dword [ecx + 0x1518]
movss xmm3, dword [eax]
movss dword [esp + 0xa4], xmm0
movaps xmmword [esp + 0x140], xmm2
jbe 0x477c09
movaps xmm0, xmm7
jmp 0x477c10
movaps xmm0, xmm6
minss xmm0, xmm2
movss xmm4, dword [0x615184]
movss xmm5, dword [0x61508c]
movss xmm2, dword [esp + 0x144]
comiss xmm7, xmm2
mulss xmm0, xmm4
addss xmm0, xmm5
cvttss2si ecx, xmm0
jbe 0x477c3f
movaps xmm0, xmm7
jmp 0x477c46
movaps xmm0, xmm6
minss xmm0, xmm2
movss xmm2, dword [esp + 0x148]
mulss xmm0, xmm4
addss xmm0, xmm5
cvttss2si eax, xmm0
shl eax, 8
or ecx, eax
comiss xmm7, xmm2
jbe 0x477c6a
movaps xmm0, xmm7
jmp 0x477c71
movaps xmm0, xmm6
minss xmm0, xmm2
mulss xmm0, xmm4
addss xmm0, xmm5
cvttss2si eax, xmm0
shl eax, 0x10
or ecx, eax
comiss xmm7, xmm1
jbe 0x477c8c
movaps xmm0, xmm7
jmp 0x477c93
movaps xmm0, xmm6
minss xmm0, xmm1
mov eax, dword [esp + 0x44]
mulss xmm0, xmm4
lea edi, [edx + eax]
addss xmm0, xmm5
lea edx, [esp + 0x160]
cvttss2si esi, xmm0
shl esi, 0x18
or esi, ecx
xor ecx, ecx
cmp byte [esp + 0x40], cl
cmovne edx, ecx
test esi, 0xff000000
je 0x477dd0
test edi, edi
jne 0x477ce0
mov ecx, eax
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x477cd0
mov eax, dword [esp + 0x44]
sub ecx, edi
lea edi, [ecx + eax]
cmp eax, edi
je 0x477dd0
cmp dword [esp + 0x74], 0
mov ecx, dword [esp + 0x1c]
jne 0x477cfd
mov eax, dword [ecx + 0x28]
mov eax, dword [eax + 8]
mov dword [esp + 0x74], eax
ucomiss xmm3, xmm7
lahf
test ah, 0x44
jp 0x477d0e
mov eax, dword [ecx + 0x28]
movss xmm3, dword [eax + 0xc]
mov eax, dword [esp + 0x1c]
mov ecx, dword [ecx + 0x3c]
shl ecx, 4
mov eax, dword [eax + 0x44]
movups xmm0, xmmword [eax + ecx - 0x10]
movups xmmword [esp + 0x140], xmm0
test edx, edx
je 0x477d95
movss xmm1, dword [edx]
movss xmm0, dword [esp + 0x140]
comiss xmm0, xmm1
jae 0x477d47
movss dword [esp + 0x140], xmm1
movss xmm1, dword [edx + 4]
movss xmm0, dword [esp + 0x144]
comiss xmm0, xmm1
jae 0x477d63
movss dword [esp + 0x144], xmm1
movss xmm0, dword [edx + 8]
comiss xmm0, dword [esp + 0x148]
ja 0x477d7b
movss dword [esp + 0x148], xmm0
movss xmm0, dword [edx + 0xc]
comiss xmm0, dword [esp + 0x14c]
ja 0x477d93
movss dword [esp + 0x14c], xmm0
test edx, edx
setne al
movaps xmm2, xmm3
movzx eax, al
push eax
push ecx
mov ecx, dword [esp + 0x7c]
lea eax, [esp + 0x148]
mov dword [esp], 0
push edi
push dword [esp + 0x50]
push eax
push esi
push dword [esp + 0xbc]
push dword [esp + 0xbc]
push dword [esp + 0x3c]
call fcn.0046cf20
mov esi, dword [esp + 0x10]
cmp byte [esi + 0xbe], 0
je 0x477e30
movss xmm0, dword [esi + 0x2b70]
xorps xmm1, xmm1
comiss xmm1, xmm0
jae 0x477e30
cvtps2pd xmm0, xmm0
movsd qword [esp + 0xa0], xmm0
fld qword [esp + 0xa0]
fld qword [0x6150e0]
call fcn.0058edf0
movss xmm0, dword [0x6150b0]
fstp qword [esp + 0xa0]
movsd xmm1, qword [esp + 0xa0]
cvtpd2ps xmm1, xmm1
comiss xmm0, xmm1
jae 0x477e30
xor al, al
jmp 0x477e32
mov al, 1
movss xmm3, dword [esp + 0x4c]
xorps xmm7, xmm7
mov ecx, dword [esp + 0x2c]
movss xmm6, dword [0x61508c]
movss xmm5, dword [0x6150c8]
addss xmm3, dword [esp + 0x64]
movss xmm4, dword [ecx]
mov ecx, dword [esp + 0x28]
addss xmm4, dword [esp + 0xcc]
subss xmm3, xmm7
subss xmm4, dword [esp + 0x3c]
movss dword [esp + 0x4c], xmm3
movaps xmm0, xmm3
movaps xmm1, xmm3
subss xmm0, dword [ecx]
movss dword [esp + 0x6c], xmm4
movaps xmm2, xmm4
movss dword [esp + 0x140], xmm4
addss xmm2, xmm5
subss xmm1, dword [0x6150d4]
addss xmm0, xmm6
movss dword [esp + 0x148], xmm2
movss dword [esp + 0x14c], xmm1
movss dword [esp + 0x144], xmm0
test al, al
je 0x47801f
comiss xmm1, dword [esp + 0x84]
jbe 0x47801f
movss xmm5, dword [esp + 0x90]
comiss xmm5, xmm0
jbe 0x478017
comiss xmm2, dword [esp + 0x8c]
jbe 0x478017
movss xmm0, dword [esp + 0x88]
comiss xmm0, xmm4
jbe 0x478017
mov ecx, dword [0x625898]
movss dword [esp + 0xd4], xmm1
movss dword [esp + 0xd0], xmm4
movss xmm4, dword [0x6150c8]
movups xmm2, xmmword [ecx + 0x15b8]
comiss xmm7, xmm2
movaps xmm1, xmm2
movaps xmmword [esp + 0x160], xmm2
shufps xmm1, xmm2, 0xff
mulss xmm1, dword [ecx + 0x1518]
jbe 0x477f4d
xorps xmm0, xmm0
jmp 0x477f54
movaps xmm0, xmm4
minss xmm0, xmm2
movss xmm3, dword [0x615184]
movss xmm2, dword [esp + 0x164]
comiss xmm7, xmm2
mulss xmm0, xmm3
addss xmm0, xmm6
cvttss2si ecx, xmm0
jbe 0x477f7b
xorps xmm0, xmm0
jmp 0x477f82
movaps xmm0, xmm4
minss xmm0, xmm2
movss xmm2, dword [esp + 0x168]
mulss xmm0, xmm3
addss xmm0, xmm6
cvttss2si eax, xmm0
shl eax, 8
or ecx, eax
comiss xmm7, xmm2
jbe 0x477fa6
xorps xmm0, xmm0
jmp 0x477fad
movaps xmm0, xmm4
minss xmm0, xmm2
mulss xmm0, xmm3
addss xmm0, xmm6
cvttss2si eax, xmm0
shl eax, 0x10
or ecx, eax
comiss xmm7, xmm1
jbe 0x477fc8
xorps xmm0, xmm0
jmp 0x477fcf
movaps xmm0, xmm4
minss xmm0, xmm1
mulss xmm0, xmm3
push ecx
mov dword [esp], 0x3f800000
addss xmm0, xmm6
cvttss2si eax, xmm0
shl eax, 0x18
or eax, ecx
push eax
lea eax, [esp + 0xd8]
push eax
lea eax, [esp + 0x14c]
push eax
mov eax, dword [esp + 0x78]
mov ecx, dword [eax + 0x270]
call fcn.0046a2f0
movss xmm3, dword [esp + 0x4c]
xorps xmm7, xmm7
movss xmm4, dword [esp + 0x6c]
movss xmm5, dword [0x6150c8]
cmp byte [esp + 0x5c], 0
mov eax, dword [esp + 0x28]
mov ecx, dword [0x625898]
je 0x47804e
subss xmm3, dword [eax]
subss xmm4, xmm5
movss dword [esi + 0x2c1c], xmm3
movss dword [esi + 0x2c18], xmm4
jmp 0x47804e
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x44]
cmp byte [esp + 0x40], 0
je 0x478109
movss xmm2, dword [esp + 0x24]
addss xmm2, dword [eax]
mov eax, dword [ecx + 0x199c]
movss xmm3, dword [esp + 0x58]
addss xmm3, xmm7
mov byte [eax + 0x78], 1
mov eax, dword [ecx + 0x199c]
cmp byte [eax + 0x7b], 0
jne 0x4780ff
movss xmm1, dword [eax + 0xc4]
lea ecx, [esp + 0xd0]
movss xmm0, dword [eax + 0xc8]
addss xmm3, xmm1
addss xmm2, xmm0
movss dword [esp + 0x140], xmm1
movss dword [esp + 0x144], xmm0
movss dword [esp + 0x148], xmm3
subss xmm3, xmm1
movss dword [esp + 0x14c], xmm2
movaps xmm1, xmm7
subss xmm2, xmm0
movss dword [esp + 0xd0], xmm3
movss dword [esp + 0xd4], xmm2
call fcn.00451600
push 0
xor edx, edx
lea ecx, [esp + 0x144]
call fcn.00451770
add esp, 4
call fcn.00454850
call fcn.0045a670
mov ecx, dword [esp + 0x98]
test cl, cl
je 0x478120
call fcn.0045a110
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x2c54], 0
je 0x478148
test cl, cl
jne 0x478148
push 0
mov edx, esi
lea ecx, [esp + 0x80]
call fcn.0045f420
mov eax, dword [esp + 0x14]
add esp, 4
movss xmm0, dword [esp + 0xc8]
xorps xmm1, xmm1
comiss xmm0, xmm1
jbe 0x4781ab
movss xmm0, dword [esp + 0xc0]
xor edx, edx
addss xmm0, dword [eax + 0x1564]
mov ecx, dword [esp + 0xc4]
movss dword [esp + 0x7c], xmm0
movss xmm0, dword [esp + 0x84]
addss xmm0, dword [eax + 0x1550]
movss dword [esp + 0x80], xmm0
push dword [esp + 0x80]
push dword [esp + 0x80]
push 1
call fcn.0044f4b0
add esp, 0xc
mov cl, byte [esp + 0x57]
test cl, cl
je 0x4781cc
mov eax, dword [0x625898]
mov byte [eax + 0x19ce], 1
mov eax, dword [eax + 0x199c]
or dword [eax + 0x10c], 4
test byte [esp + 0x50], 0x20
movzx eax, cl
movzx ecx, byte [esp + 0x3b]
cmovne eax, ecx
mov ecx, dword [esp + 0x17c]
pop edi
pop esi
xor ecx, esp
call fcn.004acfb6
mov esp, ebp
pop ebp
ret