Function at 0x503a30
Capabilities:
Encode data using base64
Print debug messages
Resolve function by parsing pe exports

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5ca603
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x388
mov eax, dword [0x623ec0]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x358], edi
mov ecx, dword [0x9c25ac]
mov esi, dword [ebx + 8]
mov dword [ebp - 0x350], esi
mov eax, dword [ecx]
mov edx, dword [eax + 0x34]
movzx eax, word [esi + 0x26]
push eax
call edx
mov esi, dword [0x9c25ac]
mov dword [ebp - 0x34c], eax
mov ecx, dword [esi]
mov edx, dword [ecx + 0x34]
mov ecx, dword [ebp - 0x350]
add ecx, 0x3c
mov dword [ebp - 0x2f0], ecx
movzx ecx, word [ecx]
push ecx
mov ecx, esi
call edx
mov esi, dword [ebp - 0x350]
mov dword [ebp - 0x35c], eax
mov byte [ebp - 0x36d], 0
cmp word [esi + 0x28], 0x68
jne 0x503ae6
mov eax, 0x27
mov byte [ebp - 0x36d], 1
mov word [esi + 0x28], ax
lea ecx, [ebp - 0x348]
call fcn.0045e120
movss xmm0, dword [0x604e14]
mov eax, dword [ebp - 0x34c]
mov dword [ebp - 0x36c], 0
movss dword [ebp - 0x2e4], xmm0
mov dword [ebp - 0x360], 0x97
test eax, eax
je 0x508086
cmp word [esi + 0x20], 0
je 0x503c51
mov ecx, dword [0x9c25b4]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
mov edx, eax
mov eax, dword [ebp - 0x34c]
mov ecx, dword [eax + 0x60]
mov ecx, dword [ecx + 0x2f8]
test ecx, ecx
je 0x503bc7
mov eax, dword [eax + 0x5c]
cmp eax, 3
je 0x503ba5
cmp eax, 8
je 0x503ba5
mov eax, dword [ebp - 0x34c]
cmp dword [eax + 0x218], 0x28
je 0x503ba5
mov eax, dword [eax + 0xf4]
sub eax, 0x29
je 0x503b9c
sub eax, 0x3c
je 0x503b93
sub eax, 2
je 0x503b8a
mov byte [ecx + 0x2900], 1
jmp 0x503bac
mov byte [ecx + 0x2900], 4
jmp 0x503bac
mov byte [ecx + 0x2900], 2
jmp 0x503bac
mov byte [ecx + 0x2900], 3
jmp 0x503bac
mov byte [ecx + 0x2900], 5
mov eax, dword [ebp - 0x34c]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + 0x2f8]
mov dword [eax + 0x80], edx
mov eax, dword [ebp - 0x34c]
mov eax, dword [eax + 0x60]
mov ecx, dword [eax + 0x2fc]
mov eax, dword [ebp - 0x34c]
test ecx, ecx
je 0x503c51
mov eax, dword [eax + 0x5c]
cmp eax, 3
je 0x503c2f
cmp eax, 8
je 0x503c2f
mov eax, dword [ebp - 0x34c]
cmp dword [eax + 0x218], 0x28
je 0x503c2f
mov eax, dword [eax + 0xf4]
sub eax, 0x29
je 0x503c26
sub eax, 0x3c
je 0x503c1d
sub eax, 2
je 0x503c14
mov byte [ecx + 0x2900], 1
jmp 0x503c36
mov byte [ecx + 0x2900], 4
jmp 0x503c36
mov byte [ecx + 0x2900], 2
jmp 0x503c36
mov byte [ecx + 0x2900], 3
jmp 0x503c36
mov byte [ecx + 0x2900], 5
mov eax, dword [ebp - 0x34c]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + 0x2fc]
mov dword [eax + 0x80], edx
mov eax, dword [ebp - 0x34c]
cmp dword [eax + 0x218], 0x20
jne 0x503c84
cmp byte [esi + 0x2e], 4
jne 0x503c84
mov eax, dword [ebp - 0x35c]
cmp eax, dword [edi + 0x4c]
jne 0x503c84
mov ecx, dword [0x9c25b4]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
mov ecx, dword [ebp - 0x34c]
mov dword [ecx + 0x834], eax
mov edx, dword [ebp - 0x34c]
lea edi, [esi + 0x3c]
xor ecx, ecx
mov dword [ebp - 0x374], 0x39d
add edx, 0x84a
nop
movzx eax, word [esi + 4]
mov esi, eax
mov dword [ebp - 0x2e8], esi
mov esi, 0x39d
cmp ax, si
mov esi, dword [ebp - 0x350]
jne 0x503cc1
cmp ecx, 1
jge 0x503ce6
mov eax, 0x39e
cmp word [ebp - 0x2e8], ax
jne 0x503cd4
cmp ecx, 2
jge 0x503ce6
mov ax, word [edi]
inc ecx
mov word [edx], ax
add edi, 8
add edx, 2
cmp ecx, 0xd
jl 0x503ca0
movzx eax, byte [esi + 0x28]
mov edi, dword [ebp - 0x358]
mov ecx, edi
push eax
push dword [ebp - 0x34c]
call fcn.0051d370
mov eax, dword [ebp - 0x34c]
movss xmm0, dword [eax + 0x28]
movss dword [ebp - 0x348], xmm0
movss xmm0, dword [eax + 0x2c]
movss dword [ebp - 0x344], xmm0
cmp dword [eax + 0x5c], 0x14
jne 0x503d3b
xor ecx, ecx
mov edx, 1
cmp word [eax + 0x176], cx
cmove ecx, edx
mov dword [ebp - 0x36c], ecx
cmp eax, dword [edi + 0x4c]
jne 0x503d4a
cmp byte [esi + 0x2f], 0
jne 0x503e2e
movzx eax, word [esi + 0x28]
mov ecx, eax
test ax, ax
js 0x503e28
cmp cx, 0x68
jge 0x503e28
mov ecx, dword [ebp - 0x34c]
mov eax, dword [esi + 0x34]
mov dword [ecx + 0x630], eax
mov eax, ecx
cmp eax, dword [edi + 0x4c]
jne 0x503e4c
mov eax, dword [0x9c25ac]
mov ecx, dword [esi + 0x34]
push 0x492
mov dword [eax + 0x948], ecx
mov ecx, dword [edi + 0x28]
mov eax, dword [ecx]
mov eax, dword [eax + 0x48]
call eax
mov esi, dword [edi + 0x28]
push 0x10050
mov dword [ebp - 0x2e8], eax
mov ecx, dword [esi]
mov edx, dword [ecx + 0x48]
mov ecx, esi
call edx
mov esi, eax
mov eax, dword [ebp - 0x2e8]
test eax, eax
je 0x503dd5
mov ecx, dword [eax]
mov edx, dword [ecx + 0x88]
mov ecx, dword [ebp - 0x34c]
push dword [ecx + 0x630]
mov ecx, eax
call edx
test esi, esi
je 0x503e22
push 0x80
lea eax, [ebp - 0x98]
push 0
push eax
call fcn.00468b40
mov eax, dword [ebp - 0x34c]
add esp, 0xc
push dword [eax + 0x630]
lea eax, [ebp - 0x98]
push 0x5fd138
push eax
call fcn.00445aa0
mov eax, dword [esi]
lea ecx, [ebp - 0x98]
add esp, 0xc
push 0
push ecx
mov ecx, esi
call dword [eax + 0x80]
mov esi, dword [ebp - 0x350]
mov eax, dword [ebp - 0x34c]
cmp eax, dword [edi + 0x4c]
jne 0x503e4c
mov al, byte [esi + 0x2f]
cmp al, 1
je 0x503e4c
test al, al
jne 0x504654
cmp byte [esi + 0x2e], 0xfe
jne 0x504654
movzx eax, word [esi + 0x28]
cmp ax, 4
jne 0x503e81
mov eax, dword [ebp - 0x34c]
mov ecx, dword [0x9c25b4]
mov byte [eax + 0xa18], 1
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
mov edx, dword [ebp - 0x34c]
mov dword [edx + 0x844], eax
mov al, byte [esi + 0x28]
jmp 0x503e87
mov edx, dword [ebp - 0x34c]
cmp dword [ebp - 0x35c], 0
movss xmm0, dword [edx + 0x1f8]
movss dword [ebp - 0x24c], xmm0
jne 0x5040b6
movzx eax, word [esi + 0x24]
lea ecx, [ebp - 0x25c]
movd xmm2, eax
movzx eax, word [esi + 0x2a]
cvtdq2ps xmm2, xmm2
movd xmm1, eax
cvtdq2ps xmm1, xmm1
call fcn.0045e130
movsx ecx, byte [esi + 0x2e]
movss xmm0, dword [eax]
movss dword [ebp - 0x328], xmm0
movss xmm0, dword [eax + 4]
mov al, byte [esi + 0x28]
movss dword [ebp - 0x324], xmm0
push dword [ebp - 0x324]
push dword [ebp - 0x328]
push eax
push ecx
mov ecx, dword [ebp - 0x34c]
call fcn.00576cb0
movss xmm0, dword [ebp - 0x24c]
mov ecx, dword [ebp - 0x34c]
cmp word [esi + 0x28], 0x62
jne 0x503f48
movzx eax, word [esi + 0x24]
movd xmm1, eax
movzx eax, word [esi + 0x2a]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
subss xmm1, dword [ecx + 0x2c]
cvtdq2ps xmm0, xmm0
subss xmm0, dword [ecx + 0x28]
call fcn.0045e630
addss xmm0, dword [0x604e1c]
movss dword [ebp - 0x24c], xmm0
test byte [esi + 0x30], 0x38
mov eax, dword [ebp - 0x34c]
je 0x503f5e
mov dword [eax + 0x9fc], 1
cmp dword [eax + 0x218], 0x2c
je 0x503f7f
movaps xmm1, xmm0
mov ecx, eax
call fcn.00577130
movss xmm0, dword [ebp - 0x24c]
mov eax, dword [ebp - 0x34c]
mov ecx, dword [ebp - 0x35c]
test ecx, ecx
je 0x503fbc
cmp ecx, eax
je 0x503fbc
cmp ecx, dword [edi + 0x4c]
je 0x503fbc
cmp dword [ecx + 0x218], 0x38
jne 0x503fa5
cmp word [ecx + 0x172], 0
je 0x503fbc
cmp word [esi + 0x28], 0x1b
je 0x503fbc
addss xmm0, dword [0x604fb8]
movaps xmm1, xmm0
call fcn.00577130
movzx eax, word [esi + 0x28]
mov ecx, eax
test ax, ax
js 0x503fcd
cmp cx, 0x68
jl 0x503ff7
mov eax, 0x97
cmp cx, ax
jl 0x503fe1
mov eax, 0x9b
cmp cx, ax
jle 0x503ff7
cmp cx, 0x68
je 0x503ff7
cmp cx, 0x69
je 0x503ff7
cmp cx, 0x6f
jne 0x5042a8
mov edx, dword [ebp - 0x34c]
mov word [edx + 0x6b4], cx
movzx eax, byte [esi + 0x31]
mov word [edx + 0x6b6], ax
cmp byte [esi + 0x2e], 0xfe
jne 0x504021
mov eax, 1
mov word [edx + 0x6b6], ax
mov eax, dword [ebp - 0x35c]
test eax, eax
jne 0x504173
movzx eax, word [esi + 0x24]
lea ecx, [ebp - 0x324]
movd xmm2, eax
movzx eax, word [esi + 0x2a]
cvtdq2ps xmm2, xmm2
movd xmm1, eax
cvtdq2ps xmm1, xmm1
call fcn.0045e130
mov ecx, edi
push dword [eax + 4]
push dword [eax]
call fcn.00592d40
lea ecx, [ebp - 0x30c]
movd xmm2, eax
movzx eax, word [esi + 0x24]
cvtdq2ps xmm2, xmm2
movd xmm3, eax
movzx eax, word [esi + 0x2a]
mulss xmm2, dword [0x604ccc]
cvtdq2ps xmm3, xmm3
movd xmm1, eax
cvtdq2ps xmm1, xmm1
call fcn.00445a40
mov edx, dword [ebp - 0x34c]
movq xmm0, qword [eax]
movq qword [edx + 0x6a4], xmm0
mov eax, dword [eax + 8]
mov dword [edx + 0x6ac], eax
mov dword [edx + 0x6b0], 0
jmp 0x504250
mov cl, byte [esi + 0x2e]
cmp cl, 0xfe
je 0x503f06
cmp word [edx + 0x21c], 0x32
jg 0x5040e4
movzx edi, word [esi + 0x28]
mov edx, dword [ebp - 0x34c]
mov eax, dword [ebp - 0x35c]
mov dword [ebp - 0x2e4], edi
jmp 0x5040fb
mov edi, dword [ebp - 0x35c]
movzx eax, al
mov dword [ebp - 0x2e4], eax
mov eax, edi
mov dword [ebp - 0x2e8], edi
push dword [ebp - 0x2e4]
mov edi, dword [ebp - 0x358]
push eax
movsx eax, cl
mov ecx, edx
push eax
call fcn.00576e70
mov eax, dword [ebp - 0x35c]
mov ecx, dword [ebp - 0x34c]
movss xmm0, dword [eax + 0x30]
addss xmm0, dword [0x604e14]
movss dword [ebp - 0x2e4], xmm0
cmp ecx, eax
je 0x504166
movss xmm1, dword [eax + 0x2c]
movss xmm0, dword [eax + 0x28]
subss xmm1, dword [ecx + 0x2c]
subss xmm0, dword [ecx + 0x28]
call fcn.0045e630
addss xmm0, dword [0x604e1c]
movss dword [ebp - 0x24c], xmm0
jmp 0x503f06
movss xmm0, dword [ebp - 0x24c]
jmp 0x503f0c
mov dword [edx + 0x6b0], eax
cmp dword [eax + 0x218], 0x38
jne 0x50421b
cmp word [eax + 0x172], 0
jne 0x50421b
movss xmm3, dword [eax + 0x2c]
lea ecx, [ebp - 0x2fc]
movss xmm1, dword [eax + 0x28]
subss xmm3, dword [edx + 0x2c]
subss xmm1, dword [edx + 0x28]
movss xmm2, dword [eax + 0x30]
call fcn.00445a40
movss xmm3, dword [ebp - 0x2f4]
lea ecx, [ebp - 0x328]
movss xmm1, dword [ebp - 0x2fc]
mov eax, dword [ebp - 0x34c]
mulss xmm3, dword [0x604d2c]
mulss xmm1, dword [0x604d2c]
addss xmm3, dword [eax + 0x2c]
addss xmm1, dword [eax + 0x28]
mov eax, dword [ebp - 0x35c]
movss xmm2, dword [eax + 0x30]
call fcn.00445a40
mov edx, dword [ebp - 0x34c]
movq xmm0, qword [eax]
movq qword [edx + 0x6a4], xmm0
mov eax, dword [eax + 8]
mov dword [edx + 0x6ac], eax
jmp 0x504250
movss xmm3, dword [eax + 0x2c]
lea ecx, [ebp - 0x340]
movss xmm2, dword [eax + 0x30]
movss xmm1, dword [eax + 0x28]
call fcn.00445a40
mov ecx, dword [ebp - 0x34c]
movq xmm0, qword [eax]
movq qword [ecx + 0x6a4], xmm0
mov eax, dword [eax + 8]
mov dword [ecx + 0x6ac], eax
movzx eax, word [esi + 0x28]
mov edx, 0x97
mov ecx, eax
cmp ax, dx
jl 0x50426a
mov eax, 0x99
cmp cx, ax
jle 0x50428a
cmp cx, 0x68
je 0x50428a
cmp cx, 0x69
je 0x50428a
mov ecx, dword [0x9c25b4]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
add eax, 0x1f4
jmp 0x50429c
mov ecx, dword [0x9c25b4]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
add eax, 0xc8
mov ecx, dword [ebp - 0x34c]
mov dword [ecx + 0x6a0], eax
mov eax, dword [ebp - 0x34c]
mov edx, dword [ebp - 0x35c]
cmp dword [eax + 0x218], 0x3e
jne 0x5043e0
cmp word [eax + 0x172], 2
jne 0x5043e0
cmp word [esi + 0x28], 0x6c
jne 0x5043e0
test edx, edx
je 0x5043e0
movss xmm2, dword [eax + 0x30]
lea ecx, [ebp - 0x30c]
addss xmm2, dword [0x604dc4]
movss xmm3, dword [eax + 0x2c]
movss xmm1, dword [eax + 0x28]
call fcn.00445a40
mov eax, dword [ebp - 0x35c]
lea ecx, [ebp - 0x2fc]
movss xmm3, dword [eax + 0x2c]
movss xmm2, dword [eax + 0x30]
movss xmm1, dword [eax + 0x28]
call fcn.00445a40
movss xmm0, dword [ebp - 0x2f8]
addss xmm0, dword [0x604dc4]
push 0xc0
movss dword [ebp - 0x2f8], xmm0
movss xmm0, dword [ebp - 0x308]
addss xmm0, dword [0x604dc4]
movss dword [ebp - 0x308], xmm0
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x354], esi
mov dword [ebp - 4], 0
mov ecx, esi
push 0xc0
call fcn.0045e550
movq xmm0, qword [ebp - 0x2fc]
mov eax, dword [ebp - 0x2f4]
push 0
push 5
sub esp, 0xc
mov ecx, esp
sub esp, 0xc
movq qword [ecx], xmm0
movq xmm0, qword [ebp - 0x30c]
mov dword [ecx + 8], eax
mov ecx, esp
mov eax, dword [ebp - 0x304]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, esi
call fcn.005aba50
mov dword [ebp - 4], 0xffffffff
test eax, eax
je 0x50464e
mov ecx, dword [edi + 0x2c]
test ecx, ecx
je 0x50464e
push eax
call fcn.005bcdc0
jmp 0x50464e
movzx eax, word [esi + 0x28]
mov ecx, eax
cmp ax, 6
jne 0x5044d4
mov eax, dword [ebp - 0x34c]
lea ecx, [ebp - 0x2fc]
movss xmm2, dword [eax + 0x30]
addss xmm2, dword [0x604dc4]
movss xmm3, dword [eax + 0x2c]
movss xmm1, dword [eax + 0x28]
call fcn.00445a40
push 0xdc
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x354], esi
mov dword [ebp - 4], 1
mov ecx, esi
push 0xdc
call fcn.0045fad0
xorps xmm3, xmm3
lea ecx, [ebp - 0x30c]
xorps xmm2, xmm2
xorps xmm1, xmm1
call fcn.00445a40
push ecx
mov dword [esp], 0
push 5
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
push ecx
mov dword [esp], 0x3f800000
push 0x3e8
push 0xff222299
push 0xff5555ff
sub esp, 0xc
mov ecx, esp
push dword [ebp - 0x35c]
movq qword [ecx], xmm0
movq xmm0, qword [ebp - 0x2fc]
sub esp, 0xc
mov dword [ecx + 8], eax
mov ecx, esp
mov eax, dword [ebp - 0x2f4]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, esi
call fcn.004f64c0
mov dword [ebp - 4], 0xffffffff
test eax, eax
je 0x50464e
mov ecx, dword [edi + 0x2c]
test ecx, ecx
je 0x50464e
push eax
call fcn.005bcdc0
jmp 0x50464e
cmp cx, 3
jne 0x50458e
mov eax, dword [ebp - 0x34c]
lea ecx, [ebp - 0x2fc]
movss xmm2, dword [eax + 0x30]
addss xmm2, dword [0x604dc4]
movss xmm3, dword [eax + 0x2c]
movss xmm1, dword [eax + 0x28]
call fcn.00445a40
movss xmm0, dword [ebp - 0x2f8]
subss xmm0, dword [0x604d2c]
push 0x90
movss dword [ebp - 0x2f8], xmm0
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x354], esi
mov dword [ebp - 4], 2
mov ecx, esi
push 0x90
call fcn.0045e590
movq xmm0, qword [ebp - 0x2fc]
mov eax, dword [ebp - 0x2f4]
push 1
sub esp, 0xc
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, esi
call fcn.005a92c0
mov dword [ebp - 4], 0xffffffff
test eax, eax
je 0x50464e
mov ecx, dword [edi + 0x2c]
test ecx, ecx
je 0x50464e
push eax
call fcn.005bcdc0
jmp 0x50464e
cmp cx, 5
jne 0x504694
mov eax, dword [ebp - 0x34c]
lea ecx, [ebp - 0x2fc]
movss xmm2, dword [eax + 0x30]
addss xmm2, dword [0x604dc4]
movss xmm3, dword [eax + 0x2c]
movss xmm1, dword [eax + 0x28]
call fcn.00445a40
movss xmm0, dword [ebp - 0x2f8]
subss xmm0, dword [0x604d2c]
push 0x94
movss dword [ebp - 0x2f8], xmm0
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x354], esi
mov dword [ebp - 4], 3
mov ecx, esi
push 0x94
call fcn.0045fab0
movq xmm0, qword [ebp - 0x2fc]
mov eax, dword [ebp - 0x2f4]
push 0
push 2
sub esp, 0xc
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, esi
call fcn.004f7560
mov dword [ebp - 4], 0xffffffff
test eax, eax
je 0x50463d
mov ecx, dword [edi + 0x2c]
test ecx, ecx
je 0x50463d
push eax
call fcn.005bcdc0
push 0
xor edx, edx
mov ecx, 0x97
call fcn.005bc750
add esp, 4
mov esi, dword [ebp - 0x350]
mov eax, dword [ebp - 0x34c]
movss xmm2, dword [eax + 0x30]
lea ecx, [ebp - 0x26c]
addss xmm2, dword [0x604dc4]
movss xmm3, dword [eax + 0x2c]
movss xmm1, dword [eax + 0x28]
call fcn.00445a40
mov ecx, dword [eax + 8]
movq xmm0, qword [eax]
mov dword [ebp - 0x368], ecx
mov dword [ebp - 0x304], ecx
jmp 0x508210
cmp cx, 0x2d
jne 0x504813
movzx eax, word [esi + 0x24]
lea ecx, [ebp - 0x324]
movd xmm1, eax
movzx eax, word [esi + 0x2a]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
addss xmm1, dword [0x604d2c]
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x2e8], xmm1
movaps xmm2, xmm1
addss xmm0, dword [0x604d2c]
movaps xmm1, xmm0
movss dword [ebp - 0x2e4], xmm0
call fcn.0045e130
mov ecx, edi
push dword [eax + 4]
push dword [eax]
call fcn.00592d40
movss xmm3, dword [ebp - 0x2e8]
lea ecx, [ebp - 0x2fc]
movss xmm1, dword [ebp - 0x2e4]
movd xmm2, eax
cvtdq2ps xmm2, xmm2
mulss xmm2, dword [0x604ccc]
call fcn.00445a40
mov eax, dword [ebp - 0x35c]
test eax, eax
je 0x50475c
movss xmm2, dword [eax + 0x30]
lea ecx, [ebp - 0x30c]
addss xmm2, dword [0x604dc4]
movss xmm3, dword [eax + 0x2c]
movss xmm1, dword [eax + 0x28]
call fcn.00445a40
movq xmm0, qword [eax]
movq qword [ebp - 0x2fc], xmm0
mov eax, dword [eax + 8]
mov dword [ebp - 0x2f4], eax
push 0x90
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x354], esi
mov dword [ebp - 4], 4
mov ecx, esi
push 0x90
call fcn.0045e590
xorps xmm3, xmm3
lea ecx, [ebp - 0x30c]
xorps xmm2, xmm2
xorps xmm1, xmm1
call fcn.00445a40
push 0x3e8
sub esp, 0xc
mov ecx, esp
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
push 1
push ecx
movq qword [ecx], xmm0
movq xmm0, qword [ebp - 0x2fc]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x2f4]
mov dword [esp], 0x3f800000
push 0x38
push 1
push 0
push ecx
mov dword [esp], 0x3dcccccd
push 0x14
push 0
sub esp, 0xc
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, esi
call fcn.004f3790
mov dword [ebp - 4], 0xffffffff
test eax, eax
je 0x504805
mov ecx, dword [edi + 0x2c]
test ecx, ecx
je 0x504805
push eax
call fcn.005bcdc0
push 0
xor edx, edx
mov ecx, 0x9e
jmp 0x504646
cmp cx, 0x22
jne 0x50490b
cmp byte [esi + 0x2e], 0xfe
jne 0x5049de
mov eax, dword [ebp - 0x34c]
cmp dword [eax + 0x750], 0
je 0x50465a
push 0x184
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x354], esi
mov dword [ebp - 4], 5
mov ecx, esi
push 0x184
call fcn.0045e530
movss xmm3, dword [0x604ccc]
mov ecx, esi
push 0x50
push 1
sub esp, 0xc
mov dword [esp + 8], 0x3b03126f
mov dword [esp + 4], 0x3dcccccd
mov dword [esp], 0x3dcccccd
push 0x2bc
push 1
call fcn.004eb060
mov esi, eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x34c]
test esi, esi
je 0x50807b
mov dword [esi + 0x6c], 1
mov ecx, dword [eax + 0x750]
movss xmm2, dword [ecx + 0x30]
addss xmm2, dword [0x604ccc]
movss xmm3, dword [ecx + 0x2c]
movss xmm1, dword [ecx + 0x28]
lea ecx, [ebp - 0x2fc]
call fcn.00445a40
push 0xffaaeeff
movq xmm0, qword [eax]
mov ecx, esi
movq qword [esi + 0x14c], xmm0
mov eax, dword [eax + 8]
mov dword [esi + 0x154], eax
mov eax, dword [esi]
call dword [eax + 0x3c]
mov ecx, dword [edi + 0x2c]
push esi
call fcn.005bcdc0
jmp 0x50464e
cmp cx, 0x20
jne 0x5049de
cmp byte [esi + 0x2e], 0xfe
jne 0x506981
mov eax, dword [ebp - 0x34c]
cmp dword [eax + 0x750], 0
je 0x50465a
push 0x184
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x354], esi
mov dword [ebp - 4], 6
mov ecx, esi
push 0x184
call fcn.0045e530
movss xmm3, dword [0x604ccc]
mov ecx, esi
push 0x50
push 1
sub esp, 0xc
mov dword [esp + 8], 0x3b03126f
mov dword [esp + 4], 0x3dcccccd
mov dword [esp], 0x3dcccccd
push 0x2bc
push 1
call fcn.004eb060
mov esi, eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x34c]
test esi, esi
je 0x50807b
mov dword [esi + 0x6c], 1
mov ecx, dword [eax + 0x750]
movss xmm2, dword [ecx + 0x30]
addss xmm2, dword [0x604ccc]
movss xmm3, dword [ecx + 0x2c]
movss xmm1, dword [ecx + 0x28]
lea ecx, [ebp - 0x2fc]
call fcn.00445a40
push 0xffffaa00
jmp 0x5048e1
cmp cx, 0x24
jne 0x504ca5
cmp byte [esi + 0x2e], 0xfe
jne 0x504ad3
mov eax, dword [ebp - 0x34c]
cmp dword [eax + 0x750], 0
je 0x504ad3
push 0x184
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x354], esi
mov dword [ebp - 4], 7
mov ecx, esi
push 0x184
call fcn.0045e530
movss xmm3, dword [0x604ccc]
mov ecx, esi
push 0x50
push 1
sub esp, 0xc
mov dword [esp + 8], 0x3b03126f
mov dword [esp + 4], 0x3dcccccd
mov dword [esp], 0x3dcccccd
push 0x2bc
push 1
call fcn.004eb060
mov esi, eax
mov dword [ebp - 4], 0xffffffff
test esi, esi
je 0x504acd
mov eax, dword [ebp - 0x34c]
mov dword [esi + 0x6c], 1
mov ecx, dword [eax + 0x750]
movss xmm2, dword [ecx + 0x30]
addss xmm2, dword [0x604ccc]
movss xmm3, dword [ecx + 0x2c]
movss xmm1, dword [ecx + 0x28]
lea ecx, [ebp - 0x30c]
call fcn.00445a40
push 0xffaaeeff
mov ecx, esi
movq xmm0, qword [eax]
movq qword [esi + 0x14c], xmm0
mov eax, dword [eax + 8]
mov dword [esi + 0x154], eax
mov eax, dword [esi]
call dword [eax + 0x3c]
mov ecx, dword [edi + 0x2c]
push esi
call fcn.005bcdc0
mov esi, dword [ebp - 0x350]
lea ecx, [ebp - 0x2fc]
call fcn.00445b40
mov eax, dword [ebp - 0x35c]
test eax, eax
je 0x504af9
movss xmm3, dword [eax + 0x2c]
movss xmm2, dword [eax + 0x30]
movss xmm1, dword [eax + 0x28]
jmp 0x504b6b
movzx eax, word [esi + 0x24]
lea ecx, [ebp - 0x324]
movd xmm2, eax
movzx eax, word [esi + 0x2a]
cvtdq2ps xmm2, xmm2
movd xmm1, eax
addss xmm2, dword [0x604d2c]
cvtdq2ps xmm1, xmm1
addss xmm1, dword [0x604d2c]
call fcn.0045e130
mov ecx, edi
push dword [eax + 4]
push dword [eax]
call fcn.00592d40
movd xmm2, eax
movzx eax, word [esi + 0x24]
cvtdq2ps xmm2, xmm2
movd xmm3, eax
movzx eax, word [esi + 0x2a]
mulss xmm2, dword [0x604ccc]
cvtdq2ps xmm3, xmm3
movd xmm1, eax
addss xmm3, dword [0x604d2c]
cvtdq2ps xmm1, xmm1
addss xmm1, dword [0x604d2c]
lea ecx, [ebp - 0x30c]
call fcn.00445a40
xor esi, esi
mov dword [ebp - 0x2e4], esi
movq xmm0, qword [eax]
movq qword [ebp - 0x2fc], xmm0
mov eax, dword [eax + 8]
mov dword [ebp - 0x2f4], eax
push 0xc8
call fcn.0046677d
mov edi, eax
add esp, 4
mov dword [ebp - 0x354], edi
mov dword [ebp - 4], 8
mov ecx, edi
push 0xc8
call fcn.0045faf0
lea eax, [esi + 3]
movss xmm2, dword [ebp - 0x2f8]
cdq
mov ecx, 5
idiv ecx
mov eax, 0xaaaaaaab
mov ecx, esi
movd xmm3, edx
mul esi
cvtdq2ps xmm3, xmm3
shr edx, 1
mulss xmm3, dword [0x604d04]
lea eax, [edx + edx*2]
addss xmm3, dword [ebp - 0x2f4]
sub ecx, eax
movd xmm1, ecx
lea ecx, [ebp - 0x30c]
cvtdq2ps xmm1, xmm1
mulss xmm1, dword [0x604d04]
addss xmm1, dword [ebp - 0x2fc]
call fcn.00445a40
xorps xmm3, xmm3
lea ecx, [ebp - 0x260]
xorps xmm2, xmm2
xorps xmm1, xmm1
movq xmm0, qword [eax]
mov esi, dword [eax + 8]
movq qword [ebp - 0x328], xmm0
call fcn.00445a40
movq xmm0, qword [ebp - 0x328]
push 0
push 1
sub esp, 0xc
mov ecx, esp
sub esp, 0xc
movq qword [ecx], xmm0
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
mov dword [ecx + 8], esi
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, edi
call fcn.005af420
mov dword [ebp - 4], 0xffffffff
mov edi, dword [ebp - 0x358]
test eax, eax
je 0x504c8a
mov ecx, dword [edi + 0x2c]
test ecx, ecx
je 0x504c8a
push eax
call fcn.005bcdc0
mov esi, dword [ebp - 0x2e4]
inc esi
mov dword [ebp - 0x2e4], esi
cmp esi, 6
jl 0x504b93
jmp 0x50464e
cmp cx, 0x29
je 0x507cd7
cmp cx, 0x1d
je 0x507cd7
cmp cx, 0x21
je 0x507cd7
cmp cx, 2
je 0x507cd7
cmp cx, 0x34
jne 0x505011
cmp byte [esi + 0x2e], 0xfe
mov eax, dword [ebp - 0x34c]
movss xmm2, dword [eax + 0x30]
movss xmm3, dword [eax + 0x2c]
movss xmm1, dword [eax + 0x28]
addss xmm2, dword [0x604dc4]
jne 0x504e4b
lea ecx, [ebp - 0x30c]
call fcn.00445a40
mov eax, dword [ebp - 0x35c]
test eax, eax
je 0x504654
movss xmm3, dword [eax + 0x2c]
lea ecx, [ebp - 0x2fc]
movss xmm2, dword [eax + 0x30]
movss xmm1, dword [eax + 0x28]
call fcn.00445a40
push 0xac
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x354], esi
mov dword [ebp - 4], 0xb
mov ecx, esi
push 0xac
call fcn.0045fa70
push dword [ebp - 0x35c]
movq xmm0, qword [ebp - 0x2fc]
mov eax, dword [ebp - 0x2f4]
push 2
sub esp, 0xc
mov ecx, esp
sub esp, 0xc
movq qword [ecx], xmm0
movq xmm0, qword [ebp - 0x30c]
mov dword [ecx + 8], eax
mov ecx, esp
mov eax, dword [ebp - 0x304]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, esi
call fcn.005b01d0
mov dword [ebp - 4], 0xffffffff
test eax, eax
je 0x504db0
mov ecx, dword [edi + 0x2c]
push eax
call fcn.005bcdc0
mov ecx, dword [0x9c25b4]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
push 0x90
mov dword [ebp - 0x2e8], eax
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x354], esi
mov dword [ebp - 4], 0xc
mov ecx, esi
push 0x90
call fcn.0045e590
movq xmm0, qword [ebp - 0x2fc]
mov eax, dword [ebp - 0x2f4]
push 2
sub esp, 0xc
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, esi
call fcn.004f0b30
mov dword [ebp - 4], 0xffffffff
test eax, eax
je 0x504e22
mov ecx, dword [edi + 0x2c]
push eax
call fcn.005bcdc0
mov eax, dword [ebp - 0x35c]
mov ecx, dword [eax + 0x6fc]
test ecx, ecx
je 0x504e3d
push dword [ebp - 0x2e8]
call fcn.005acdf0
push 0
xor edx, edx
mov ecx, 0x9c
jmp 0x504646
lea ecx, [ebp - 0x260]
call fcn.00445a40
lea ecx, [ebp - 0x2fc]
call fcn.00445b40
mov eax, dword [ebp - 0x35c]
test eax, eax
je 0x504e7c
movss xmm3, dword [eax + 0x2c]
movss xmm2, dword [eax + 0x30]
movss xmm1, dword [eax + 0x28]
jmp 0x504eee
movzx eax, word [esi + 0x24]
lea ecx, [ebp - 0x324]
movd xmm2, eax
movzx eax, word [esi + 0x2a]
cvtdq2ps xmm2, xmm2
movd xmm1, eax
addss xmm2, dword [0x604d2c]
cvtdq2ps xmm1, xmm1
addss xmm1, dword [0x604d2c]
call fcn.0045e130
mov ecx, edi
push dword [eax + 4]
push dword [eax]
call fcn.00592d40
movd xmm2, eax
movzx eax, word [esi + 0x24]
cvtdq2ps xmm2, xmm2
movd xmm3, eax
movzx eax, word [esi + 0x2a]
mulss xmm2, dword [0x604ccc]
cvtdq2ps xmm3, xmm3
movd xmm1, eax
addss xmm3, dword [0x604d2c]
cvtdq2ps xmm1, xmm1
addss xmm1, dword [0x604d2c]
lea ecx, [ebp - 0x328]
call fcn.00445a40
lea ecx, [ebp - 0x2fc]
movq xmm0, qword [eax]
movq qword [ebp - 0x2fc], xmm0
mov eax, dword [eax + 8]
mov dword [ebp - 0x2f4], eax
lea eax, [ebp - 0x260]
push eax
lea eax, [ebp - 0x328]
push eax
call fcn.00445b00
movss xmm2, dword [0x60509c]
lea ecx, [ebp - 0x30c]
push ecx
mov ecx, eax
call fcn.0045e5b0
lea eax, [ebp - 0x30c]
push eax
lea eax, [ebp - 0x328]
push eax
lea ecx, [ebp - 0x260]
call fcn.0045e5f0
push 0xb0
movq xmm0, qword [eax]
movq qword [ebp - 0x2fc], xmm0
mov eax, dword [eax + 8]
mov dword [ebp - 0x2f4], eax
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x354], esi
mov dword [ebp - 4], 0xd
mov ecx, esi
push 0xb0
call fcn.0045fb10
movq xmm0, qword [ebp - 0x2fc]
mov eax, dword [ebp - 0x2f4]
push 0
push 0
push 2
sub esp, 0xc
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, esi
call fcn.005a8390
mov esi, eax
mov dword [ebp - 4], 0xffffffff
test esi, esi
je 0x504ff3
movss xmm2, dword [ebp - 0x304]
lea ecx, [ebp - 0x324]
movss xmm1, dword [ebp - 0x30c]
call fcn.0045e130
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esi + 0x8c], ecx
mov dword [esi + 0x90], eax
mov ecx, dword [edi + 0x2c]
test ecx, ecx
je 0x50464e
test esi, esi
je 0x50464e
push esi
call fcn.005bcdc0
jmp 0x50464e
cmp cx, 0x1e
je 0x507ba4
cmp cx, 0x17
je 0x507ba4
cmp cx, 0x37
jne 0x5052aa
lea ecx, [ebp - 0x2fc]
call fcn.00445b40
mov eax, dword [ebp - 0x35c]
test eax, eax
je 0x50520b
movss xmm2, dword [eax + 0x30]
lea ecx, [ebp - 0x30c]
addss xmm2, dword [0x604ce8]
movss xmm3, dword [eax + 0x2c]
movss xmm1, dword [eax + 0x28]
call fcn.00445a40
push 0x94
movq xmm0, qword [eax]
movq qword [ebp - 0x2fc], xmm0
mov eax, dword [eax + 8]
mov dword [ebp - 0x2f4], eax
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x354], esi
mov dword [ebp - 4], 0xf
mov ecx, esi
push 0x94
call fcn.0045fab0
movq xmm0, qword [ebp - 0x2fc]
mov eax, dword [ebp - 0x2f4]
movss xmm3, dword [0x604ccc]
push 3
sub esp, 0xc
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, esi
call fcn.005aa320
mov dword [ebp - 4], 0xffffffff
test eax, eax
je 0x5050e6
mov ecx, dword [edi + 0x2c]
push eax
call fcn.005bcdc0
mov esi, dword [ebp - 0x350]
xor ecx, ecx
lea eax, [esi + 0x3c]
mov dword [ebp - 0x2f0], ecx
mov dword [ebp - 0x2ec], eax
nop dword [eax]
movzx eax, word [esi + 4]
mov edx, eax
cmp ax, word [ebp - 0x374]
jne 0x505118
cmp ecx, 1
jge 0x504654
mov eax, 0x39e
cmp dx, ax
jne 0x50512b
cmp ecx, 2
jge 0x504654
mov ecx, dword [0x9c25ac]
mov eax, dword [ecx]
mov edx, dword [eax + 0x34]
mov eax, dword [ebp - 0x2ec]
movzx eax, word [eax]
push eax
call edx
mov ecx, eax
mov dword [ebp - 0x2e4], ecx
test ecx, ecx
je 0x5051e9
push 0x94
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x354], esi
mov dword [ebp - 4], 0x10
mov ecx, esi
push 0x94
call fcn.0045fab0
mov eax, dword [ebp - 0x2e4]
lea ecx, [ebp - 0x328]
movss xmm2, dword [eax + 0x30]
addss xmm2, dword [0x604d2c]
movss xmm3, dword [eax + 0x2c]
movss xmm1, dword [eax + 0x28]
call fcn.00445a40
mov ecx, dword [ebp - 0x2e4]
push ecx
push 5
movq xmm0, qword [eax]
sub esp, 0xc
mov eax, dword [eax + 8]
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, esi
call fcn.004f7560
mov dword [ebp - 4], 0xffffffff
test eax, eax
je 0x5051e3
mov dword [eax + 0x84], 0x7d0
mov ecx, dword [edi + 0x2c]
push eax
call fcn.005bcdc0
mov esi, dword [ebp - 0x350]
mov ecx, dword [ebp - 0x2f0]
add dword [ebp - 0x2ec], 8
inc ecx
mov dword [ebp - 0x2f0], ecx
cmp ecx, 0xd
jl 0x505100
jmp 0x504654
movzx eax, word [esi + 0x24]
lea ecx, [ebp - 0x324]
movd xmm2, eax
movzx eax, word [esi + 0x2a]
cvtdq2ps xmm2, xmm2
movd xmm1, eax
addss xmm2, dword [0x604d2c]
cvtdq2ps xmm1, xmm1
addss xmm1, dword [0x604d2c]
call fcn.0045e130
mov ecx, edi
push dword [eax + 4]
push dword [eax]
call fcn.00592d40
lea ecx, [ebp - 0x30c]
movd xmm2, eax
movzx eax, word [esi + 0x24]
cvtdq2ps xmm2, xmm2
movd xmm3, eax
movzx eax, word [esi + 0x2a]
mulss xmm2, dword [0x604ccc]
cvtdq2ps xmm3, xmm3
addss xmm2, dword [0x604ce8]
addss xmm3, dword [0x604d2c]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
addss xmm1, dword [0x604d2c]
call fcn.00445a40
movq xmm0, qword [eax]
movq qword [ebp - 0x2fc], xmm0
mov eax, dword [eax + 8]
mov dword [ebp - 0x2f4], eax
jmp 0x5050ec
cmp cx, 0x4c
jne 0x5052c4
xor edx, edx
push 0
lea ecx, [edx + 0x22]
call fcn.005bc750
add esp, 4
jmp 0x504654
cmp cx, 0x4d
jne 0x5052de
xor edx, edx
push 0
lea ecx, [edx + 0x24]
call fcn.005bc750
add esp, 4
jmp 0x504654
cmp cx, 0x57
jne 0x5054a4
cmp dword [0x1ff1f34], 0
jne 0x504654
mov dword [ebp - 0x310], 0
mov dword [ebp - 0x2ec], 0x3e8
nop dword [eax]
call fcn.0046c00b
cdq
mov ecx, 5
idiv ecx
push 0x184
mov dword [ebp - 0x2e8], edx
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x354], esi
mov dword [ebp - 4], 0x11
mov ecx, esi
push 0x184
call fcn.0045e530
mov ecx, dword [ebp - 0x310]
and ecx, 1
push 0x50
push 1
sub esp, 0xc
movd xmm3, ecx
mov ecx, esi
cvtdq2ps xmm3, xmm3
mov dword [esp + 8], 0
mulss xmm3, dword [0x604ccc]
addss xmm3, dword [0x604ce8]
movss dword [esp + 4], xmm3
movss dword [esp], xmm3
push dword [ebp - 0x2ec]
push 0x38
call fcn.004eb060
mov esi, eax
mov dword [ebp - 4], 0xffffffff
test esi, esi
je 0x50547d
mov ecx, dword [ebp - 0x310]
mov eax, 0xaaaaaaab
mul ecx
movss xmm4, dword [0x604d2c]
mov dword [esi + 0x140], 0xc0000000
shr edx, 1
mov dword [esi + 0x6c], 1
mov dword [esi + 0x148], 3
lea eax, [edx + edx*2]
sub ecx, eax
mov eax, dword [ebp - 0x2e8]
add eax, 0xfffffffd
movd xmm0, ecx
lea ecx, [ebp - 0x2fc]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x604cdc]
addss xmm0, dword [0x604dd0]
movss dword [esi + 0x13c], xmm0
movd xmm0, eax
mov eax, dword [ebp - 0x34c]
cvtdq2ps xmm0, xmm0
movss xmm2, dword [eax + 0x30]
mulss xmm0, dword [0x604ccc]
addss xmm2, xmm4
movss xmm3, dword [eax + 0x2c]
movss xmm1, dword [eax + 0x28]
addss xmm3, xmm4
addss xmm1, xmm4
addss xmm2, xmm0
addss xmm3, xmm0
addss xmm1, xmm0
addss xmm2, dword [0x604ea8]
call fcn.00445a40
push 0xff4444ff
mov ecx, esi
movq xmm0, qword [eax]
movq qword [esi + 0x14c], xmm0
mov eax, dword [eax + 8]
mov dword [esi + 0x154], eax
mov eax, dword [esi]
call dword [eax + 0x3c]
mov ecx, dword [edi + 0x2c]
push esi
call fcn.005bcdc0
mov eax, dword [ebp - 0x2ec]
inc dword [ebp - 0x310]
add eax, 0x96
mov dword [ebp - 0x2ec], eax
cmp eax, 0x9c4
jl 0x505310
jmp 0x50464e
cmp cx, 0x56
jne 0x505ac3
mov eax, dword [ebp - 0x34c]
lea ecx, [ebp - 0x2fc]
movss xmm2, dword [eax + 0x30]
addss xmm2, dword [0x604d2c]
movss xmm3, dword [eax + 0x2c]
movss xmm1, dword [eax + 0x28]
call fcn.00445a40
lea ecx, [ebp - 0x25c]
call fcn.0045e120
xor eax, eax
xor ecx, ecx
mov dword [ebp - 0x368], eax
lea eax, [esi + 0x3c]
mov dword [ebp - 0x2e4], ecx
mov dword [ebp - 0x2ec], eax
nop word [eax + eax]
movzx eax, word [esi + 4]
mov edx, eax
cmp ax, word [ebp - 0x374]
jne 0x505518
cmp ecx, 1
jge 0x505651
mov eax, 0x39e
cmp dx, ax
jne 0x50552b
cmp ecx, 2
jge 0x505651
mov ecx, dword [0x9c25ac]
mov eax, dword [ecx]
mov edx, dword [eax + 0x34]
mov eax, dword [ebp - 0x2ec]
movzx eax, word [eax]
push eax
call edx
mov dword [ebp - 0x2e8], eax
test eax, eax
je 0x505634
mov ecx, dword [ebp - 0x34c]
movss xmm3, dword [eax + 0x2c]
movss xmm1, dword [eax + 0x28]
movss xmm2, dword [ecx + 0x30]
lea ecx, [ebp - 0x30c]
addss xmm2, dword [0x604d2c]
call fcn.00445a40
mov eax, dword [ebp - 0x2e8]
movss xmm0, dword [ebp - 0x25c]
inc dword [ebp - 0x368]
push 0x94
addss xmm0, dword [eax + 0x28]
movss dword [ebp - 0x25c], xmm0
movss xmm0, dword [ebp - 0x258]
addss xmm0, dword [eax + 0x2c]
movss dword [ebp - 0x258], xmm0
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x354], esi
mov dword [ebp - 4], 0x12
mov ecx, esi
push 0x94
call fcn.0045fab0
movq xmm0, qword [ebp - 0x30c]
mov eax, dword [ebp - 0x304]
push 0
push 0
push 0
push 0x98
push 2
sub esp, 0xc
mov ecx, esp
sub esp, 0xc
movq qword [ecx], xmm0
movq xmm0, qword [ebp - 0x2fc]
mov dword [ecx + 8], eax
mov ecx, esp
mov eax, dword [ebp - 0x2f4]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, esi
call fcn.004e3480
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [edi + 0x2c]
push eax
call fcn.005bcdc0
mov esi, dword [ebp - 0x350]
mov ecx, dword [ebp - 0x2e4]
add dword [ebp - 0x2ec], 8
inc ecx
mov dword [ebp - 0x2e4], ecx
cmp ecx, 0xd
jl 0x505500
lea ecx, [ebp - 0x324]
call fcn.0045e120
mov eax, dword [ebp - 0x368]
test eax, eax
jg 0x5056aa
movzx eax, word [esi + 0x24]
lea ecx, [ebp - 0x33c]
movd xmm2, eax
movzx eax, word [esi + 0x2a]
cvtdq2ps xmm2, xmm2
movd xmm1, eax
addss xmm2, dword [0x604d2c]
cvtdq2ps xmm1, xmm1
addss xmm1, dword [0x604d2c]
call fcn.0045e130
movss xmm2, dword [eax]
movss dword [ebp - 0x324], xmm2
movss xmm0, dword [eax + 4]
jmp 0x5056e0
movss xmm0, dword [ebp - 0x25c]
cvtps2pd xmm0, xmm0
movd xmm1, eax
cvtdq2pd xmm1, xmm1
divsd xmm0, xmm1
cvtpd2ps xmm2, xmm0
movss xmm0, dword [ebp - 0x258]
cvtps2pd xmm0, xmm0
movss dword [ebp - 0x324], xmm2
divsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
cvttss2si eax, xmm0
movss dword [ebp - 0x320], xmm0
neg eax
movd xmm1, eax
mov eax, dword [ebp - 0x34c]
cvtdq2ps xmm1, xmm1
subss xmm2, dword [eax + 0x28]
addss xmm1, dword [eax + 0x2c]
movaps xmm0, xmm2
call fcn.0045e630
subss xmm0, dword [0x604e1c]
xorps xmm1, xmm1
comiss xmm1, xmm0
movss xmm1, dword [0x605088]
jbe 0x505729
addss xmm0, xmm1
comiss xmm0, xmm1
jbe 0x505732
subss xmm0, xmm1
mulss xmm0, dword [0x6050c8]
divss xmm0, xmm1
cvttss2si eax, xmm0
lea ecx, [eax - 3]
add eax, 3
mov dword [ebp - 0x2f0], ecx
mov dword [ebp - 0x2ec], eax
test ecx, ecx
js 0x50588e
cmp eax, 0xc
jg 0x505883
cmp ecx, eax
jge 0x504654
lea eax, [ecx + 0x4f1b]
mov dword [ebp - 0x2f0], 6
lea eax, [edi + eax*8]
mov dword [ebp - 0x2e4], eax
nop word [eax + eax]
movss xmm2, dword [ebp - 0x320]
lea ecx, [ebp - 0x33c]
movss xmm1, dword [ebp - 0x324]
addss xmm2, dword [eax + 4]
addss xmm1, dword [eax]
call fcn.0045e130
mov eax, dword [ebp - 0x34c]
lea ecx, [ebp - 0x30c]
movss xmm3, dword [ebp - 0x338]
movss xmm1, dword [ebp - 0x33c]
movss xmm2, dword [eax + 0x30]
addss xmm2, dword [0x604d2c]
call fcn.00445a40
push 0x94
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x354], esi
mov dword [ebp - 4], 0x15
mov ecx, esi
push 0x94
call fcn.0045fab0
movq xmm0, qword [ebp - 0x30c]
mov eax, dword [ebp - 0x304]
push 0
push 0
push 0
push 0x98
push 2
sub esp, 0xc
mov ecx, esp
sub esp, 0xc
movq qword [ecx], xmm0
movq xmm0, qword [ebp - 0x2fc]
mov dword [ecx + 8], eax
mov ecx, esp
mov eax, dword [ebp - 0x2f4]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, esi
call fcn.004e3480
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [edi + 0x2c]
push eax
call fcn.005bcdc0
mov eax, dword [ebp - 0x2e4]
add eax, 8
sub dword [ebp - 0x2f0], 1
mov dword [ebp - 0x2e4], eax
jne 0x505790
jmp 0x50464e
add eax, 0xfffffff4
mov dword [ebp - 0x2ec], eax
jmp 0x505897
add ecx, 0xc
mov dword [ebp - 0x2f0], ecx
test eax, eax
jle 0x5059a4
lea eax, [edi + 0x278d8]
mov dword [ebp - 0x2e4], eax
nop dword [eax + eax]
movss xmm2, dword [ebp - 0x320]
lea ecx, [ebp - 0x33c]
movss xmm1, dword [ebp - 0x324]
addss xmm2, dword [eax + 4]
addss xmm1, dword [eax]
call fcn.0045e130
mov eax, dword [ebp - 0x34c]
lea ecx, [ebp - 0x30c]
movss xmm3, dword [ebp - 0x338]
movss xmm1, dword [ebp - 0x33c]
movss xmm2, dword [eax + 0x30]
addss xmm2, dword [0x604d2c]
call fcn.00445a40
push 0x94
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x354], esi
mov dword [ebp - 4], 0x13
mov ecx, esi
push 0x94
call fcn.0045fab0
movq xmm0, qword [ebp - 0x30c]
mov eax, dword [ebp - 0x304]
push 0
push 0
push 0
push 0x98
push 2
sub esp, 0xc
mov ecx, esp
sub esp, 0xc
movq qword [ecx], xmm0
movq xmm0, qword [ebp - 0x2fc]
mov dword [ecx + 8], eax
mov ecx, esp
mov eax, dword [ebp - 0x2f4]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, esi
call fcn.004e3480
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [edi + 0x2c]
push eax
call fcn.005bcdc0
mov eax, dword [ebp - 0x2e4]
add eax, 8
sub dword [ebp - 0x2ec], 1
mov dword [ebp - 0x2e4], eax
jne 0x5058b0
mov ecx, dword [ebp - 0x2f0]
cmp ecx, 0xc
jge 0x50464e
lea eax, [ecx + 0x4f1b]
mov edx, 0xc
lea eax, [edi + eax*8]
sub edx, ecx
mov dword [ebp - 0x2e4], eax
mov dword [ebp - 0x2f0], edx
nop dword [eax]
movss xmm2, dword [ebp - 0x320]
lea ecx, [ebp - 0x33c]
movss xmm1, dword [ebp - 0x324]
addss xmm2, dword [eax + 4]
addss xmm1, dword [eax]
call fcn.0045e130
mov eax, dword [ebp - 0x34c]
lea ecx, [ebp - 0x30c]
movss xmm3, dword [ebp - 0x338]
movss xmm1, dword [ebp - 0x33c]
movss xmm2, dword [eax + 0x30]
addss xmm2, dword [0x604d2c]
call fcn.00445a40
push 0x94
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x354], esi
mov dword [ebp - 4], 0x14
mov ecx, esi
push 0x94
call fcn.0045fab0
movq xmm0, qword [ebp - 0x30c]
mov eax, dword [ebp - 0x304]
push 0
push 0
push 0
push 0x98
push 2
sub esp, 0xc
mov ecx, esp
sub esp, 0xc
movq qword [ecx], xmm0
movq xmm0, qword [ebp - 0x2fc]
mov dword [ecx + 8], eax
mov ecx, esp
mov eax, dword [ebp - 0x2f4]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, esi
call fcn.004e3480
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [edi + 0x2c]
push eax
call fcn.005bcdc0
mov eax, dword [ebp - 0x2e4]
add eax, 8
sub dword [ebp - 0x2f0], 1
mov dword [ebp - 0x2e4], eax
jne 0x5059d0
jmp 0x50464e
cmp cx, 0x63
jne 0x505ed2
test edx, edx
je 0x505d18
mov eax, dword [edx + 0x218]
cmp eax, 4
je 0x505aef
mov dword [ebp - 0x2e4], 0
cmp eax, 8
jne 0x505af9
mov dword [ebp - 0x2e4], 1
push 0x1c0
call fcn.0046677d
mov edi, eax
add esp, 4
mov dword [ebp - 0x354], edi
mov dword [ebp - 4], 0x16
mov ecx, edi
push 0x1c0
call fcn.0045f5a0
xorps xmm3, xmm3
lea ecx, [ebp - 0x2fc]
xorps xmm2, xmm2
xorps xmm1, xmm1
call fcn.00445a40
xorps xmm3, xmm3
lea ecx, [ebp - 0x30c]
xorps xmm2, xmm2
xorps xmm1, xmm1
movq xmm0, qword [eax]
mov esi, dword [eax + 8]
movq qword [ebp - 0x328], xmm0
call fcn.00445a40
movq xmm0, qword [ebp - 0x328]
push 0
push 0
sub esp, 0xc
mov ecx, esp
sub esp, 0xc
movq qword [ecx], xmm0
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
mov dword [ecx + 8], esi
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, edi
mov eax, dword [ebp - 0x35c]
push dword [eax + 0x5c]
call fcn.004f5b20
mov esi, eax
mov dword [ebp - 4], 0xffffffff
mov edi, dword [ebp - 0x35c]
cmp byte [edi + 0xa44], 0
jle 0x505c00
cmp dword [edi + 0x12c], 0
je 0x505c00
mov eax, dword [edi + 0xa48]
mov dword [esi + 0x5c], eax
movups xmm0, xmmword [edi + 0x132]
movups xmmword [esi + 0xf4], xmm0
movups xmm0, xmmword [edi + 0x142]
movups xmmword [esi + 0x104], xmm0
mov eax, dword [edi + 0x5c]
mov dword [esi + 0x1b4], eax
movups xmm0, xmmword [edi + 0x172]
movups xmmword [esi + 0x190], xmm0
movups xmm0, xmmword [edi + 0x182]
movups xmmword [esi + 0x1a0], xmm0
jmp 0x505c1c
movups xmm0, xmmword [edi + 0x172]
movups xmmword [esi + 0xf4], xmm0
movups xmm0, xmmword [edi + 0x182]
movups xmmword [esi + 0x104], xmm0
mov eax, dword [esi]
mov ecx, esi
push dword [ebp - 0x2e4]
mov dword [esi + 0x138], 0x3f000000
mov dword [esi + 0x13c], 0x3f000000
mov dword [esi + 0x140], 0x3f000000
call dword [eax + 0x84]
mov eax, dword [esi]
sub esp, 0xc
mov dword [esi + 0x168], 1
mov ecx, esi
mov dword [esi + 0x128], 0xbb8
movss xmm0, dword [edi + 0x2c]
movss dword [esp + 8], xmm0
movss xmm0, dword [edi + 0x30]
addss xmm0, dword [0x605078]
movss dword [esp + 4], xmm0
movss xmm0, dword [edi + 0x28]
movss dword [esp], xmm0
call dword [eax + 0x3c]
cmp byte [edi + 0xa44], 0
jle 0x505cd7
cmp dword [edi + 0x12c], 0
je 0x505cd7
mov ecx, dword [esi + 0x60]
test ecx, ecx
je 0x505cbb
imul eax, dword [esi + 0x5c], 0x2a0
push dword [eax + 0x9b7940]
call fcn.005b85e0
mov ecx, dword [esi + 0x1b0]
test ecx, ecx
je 0x505cec
imul eax, dword [esi + 0x1b4], 0x2a0
push dword [eax + 0x9b79a0]
jmp 0x505ce7
imul eax, dword [esi + 0x5c], 0x2a0
mov ecx, dword [esi + 0x60]
push dword [eax + 0x9b7940]
call fcn.005b85e0
mov eax, dword [edi + 0x34]
mov edi, dword [ebp - 0x358]
mov dword [esi + 0x134], eax
mov dword [esi + 0x12c], 1
mov dword [esi + 0x130], 8
mov ecx, dword [edi + 0x2c]
push esi
call fcn.005bcdc0
mov dword [ebp - 0x2ec], 0xffffffff
push 0xcc
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x354], esi
mov dword [ebp - 4], 0x17
mov ecx, esi
push 0xcc
call fcn.0045e510
push 0
push 0xaaaaaaaa
push 0x1fa
xorps xmm3, xmm3
mov ecx, esi
call fcn.004f2590
mov esi, eax
mov dword [ebp - 4], 0xffffffff
movd xmm1, dword [ebp - 0x2ec]
lea ecx, [ebp - 0x2fc]
mov eax, dword [ebp - 0x35c]
cvtdq2ps xmm1, xmm1
mov dword [esi + 0x6c], 1
mov byte [esi + 0xac], 1
mov dword [esi + 0xb8], 0xbb8
mov dword [esi + 0xb0], 0xbb8
mov dword [esi + 0x98], 0x3fc00000
mulss xmm1, dword [0x604ce8]
mov dword [esi + 0x9c], 0x40400000
movss xmm2, dword [eax + 0x30]
subss xmm2, dword [0x604d2c]
movaps xmm3, xmm1
addss xmm3, dword [eax + 0x2c]
addss xmm1, dword [eax + 0x28]
call fcn.00445a40
push esi
movq xmm0, qword [eax]
movq qword [esi + 0x74], xmm0
mov eax, dword [eax + 8]
mov dword [esi + 0x7c], eax
mov ecx, dword [edi + 0x2c]
call fcn.005bcdc0
mov eax, dword [ebp - 0x2ec]
inc eax
mov dword [ebp - 0x2ec], eax
cmp eax, 2
jl 0x505d22
push 0xc0
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x354], esi
mov dword [ebp - 4], 0x18
mov ecx, esi
push 0xc0
call fcn.0045e550
movss xmm3, dword [0x604dc4]
mov ecx, esi
push 0x76
push 4
call fcn.005a3d90
mov edi, eax
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [edi]
push 0xaaaaaaaa
mov dword [edi + 0xa0], 0x1f40
mov edx, dword [ecx + 0x44]
mov ecx, edi
call edx
mov eax, dword [edi]
lea ecx, [ebp - 0x25c]
mov dword [edi + 0x6c], 1
mov esi, dword [eax + 0x3c]
mov eax, dword [ebp - 0x35c]
movss xmm2, dword [eax + 0x2c]
movss xmm1, dword [eax + 0x28]
call fcn.0045e130
mov ecx, edi
movss xmm0, dword [eax]
movss dword [ebp - 0x328], xmm0
movss xmm0, dword [eax + 4]
movss dword [ebp - 0x324], xmm0
push dword [ebp - 0x324]
push dword [ebp - 0x328]
call esi
push edi
mov edi, dword [ebp - 0x358]
mov ecx, dword [edi + 0x2c]
call fcn.005bcdc0
xor edx, edx
push 0
lea ecx, [edx + 1]
jmp 0x504646
cmp cx, 0x64
jne 0x505eee
push 0
xor edx, edx
mov ecx, 0x9c
call fcn.005bc750
add esp, 4
jmp 0x504654
cmp cx, 0x6a
je 0x507b81
cmp cx, 0x6c
je 0x507b81
cmp cx, 0x6b
jne 0x506005
test edx, edx
je 0x504654
mov ecx, dword [ebp - 0x34c]
mov eax, dword [ecx + 0x5c]
movss xmm0, dword [ecx + 0x38]
movaps xmm2, xmm0
mulss xmm2, dword [eax*8 + 0x629074]
mulss xmm2, dword [0x604d5c]
addss xmm2, dword [ecx + 0x30]
cmp eax, 8
jne 0x505f44
addss xmm2, xmm0
movss xmm3, dword [ecx + 0x2c]
movss xmm1, dword [ecx + 0x28]
lea ecx, [ebp - 0x2fc]
call fcn.00445a40
push 0xdc
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x354], esi
mov dword [ebp - 4], 0x19
mov ecx, esi
push 0xdc
call fcn.0045fad0
xorps xmm3, xmm3
lea ecx, [ebp - 0x30c]
xorps xmm2, xmm2
xorps xmm1, xmm1
call fcn.00445a40
push ecx
mov dword [esp], 0
push 5
push ecx
mov dword [esp], 0x3f800000
push 0x3e8
push 0xff554411
push 0xffffaa00
movq xmm0, qword [eax]
sub esp, 0xc
mov eax, dword [eax + 8]
mov ecx, esp
push dword [ebp - 0x35c]
movq qword [ecx], xmm0
movq xmm0, qword [ebp - 0x2fc]
sub esp, 0xc
mov dword [ecx + 8], eax
mov ecx, esp
mov eax, dword [ebp - 0x2f4]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, esi
call fcn.004f64c0
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [edi + 0x2c]
push eax
call fcn.005bcdc0
jmp 0x50464e
cmp cx, 0x6d
jne 0x5060be
test edx, edx
je 0x504654
mov ecx, dword [ebp - 0x34c]
mov eax, dword [ecx + 0x5c]
movss xmm0, dword [ecx + 0x38]
movaps xmm2, xmm0
mulss xmm2, dword [eax*8 + 0x629074]
mulss xmm2, dword [0x604d5c]
addss xmm2, dword [ecx + 0x30]
cmp eax, 0x2a
jne 0x506047
addss xmm2, xmm0
movss xmm3, dword [ecx + 0x2c]
movss xmm1, dword [ecx + 0x28]
lea ecx, [ebp - 0x2fc]
call fcn.00445a40
push 0xdc
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x354], esi
mov dword [ebp - 4], 0x1a
mov ecx, esi
push 0xdc
call fcn.0045fad0
xorps xmm3, xmm3
lea ecx, [ebp - 0x30c]
xorps xmm2, xmm2
xorps xmm1, xmm1
call fcn.00445a40
push ecx
mov dword [esp], 0
push 5
push ecx
mov dword [esp], 0x3f800000
push 0x3e8
push 0xaa663311
push 0xff550000
jmp 0x505fb6
cmp cx, 0x6e
jne 0x506981
lea ecx, [ebp - 0x2fc]
call fcn.00445b40
lea ecx, [ebp - 0x30c]
call fcn.00445b40
xor ecx, ecx
mov byte [ebp - 0x24c], 0
lea eax, [esi + 0x3c]
mov dword [ebp - 0x368], ecx
mov dword [ebp - 0x2ec], eax
nop word [eax + eax]
movzx eax, word [esi + 4]
mov esi, 0x39d
mov edx, eax
cmp ax, si
jne 0x506119
cmp ecx, 1
jge 0x5063ea
mov eax, 0x39e
cmp dx, ax
jne 0x50612c
cmp ecx, 2
jge 0x5063ea
call fcn.0046c00b
cdq
mov esi, 0x12
idiv esi
mov dword [ebp - 0x2f0], edx
call fcn.0046c00b
cdq
idiv esi
mov ecx, dword [0x9c25ac]
mov dword [ebp - 0x2e4], edx
mov eax, dword [ecx]
mov esi, dword [eax + 0x34]
mov eax, dword [ebp - 0x2ec]
movzx eax, word [eax]
push eax
call esi
test eax, eax
je 0x50624f
mov ecx, dword [ebp - 0x24c]
mov edx, 1
cmp eax, dword [edi + 0x4c]
movss xmm2, dword [eax + 0x30]
subss xmm2, dword [0x605030]
movss xmm3, dword [eax + 0x2c]
movss xmm1, dword [eax + 0x28]
movzx ecx, cl
cmove ecx, edx
mov dword [ebp - 0x24c], ecx
lea ecx, [ebp - 0x260]
call fcn.00445a40
push 0xc8
movq xmm0, qword [eax]
movq qword [ebp - 0x2fc], xmm0
mov eax, dword [eax + 8]
movq qword [ebp - 0x30c], xmm0
mov dword [ebp - 0x2f4], eax
mov dword [ebp - 0x304], eax
mov dword [ebp - 0x308], 0x3f800000
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x354], esi
mov dword [ebp - 4], 0x1b
mov ecx, esi
push 0xc8
call fcn.0045faf0
movq xmm0, qword [ebp - 0x2fc]
mov eax, dword [ebp - 0x2f4]
push 0
push 3
sub esp, 0xc
mov ecx, esp
sub esp, 0xc
movq qword [ecx], xmm0
movq xmm0, qword [ebp - 0x30c]
mov dword [ecx + 8], eax
mov ecx, esp
mov eax, dword [ebp - 0x304]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, esi
call fcn.005af420
mov esi, eax
mov dword [ebp - 4], 0xffffffff
call fcn.0046c00b
jmp 0x5063b0
movss xmm0, dword [ebp - 0x2fc]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x5063c7
movss xmm0, dword [ebp - 0x2f8]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x5063c7
movss xmm0, dword [ebp - 0x2f4]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x5063c7
push 0xc8
call fcn.0046677d
mov edi, eax
add esp, 4
mov dword [ebp - 0x2e8], edi
mov dword [ebp - 4], 0x1c
mov ecx, edi
push 0xc8
call fcn.0045faf0
movd xmm0, dword [ebp - 0x2e4]
lea ecx, [ebp - 0x340]
movd xmm2, dword [ebp - 0x2f0]
movss xmm3, dword [ebp - 0x2f4]
movss xmm1, dword [ebp - 0x2fc]
cvtdq2ps xmm2, xmm2
cvtdq2ps xmm0, xmm0
addss xmm1, xmm2
movss xmm2, dword [ebp - 0x2f8]
addss xmm3, xmm0
subss xmm1, dword [0x6050ac]
subss xmm3, dword [0x6050ac]
call fcn.00445a40
movss xmm3, dword [ebp - 0x304]
lea ecx, [ebp - 0x290]
movss xmm1, dword [ebp - 0x30c]
movss xmm2, dword [ebp - 0x308]
movq xmm0, qword [eax]
movq qword [ebp - 0x328], xmm0
movd xmm0, dword [ebp - 0x2e4]
mov esi, dword [eax + 8]
cvtdq2ps xmm0, xmm0
addss xmm3, xmm0
movd xmm0, dword [ebp - 0x2f0]
cvtdq2ps xmm0, xmm0
subss xmm3, dword [0x6050ac]
addss xmm1, xmm0
subss xmm1, dword [0x6050ac]
call fcn.00445a40
movq xmm0, qword [ebp - 0x328]
push 0
push 3
sub esp, 0xc
mov ecx, esp
sub esp, 0xc
movq qword [ecx], xmm0
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
mov dword [ecx + 8], esi
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, edi
call fcn.005af420
mov esi, eax
mov dword [ebp - 4], 0xffffffff
call fcn.0046c00b
mov edi, dword [ebp - 0x358]
cdq
mov ecx, 0x3e8
idiv ecx
push esi
add dword [esi + 0x80], edx
mov ecx, dword [edi + 0x2c]
call fcn.005bcdc0
mov ecx, dword [ebp - 0x368]
add dword [ebp - 0x2ec], 8
inc ecx
mov esi, dword [ebp - 0x350]
mov dword [ebp - 0x368], ecx
cmp ecx, 0xd
jl 0x506100
mov ecx, dword [0x9c25b4]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
mov esi, dword [ebp - 0x34c]
mov ecx, dword [esi + 0x834]
add ecx, 0x6a4
cmp ecx, eax
jae 0x506597
mov ecx, dword [0x9c25b4]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
sub eax, 0x3e8
mov ecx, 0xfffffffd
mov dword [esi + 0x834], eax
mov dword [ebp - 0x2e4], ecx
mov eax, ecx
mov dword [ebp - 0x2ec], 0xfffffffd
and eax, 0x80000001
jns 0x50644c
dec eax
or eax, 0xfffffffe
inc eax
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mov dword [ebp - 0x2e8], eax
addss xmm0, xmm0
movss dword [ebp - 0x2f0], xmm0
push 0x184
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x354], esi
mov dword [ebp - 4], 0x1d
mov ecx, esi
push 0x184
call fcn.0045e530
movss xmm3, dword [0x604ea8]
mov ecx, esi
push 0x50
push 1
sub esp, 0xc
mov dword [esp + 8], 0x3a83126f
mov dword [esp + 4], 0x40000000
mov dword [esp], 0x40000000
push 0xfa0
push 0xc1
call fcn.004eb060
mov esi, eax
mov dword [ebp - 4], 0xffffffff
movd xmm3, dword [ebp - 0x2ec]
lea ecx, [ebp - 0x328]
mov eax, dword [ebp - 0x2e8]
movss xmm1, dword [ebp - 0x2f0]
cvtdq2ps xmm3, xmm3
mov dword [esi + 0x100], eax
mov eax, dword [ebp - 0x34c]
addss xmm1, dword [eax + 0x28]
movss xmm2, dword [eax + 0x30]
addss xmm3, xmm3
addss xmm3, dword [eax + 0x2c]
call fcn.00445a40
push 0xff777799
mov ecx, esi
movq xmm0, qword [eax]
movq qword [esi + 0x74], xmm0
mov eax, dword [eax + 8]
mov dword [esi + 0x7c], eax
mov eax, dword [esi]
call dword [eax + 0x3c]
mov ecx, dword [edi + 0x2c]
push esi
call fcn.005bcdc0
mov eax, dword [ebp - 0x2ec]
inc eax
mov dword [ebp - 0x2ec], eax
cmp eax, 3
jl 0x506465
mov ecx, dword [ebp - 0x2e4]
inc ecx
mov dword [ebp - 0x2e4], ecx
cmp ecx, 3
jl 0x506434
mov eax, dword [0x9c25b0]
mov esi, dword [eax + 0x40]
test esi, esi
je 0x506597
mov ecx, dword [0x9c25b4]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
mov ecx, dword [ebp - 0x34c]
mov dword [esi + 0x20a6c], eax
mov eax, dword [ecx + 0x28]
mov ecx, dword [ecx + 0x2c]
mov dword [esi + 0x20a64], eax
mov dword [esi + 0x20a68], ecx
mov ecx, dword [edi + 0x4c]
cvttss2si eax, dword [ecx + 0x2c]
push eax
cvttss2si eax, dword [ecx + 0x28]
push eax
mov eax, dword [ebp - 0x34c]
cvttss2si edx, dword [eax + 0x2c]
cvttss2si ecx, dword [eax + 0x28]
call fcn.0049a800
mov ecx, dword [0x9c25b4]
add esp, 8
mov esi, eax
mov edx, dword [ecx]
mov edx, dword [edx + 8]
call edx
cmp byte [ebp - 0x24c], 0
mov edx, 0x3e8
mov dword [ebp - 0x2e8], eax
mov eax, 0x7d0
cmovne edx, eax
cmp esi, 0x12
jge 0x50464e
mov ecx, dword [edi + 0x4c]
mov eax, dword [ecx + 0x7dc]
add eax, edx
cmp eax, dword [ebp - 0x2e8]
jae 0x50464e
cmp byte [ecx + 0x211], 0
jne 0x50464e
mov eax, 0x3e8
cmp word [ecx + 0x614], ax
jge 0x50464e
mov eax, dword [ecx + 0x9d8]
cmp eax, 0xc
je 0x50464e
cmp eax, 0xb
je 0x50464e
xor eax, eax
cmp byte [ebp - 0x24c], al
sete al
lea eax, [eax*4 + 5]
mov dword [ebp - 0x310], eax
call fcn.0046c00b
cdq
mov ecx, 0xa
idiv ecx
xor eax, eax
cmp byte [ebp - 0x24c], al
sete al
lea eax, [eax*4 + 4]
cmp edx, eax
jge 0x50464e
cmp dword [0x626dec], 0
mov dword [edi + 0x26f20], 0
jne 0x506697
mov ecx, edi
call fcn.00517630
mov edx, dword [edi + 0x4c]
xor ecx, ecx
xor esi, esi
cvttss2si eax, dword [edx + 0x28]
mov dword [ebp - 0x2ec], eax
cvttss2si eax, dword [edx + 0x2c]
mov dword [ebp - 0x250], ecx
mov dword [ebp - 0x24c], ecx
mov dword [ebp - 0x318], eax
mov eax, dword [ebp - 0x2ec]
add eax, 0xfffff700
cmp eax, 0x80
jae 0x5067aa
mov eax, dword [ebp - 0x318]
add eax, 0xfffff100
cmp eax, 0x80
jae 0x5067aa
mov eax, dword [ebp - 0x2ec]
cmp eax, 0x93a
jg 0x506705
mov eax, dword [ebp - 0x310]
mov ecx, eax
neg ecx
jmp 0x506713
cmp eax, 0x942
mov eax, dword [ebp - 0x310]
cmovge ecx, eax
cmp dword [ebp - 0x318], 0xf57
jg 0x506723
neg eax
jmp 0x506732
cmp dword [ebp - 0x318], 0xf5f
cmovge esi, eax
mov eax, esi
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
addss xmm0, dword [edx + 0x28]
cvttss2si ecx, xmm0
movd xmm0, eax
mov dword [ebp - 0x250], ecx
cvtdq2ps xmm0, xmm0
addss xmm0, dword [edx + 0x2c]
cvttss2si eax, xmm0
mov dword [ebp - 0x24c], eax
cmp ecx, 0x925
jge 0x506772
mov dword [ebp - 0x250], 0x925
jmp 0x506784
cmp ecx, 0x957
jle 0x506784
mov dword [ebp - 0x250], 0x957
cmp eax, 0xf43
jge 0x506797
mov dword [ebp - 0x250], 0xf43
jmp 0x50680b
cmp eax, 0xf70
jle 0x50680b
mov dword [ebp - 0x24c], 0xf70
jmp 0x50680b
call fcn.0046c00b
cdq
mov ecx, 0x64
idiv ecx
mov ecx, edx
mov edx, dword [ebp - 0x310]
mov eax, edx
cmp ecx, 0x19
jl 0x5067dc
neg eax
cmp ecx, 0x32
jge 0x5067d1
mov edx, eax
jmp 0x5067dc
mov esi, eax
cmp ecx, 0x4b
jge 0x5067dc
mov eax, edx
mov edx, esi
mov ecx, dword [edi + 0x4c]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm0, dword [ecx + 0x28]
cvttss2si eax, xmm0
movd xmm0, edx
cvtdq2ps xmm0, xmm0
mov dword [ebp - 0x250], eax
addss xmm0, dword [ecx + 0x2c]
cvttss2si eax, xmm0
mov dword [ebp - 0x24c], eax
push 0x30
lea eax, [ebp - 0x1c8]
push 0
push eax
call fcn.00468b40
mov edx, dword [ebp - 0x318]
lea eax, [edi + 0x118]
mov ecx, dword [ebp - 0x2ec]
add esp, 0xc
push 8
push eax
push 0x14
lea eax, [ebp - 0x1c8]
push eax
lea eax, [ebp - 0x24c]
push eax
lea eax, [ebp - 0x250]
push eax
call fcn.0049a850
lea ecx, [ebp - 0x1c8]
add esp, 0x18
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x506860
sub ecx, edx
je 0x50b083
mov eax, dword [edi + 0x4c]
xorps xmm0, xmm0
mov edx, dword [ebp - 0x250]
mov ecx, dword [ebp - 0x24c]
mov dword [ebp - 0x2e0], 0
movlpd qword [ebp - 0x2d8], xmm0
movlpd qword [ebp - 0x2d0], xmm0
movlpd qword [ebp - 0x2c8], xmm0
mov dword [ebp - 0x2c0], 0
mov ax, word [eax + 0x20]
mov word [ebp - 0x2da], ax
mov eax, 0x36c
mov word [ebp - 0x2dc], ax
mov eax, dword [0x626df0]
mov word [ebp - 0x2bc], dx
mov word [ebp - 0x2ae], cx
mov word [ebp - 0x2b0], dx
mov word [ebp - 0x2ba], cx
mov dword [edi + 0x1a9c3c], edx
mov dword [edi + 0x1a9c40], ecx
mov dword [edi + 0x1a9c2c], edx
mov edx, 0x34
mov dword [edi + 0x1a9c30], ecx
lea ecx, [ebp - 0x2e0]
mov dword [ebp - 0x2b4], 2
mov dword [ebp - 0x2b8], eax
mov dword [0x1ff59f4], 0x36c
call fcn.0054f850
mov ecx, dword [0x9c25b4]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
mov ecx, dword [edi + 0x4c]
mov dword [ecx + 0x7dc], eax
lea eax, [ebp - 0x2e0]
mov ecx, dword [edi + 0x4c]
push eax
push 0x36c
call fcn.00573ef0
cmp dword [edi + 0x1a87c4], 1
mov esi, dword [ebp - 0x350]
jne 0x504654
mov eax, dword [ebp - 0x250]
mov dword [edi + 0x1a879c], eax
mov eax, dword [ebp - 0x24c]
mov dword [edi + 0x1a87a0], eax
jmp 0x504654
mov eax, dword [ebp - 0x34c]
cmp cx, 0x6f
jne 0x506d10
movss xmm2, dword [eax + 0x30]
lea ecx, [ebp - 0x290]
addss xmm2, dword [0x604dc4]
movss xmm3, dword [eax + 0x2c]
movss xmm1, dword [eax + 0x28]
call fcn.00445a40
push 0xc0
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x354], esi
mov dword [ebp - 4], 0x1e
mov ecx, esi
push 0xc0
call fcn.0045e550
movss xmm3, dword [0x604dc4]
mov ecx, esi
push 0x76
push 0x46
call fcn.005a3d90
mov edi, eax
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [edi]
push 0xaa660000
mov edx, dword [ecx + 0x44]
mov ecx, edi
call edx
mov ecx, dword [edi]
mov eax, dword [ebp - 0x34c]
mov dword [edi + 0x6c], 1
mov esi, dword [ecx + 0x3c]
lea ecx, [ebp - 0x25c]
movss xmm2, dword [eax + 0x2c]
movss xmm1, dword [eax + 0x28]
call fcn.0045e130
mov ecx, edi
movss xmm0, dword [eax]
movss dword [ebp - 0x328], xmm0
movss xmm0, dword [eax + 4]
movss dword [ebp - 0x324], xmm0
push dword [ebp - 0x324]
push dword [ebp - 0x328]
call esi
mov dword [edi + 0xa0], 0xc80
push edi
mov edi, dword [ebp - 0x358]
mov ecx, dword [edi + 0x2c]
call fcn.005bcdc0
lea ecx, [ebp - 0x30c]
call fcn.00445b40
lea ecx, [ebp - 0x2fc]
call fcn.00445b40
lea ecx, [ebp - 0x340]
call fcn.00445b40
lea ecx, [ebp - 0x2ac]
call fcn.00445b40
lea ecx, [ebp - 0x29c]
call fcn.00445a30
mov esi, dword [ebp - 0x350]
xor ecx, ecx
mov dword [ebp - 0x2e4], ecx
lea eax, [esi + 0x3c]
mov dword [ebp - 0x2ec], eax
nop dword [eax]
movzx eax, word [esi + 4]
mov edx, eax
cmp ax, word [ebp - 0x374]
jne 0x506ad8
cmp ecx, 1
jge 0x504654
mov eax, 0x39e
cmp dx, ax
jne 0x506aeb
cmp ecx, 2
jge 0x504654
call fcn.0046c00b
cdq
mov esi, 0x12
idiv esi
mov dword [ebp - 0x2f0], edx
call fcn.0046c00b
cdq
idiv esi
mov ecx, dword [0x9c25ac]
mov dword [ebp - 0x2e8], edx
mov eax, dword [ecx]
mov esi, dword [eax + 0x34]
mov eax, dword [ebp - 0x2ec]
movzx eax, word [eax]
push eax
call esi
test eax, eax
je 0x506bcb
movss xmm3, dword [eax + 0x2c]
lea ecx, [ebp - 0x27c]
movss xmm2, dword [eax + 0x30]
movss xmm1, dword [eax + 0x28]
call fcn.00445a40
push 0xb0
movq xmm0, qword [eax]
movq qword [ebp - 0x30c], xmm0
mov eax, dword [eax + 8]
mov dword [ebp - 0x304], eax
movq qword [ebp - 0x2fc], xmm0
mov dword [ebp - 0x2f4], eax
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x354], esi
mov dword [ebp - 4], 0x1f
mov ecx, esi
push 0xb0
call fcn.0045fb10
movq xmm0, qword [ebp - 0x2fc]
mov eax, dword [ebp - 0x2f4]
push 0
push 1
push 8
sub esp, 0xc
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, esi
call fcn.005a8390
mov esi, eax
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x324]
jmp 0x506cb9
movss xmm4, dword [ebp - 0x30c]
xorps xmm1, xmm1
ucomiss xmm4, xmm1
lahf
test ah, 0x44
jnp 0x506ce8
movss xmm2, dword [ebp - 0x308]
ucomiss xmm2, xmm1
lahf
test ah, 0x44
jnp 0x506ce8
movss xmm0, dword [ebp - 0x304]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x506ce8
movd xmm3, dword [ebp - 0x2e8]
lea ecx, [ebp - 0x26c]
movd xmm1, dword [ebp - 0x2f0]
cvtdq2ps xmm3, xmm3
cvtdq2ps xmm1, xmm1
addss xmm3, xmm0
addss xmm1, xmm4
subss xmm3, dword [0x6050ac]
subss xmm1, dword [0x6050ac]
call fcn.00445a40
push 0xb0
movq xmm0, qword [eax]
movq qword [ebp - 0x2fc], xmm0
mov eax, dword [eax + 8]
mov dword [ebp - 0x2f4], eax
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x368], esi
mov dword [ebp - 4], 0x20
mov ecx, esi
push 0xb0
call fcn.0045fb10
movq xmm0, qword [ebp - 0x2fc]
mov eax, dword [ebp - 0x2f4]
push 0
push 1
push 8
sub esp, 0xc
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, esi
call fcn.005a8390
mov esi, eax
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x25c]
movss xmm2, dword [ebp - 0x338]
movss xmm1, dword [ebp - 0x340]
call fcn.0045e130
push esi
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esi + 0x8c], ecx
mov dword [esi + 0x90], edx
mov ecx, dword [edi + 0x2c]
call fcn.005bcdc0
mov ecx, dword [ebp - 0x2e4]
add dword [ebp - 0x2ec], 8
inc ecx
mov esi, dword [ebp - 0x350]
mov dword [ebp - 0x2e4], ecx
cmp ecx, 0xd
jl 0x506ac0
jmp 0x504654
cmp dword [eax + 0x218], 0x38
jne 0x507049
cmp word [eax + 0x172], 0
jne 0x507049
lea ecx, [ebp - 0x30c]
call fcn.00445b40
lea ecx, [ebp - 0x2fc]
call fcn.00445b40
xor ecx, ecx
lea eax, [esi + 0x3c]
mov dword [ebp - 0x310], ecx
mov dword [ebp - 0x2ec], eax
movzx eax, word [esi + 4]
mov edx, eax
cmp ax, word [ebp - 0x374]
jne 0x506d6a
cmp ecx, 1
jge 0x504654
mov eax, 0x39e
cmp dx, ax
jne 0x506d7d
cmp ecx, 2
jge 0x504654
call fcn.0046c00b
cdq
mov esi, 0x12
idiv esi
mov dword [ebp - 0x2f0], edx
call fcn.0046c00b
cdq
idiv esi
mov ecx, dword [0x9c25ac]
mov dword [ebp - 0x2e4], edx
mov eax, dword [ecx]
mov esi, dword [eax + 0x34]
mov eax, dword [ebp - 0x2ec]
movzx eax, word [eax]
push eax
call esi
mov edx, eax
mov dword [ebp - 0x2e8], edx
test edx, edx
je 0x506ed3
mov ecx, dword [ebp - 0x310]
and ecx, 1
lea eax, [ecx + ecx*2]
mov ecx, dword [ebp - 0x34c]
movq xmm0, qword [ecx + eax*4 + 0x70]
mov eax, dword [ecx + eax*4 + 0x78]
lea ecx, [ebp - 0x26c]
movq qword [ebp - 0x30c], xmm0
mov dword [ebp - 0x304], eax
movss xmm2, dword [edx + 0x30]
addss xmm2, dword [0x604dc4]
movss xmm3, dword [edx + 0x2c]
movss xmm1, dword [edx + 0x28]
call fcn.00445a40
push 0xdc
movq xmm0, qword [eax]
movq qword [ebp - 0x2fc], xmm0
mov eax, dword [eax + 8]
mov dword [ebp - 0x2f4], eax
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x354], esi
mov dword [ebp - 4], 0x21
mov ecx, esi
push 0xdc
call fcn.0045fad0
xorps xmm3, xmm3
lea ecx, [ebp - 0x27c]
xorps xmm2, xmm2
xorps xmm1, xmm1
call fcn.00445a40
push ecx
mov dword [esp], 0
push 5
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
push ecx
mov dword [esp], 0x3f800000
push 0x3e8
push 0xff222299
push 0xffff0000
sub esp, 0xc
mov ecx, esp
push dword [ebp - 0x2e8]
movq qword [ecx], xmm0
movq xmm0, qword [ebp - 0x30c]
sub esp, 0xc
mov dword [ecx + 8], eax
mov ecx, esp
mov eax, dword [ebp - 0x304]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, esi
call fcn.004f64c0
mov dword [ebp - 4], 0xffffffff
mov dword [eax + 0x84], 0x3e4ccccd
jmp 0x507018
movss xmm0, dword [ebp - 0x2fc]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x507021
movss xmm0, dword [ebp - 0x2f8]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x507021
movss xmm0, dword [ebp - 0x2f4]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x507021
mov eax, dword [ebp - 0x310]
mov ecx, dword [ebp - 0x34c]
and eax, 1
push 0xdc
lea eax, [eax + eax*2]
movq xmm0, qword [ecx + eax*4 + 0x70]
mov eax, dword [ecx + eax*4 + 0x78]
movq qword [ebp - 0x30c], xmm0
mov dword [ebp - 0x304], eax
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x368], esi
mov dword [ebp - 4], 0x22
mov ecx, esi
push 0xdc
call fcn.0045fad0
movd xmm3, dword [ebp - 0x2e4]
lea ecx, [ebp - 0x29c]
movd xmm1, dword [ebp - 0x2f0]
movss xmm2, dword [ebp - 0x2f8]
cvtdq2ps xmm3, xmm3
cvtdq2ps xmm1, xmm1
addss xmm3, dword [ebp - 0x2f4]
addss xmm1, dword [ebp - 0x2fc]
subss xmm3, dword [0x6050ac]
subss xmm1, dword [0x6050ac]
call fcn.00445a40
push ecx
mov dword [esp], 0
push 5
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
push ecx
mov dword [esp], 0x3f800000
push 0x3e8
push 0xff222299
push 0xffff0000
sub esp, 0xc
mov ecx, esp
push 0
movq qword [ecx], xmm0
sub esp, 0xc
movq xmm0, qword [ebp - 0x30c]
mov dword [ecx + 8], eax
mov ecx, esp
mov eax, dword [ebp - 0x304]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, esi
call fcn.004f64c0
mov dword [ebp - 4], 0xffffffff
mov dword [eax + 0x84], 0x3ecccccd
mov ecx, dword [edi + 0x2c]
push eax
call fcn.005bcdc0
mov ecx, dword [ebp - 0x310]
add dword [ebp - 0x2ec], 8
inc ecx
mov esi, dword [ebp - 0x350]
mov dword [ebp - 0x310], ecx
cmp ecx, 0xd
jl 0x506d52
jmp 0x504654
cmp cx, 0x71
jne 0x5072ae
push 0
mov esi, eax
push 7
mov ecx, esi
call fcn.005790f0
movss xmm2, dword [esi + 0x30]
lea ecx, [ebp - 0x26c]
addss xmm2, dword [0x604dc4]
movss xmm3, dword [esi + 0x2c]
movss xmm1, dword [esi + 0x28]
call fcn.00445a40
push 0xc0
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x354], esi
mov dword [ebp - 4], 0x23
mov ecx, esi
push 0xc0
call fcn.0045e550
movss xmm3, dword [0x604dc4]
mov ecx, esi
push 0x76
push 0x46
call fcn.005a3d90
mov edi, eax
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [edi]
push 0xaa660000
mov edx, dword [ecx + 0x44]
mov ecx, edi
call edx
mov ecx, dword [edi]
mov eax, dword [ebp - 0x34c]
mov dword [edi + 0x6c], 1
mov esi, dword [ecx + 0x3c]
lea ecx, [ebp - 0x25c]
movss xmm2, dword [eax + 0x2c]
movss xmm1, dword [eax + 0x28]
call fcn.0045e130
mov ecx, edi
movss xmm0, dword [eax]
movss dword [ebp - 0x328], xmm0
movss xmm0, dword [eax + 4]
movss dword [ebp - 0x324], xmm0
push dword [ebp - 0x324]
push dword [ebp - 0x328]
call esi
mov dword [edi + 0xa0], 0xc80
push edi
mov edi, dword [ebp - 0x358]
mov ecx, dword [edi + 0x2c]
call fcn.005bcdc0
lea ecx, [ebp - 0x2fc]
call fcn.00445b40
lea ecx, [ebp - 0x27c]
call fcn.00445b40
lea ecx, [ebp - 0x29c]
call fcn.00445b40
lea ecx, [ebp - 0x2ac]
call fcn.00445a30
mov esi, dword [ebp - 0x350]
add esi, 0x3c
mov dword [ebp - 0x2f0], 0xd
mov dword [ebp - 0x2e4], esi
mov ecx, dword [0x9c25ac]
mov eax, dword [ecx]
mov edx, dword [eax + 0x34]
movzx eax, word [esi]
push eax
call edx
test eax, eax
je 0x507293
movss xmm3, dword [eax + 0x2c]
lea ecx, [ebp - 0x30c]
movss xmm2, dword [eax + 0x30]
movss xmm1, dword [eax + 0x28]
call fcn.00445a40
push 0xb0
movq xmm0, qword [eax]
movq qword [ebp - 0x2fc], xmm0
mov eax, dword [eax + 8]
mov dword [ebp - 0x2f4], eax
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x354], esi
mov dword [ebp - 4], 0x24
mov ecx, esi
push 0xb0
call fcn.0045fb10
movq xmm0, qword [ebp - 0x2fc]
mov eax, dword [ebp - 0x2f4]
push 0
push 1
push 8
sub esp, 0xc
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, esi
call fcn.005a8390
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [edi + 0x2c]
push eax
call fcn.005bcdc0
push 0x90
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x2e8], esi
mov dword [ebp - 4], 0x25
mov ecx, esi
push 0x90
call fcn.0045e590
movq xmm0, qword [ebp - 0x2fc]
mov eax, dword [ebp - 0x2f4]
push 0
push 1
push 0xa
push 0xff33ff66
sub esp, 0xc
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, esi
call fcn.005afb60
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [edi + 0x2c]
push eax
call fcn.005bcdc0
mov esi, dword [ebp - 0x2e4]
add esi, 8
sub dword [ebp - 0x2f0], 1
mov dword [ebp - 0x2e4], esi
jne 0x507182
jmp 0x50464e
cmp cx, 0x72
jne 0x5075d7
lea ecx, [ebp - 0x30c]
call fcn.00445b40
lea ecx, [ebp - 0x2fc]
call fcn.00445b40
mov ecx, dword [ebp - 0x34c]
push 0
push 7
call fcn.005790f0
add esi, 0x3c
mov dword [ebp - 0x2ec], 0xd
mov dword [ebp - 0x2f0], esi
mov ecx, dword [0x9c25ac]
mov eax, dword [ecx]
mov edx, dword [eax + 0x34]
movzx eax, word [esi]
push eax
call edx
mov dword [ebp - 0x2e8], eax
test eax, eax
je 0x5075bc
movss xmm2, dword [eax + 0x30]
lea ecx, [ebp - 0x26c]
subss xmm2, dword [0x605030]
movss xmm3, dword [eax + 0x2c]
movss xmm1, dword [eax + 0x28]
call fcn.00445a40
push 0x94
movq xmm0, qword [eax]
movq qword [ebp - 0x30c], xmm0
mov eax, dword [eax + 8]
movq qword [ebp - 0x2fc], xmm0
mov dword [ebp - 0x304], eax
mov dword [ebp - 0x2f4], eax
mov dword [ebp - 0x2f8], 0x3f800000
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x354], esi
mov dword [ebp - 4], 0x26
mov ecx, esi
push 0x94
call fcn.0045fab0
movq xmm0, qword [ebp - 0x2fc]
mov eax, dword [ebp - 0x2f4]
movss xmm3, dword [0x604ccc]
push 2
sub esp, 0xc
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, esi
call fcn.005aa320
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [edi + 0x2c]
push eax
call fcn.005bcdc0
lea ecx, [ebp - 0x260]
call fcn.00445b40
xor ecx, ecx
mov dword [ebp - 0x2e4], ecx
nop dword [eax]
nop dword [eax + eax]
mov eax, ecx
movss xmm2, dword [ebp - 0x308]
and eax, 0xfffffffe
movd xmm3, eax
mov eax, ecx
and eax, 1
lea ecx, [ebp - 0x27c]
add eax, eax
cvtdq2ps xmm3, xmm3
movd xmm1, eax
addss xmm3, dword [ebp - 0x304]
cvtdq2ps xmm1, xmm1
subss xmm3, dword [0x604dc4]
addss xmm1, dword [ebp - 0x30c]
subss xmm1, dword [0x604dc4]
call fcn.00445a40
push 0xb0
movq xmm0, qword [eax]
movq qword [ebp - 0x260], xmm0
mov eax, dword [eax + 8]
mov dword [ebp - 0x258], eax
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x368], esi
mov dword [ebp - 4], 0x27
mov ecx, esi
push 0xb0
call fcn.0045fb10
movq xmm0, qword [ebp - 0x260]
mov eax, dword [ebp - 0x258]
push 0
push 0
push 1
sub esp, 0xc
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, esi
call fcn.005a8390
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [edi + 0x2c]
push eax
call fcn.005bcdc0
mov ecx, dword [ebp - 0x2e4]
inc ecx
mov dword [ebp - 0x2e4], ecx
cmp ecx, 4
jl 0x5073e0
mov eax, dword [ebp - 0x2e8]
lea ecx, [ebp - 0x328]
movss xmm2, dword [eax + 0x30]
addss xmm2, dword [0x604d2c]
movss xmm3, dword [eax + 0x2c]
movss xmm1, dword [eax + 0x28]
call fcn.00445a40
movss xmm3, dword [ebp - 0x320]
lea ecx, [ebp - 0x29c]
movss xmm2, dword [ebp - 0x324]
movss xmm1, dword [ebp - 0x328]
subss xmm3, dword [0x604f80]
addss xmm2, dword [0x605030]
addss xmm1, dword [0x604f80]
call fcn.00445a40
push 0x94
movq xmm0, qword [eax]
movq qword [ebp - 0x2fc], xmm0
mov eax, dword [eax + 8]
mov dword [ebp - 0x2f4], eax
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x310], esi
mov dword [ebp - 4], 0x28
mov ecx, esi
push 0x94
call fcn.0045fab0
movq xmm0, qword [ebp - 0x328]
mov eax, dword [ebp - 0x320]
push 0
push 0
push 0
push 0x2711
push 0
sub esp, 0xc
mov ecx, esp
sub esp, 0xc
movq qword [ecx], xmm0
movq xmm0, qword [ebp - 0x2fc]
mov dword [ecx + 8], eax
mov ecx, esp
mov eax, dword [ebp - 0x2f4]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, esi
call fcn.004e3480
mov dword [ebp - 4], 0xffffffff
mov dword [eax + 0x70], 0xffffff00
mov ecx, dword [edi + 0x2c]
push eax
call fcn.005bcdc0
mov esi, dword [ebp - 0x2f0]
add esi, 8
sub dword [ebp - 0x2ec], 1
mov dword [ebp - 0x2f0], esi
jne 0x5072f0
jmp 0x50464e
cmp cx, 0x73
jne 0x507902
lea ecx, [ebp - 0x30c]
call fcn.00445b40
lea ecx, [ebp - 0x2fc]
call fcn.00445b40
mov eax, dword [ebp - 0x34c]
cmp dword [eax + 0x218], 0x49
je 0x507611
push 0
push 7
mov ecx, eax
call fcn.005790f0
add esi, 0x3c
mov dword [ebp - 0x2f0], 0xd
mov dword [ebp - 0x2e4], esi
mov ecx, dword [0x9c25ac]
mov eax, dword [ecx]
mov edx, dword [eax + 0x34]
movzx eax, word [esi]
push eax
call edx
test eax, eax
je 0x507709
movss xmm2, dword [eax + 0x30]
lea ecx, [ebp - 0x26c]
subss xmm2, dword [0x605030]
movss xmm3, dword [eax + 0x2c]
movss xmm1, dword [eax + 0x28]
call fcn.00445a40
push 0xc8
movq xmm0, qword [eax]
movq qword [ebp - 0x30c], xmm0
mov eax, dword [eax + 8]
movq qword [ebp - 0x2fc], xmm0
mov dword [ebp - 0x304], eax
mov dword [ebp - 0x2f4], eax
mov dword [ebp - 0x2f8], 0x41200000
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x354], esi
mov dword [ebp - 4], 0x29
mov ecx, esi
push 0xc8
call fcn.0045faf0
movq xmm0, qword [ebp - 0x30c]
mov eax, dword [ebp - 0x304]
push 0
push 3
sub esp, 0xc
mov ecx, esp
sub esp, 0xc
movq qword [ecx], xmm0
movq xmm0, qword [ebp - 0x2fc]
mov dword [ecx + 8], eax
mov ecx, esp
mov eax, dword [ebp - 0x2f4]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, esi
call fcn.005af420
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [edi + 0x2c]
push eax
call fcn.005bcdc0
mov esi, dword [ebp - 0x2e4]
add esi, 8
sub dword [ebp - 0x2f0], 1
mov dword [ebp - 0x2e4], esi
jne 0x507624
call fcn.0046c00b
cdq
mov ecx, 0xa
idiv ecx
cmp edx, 6
jl 0x50464e
mov ecx, dword [0x9c25b4]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
mov esi, dword [ebp - 0x34c]
mov ecx, dword [esi + 0x834]
add ecx, 0xfa0
cmp ecx, eax
jae 0x50464e
mov ecx, dword [0x9c25b4]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
sub eax, 0x7d0
mov ecx, 0xfffffffd
mov dword [esi + 0x834], eax
mov dword [ebp - 0x2e4], ecx
nop
mov eax, ecx
mov dword [ebp - 0x2ec], 0xfffffffd
and eax, 0x80000001
jns 0x507798
dec eax
or eax, 0xfffffffe
inc eax
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mov dword [ebp - 0x2e8], eax
addss xmm0, xmm0
movss dword [ebp - 0x2f0], xmm0
push 0x184
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x354], esi
mov dword [ebp - 4], 0x2a
mov ecx, esi
push 0x184
call fcn.0045e530
movss xmm3, dword [0x604ea8]
mov ecx, esi
push 0x50
push 1
sub esp, 0xc
mov dword [esp + 8], 0x3a83126f
mov dword [esp + 4], 0x40000000
mov dword [esp], 0x40000000
push 0xfa0
push 0xc1
call fcn.004eb060
mov esi, eax
mov dword [ebp - 4], 0xffffffff
movd xmm3, dword [ebp - 0x2ec]
lea ecx, [ebp - 0x26c]
mov eax, dword [ebp - 0x2e8]
movss xmm1, dword [ebp - 0x2f0]
cvtdq2ps xmm3, xmm3
mov dword [esi + 0x100], eax
mov eax, dword [ebp - 0x34c]
addss xmm1, dword [eax + 0x28]
movss xmm2, dword [eax + 0x30]
addss xmm3, xmm3
addss xmm3, dword [eax + 0x2c]
call fcn.00445a40
push 0xff777799
mov ecx, esi
movq xmm0, qword [eax]
movq qword [esi + 0x74], xmm0
mov eax, dword [eax + 8]
mov dword [esi + 0x7c], eax
mov eax, dword [esi]
call dword [eax + 0x3c]
mov ecx, dword [edi + 0x2c]
push esi
call fcn.005bcdc0
mov eax, dword [ebp - 0x2ec]
inc eax
mov dword [ebp - 0x2ec], eax
cmp eax, 3
jl 0x5077b1
mov ecx, dword [ebp - 0x2e4]
inc ecx
mov dword [ebp - 0x2e4], ecx
cmp ecx, 3
jl 0x507780
mov esi, dword [edi + 0x40]
test esi, esi
je 0x5078de
mov ecx, dword [0x9c25b4]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
mov ecx, dword [ebp - 0x34c]
mov dword [esi + 0x20a6c], eax
mov eax, dword [ecx + 0x28]
mov ecx, dword [ecx + 0x2c]
mov dword [esi + 0x20a64], eax
mov dword [esi + 0x20a68], ecx
mov ecx, dword [0x9c25ac]
mov eax, dword [ecx]
mov eax, dword [eax + 0x6c]
call eax
push 0xb
mov ecx, eax
call fcn.004e4ef0
push 0
xor edx, edx
mov ecx, 0xa0
jmp 0x504646
cmp cx, 0x74
jne 0x50465a
lea ecx, [ebp - 0x30c]
call fcn.00445b40
lea ecx, [ebp - 0x2fc]
call fcn.00445b40
mov ecx, dword [ebp - 0x34c]
push 0
push 7
call fcn.005790f0
add esi, 0x3c
mov dword [ebp - 0x2f0], 0xd
mov dword [ebp - 0x2e4], esi
mov ecx, dword [0x9c25ac]
mov eax, dword [ecx]
mov edx, dword [eax + 0x34]
movzx eax, word [esi]
push eax
call edx
test eax, eax
je 0x507a29
movss xmm2, dword [eax + 0x30]
lea ecx, [ebp - 0x26c]
subss xmm2, dword [0x605030]
movss xmm3, dword [eax + 0x2c]
movss xmm1, dword [eax + 0x28]
call fcn.00445a40
push 0xc8
movq xmm0, qword [eax]
movq qword [ebp - 0x30c], xmm0
mov eax, dword [eax + 8]
movq qword [ebp - 0x2fc], xmm0
mov dword [ebp - 0x304], eax
mov dword [ebp - 0x2f4], eax
mov dword [ebp - 0x2f8], 0x41200000
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x354], esi
mov dword [ebp - 4], 0x2b
mov ecx, esi
push 0xc8
call fcn.0045faf0
movq xmm0, qword [ebp - 0x30c]
mov eax, dword [ebp - 0x304]
push 0
push 3
sub esp, 0xc
mov ecx, esp
sub esp, 0xc
movq qword [ecx], xmm0
movq xmm0, qword [ebp - 0x2fc]
mov dword [ecx + 8], eax
mov ecx, esp
mov eax, dword [ebp - 0x2f4]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, esi
call fcn.005af420
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [edi + 0x2c]
push eax
call fcn.005bcdc0
mov esi, dword [ebp - 0x2e4]
add esi, 8
sub dword [ebp - 0x2f0], 1
mov dword [ebp - 0x2e4], esi
jne 0x507944
mov ecx, 0xfffffffd
mov dword [ebp - 0x2e4], ecx
nop word [eax + eax]
mov eax, ecx
mov dword [ebp - 0x2ec], 0xfffffffd
and eax, 0x80000001
jns 0x507a68
dec eax
or eax, 0xfffffffe
inc eax
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mov dword [ebp - 0x2e8], eax
addss xmm0, xmm0
movss dword [ebp - 0x2f0], xmm0
push 0x184
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x354], esi
mov dword [ebp - 4], 0x2c
mov ecx, esi
push 0x184
call fcn.0045e530
movss xmm3, dword [0x604ea8]
mov ecx, esi
push 0x50
push 1
sub esp, 0xc
mov dword [esp + 8], 0x3a83126f
mov dword [esp + 4], 0x40000000
mov dword [esp], 0x40000000
push 0xfa0
push 0xc1
call fcn.004eb060
mov esi, eax
mov dword [ebp - 4], 0xffffffff
movd xmm3, dword [ebp - 0x2ec]
lea ecx, [ebp - 0x26c]
mov eax, dword [ebp - 0x2e8]
movss xmm1, dword [ebp - 0x2f0]
cvtdq2ps xmm3, xmm3
mov dword [esi + 0x100], eax
mov eax, dword [ebp - 0x34c]
addss xmm1, dword [eax + 0x28]
movss xmm2, dword [eax + 0x30]
addss xmm3, xmm3
addss xmm3, dword [eax + 0x2c]
call fcn.00445a40
push 0xff777799
mov ecx, esi
movq xmm0, qword [eax]
movq qword [esi + 0x74], xmm0
mov eax, dword [eax + 8]
mov dword [esi + 0x7c], eax
mov eax, dword [esi]
call dword [eax + 0x3c]
mov ecx, dword [edi + 0x2c]
push esi
call fcn.005bcdc0
mov eax, dword [ebp - 0x2ec]
inc eax
mov dword [ebp - 0x2ec], eax
cmp eax, 3
jl 0x507a81
mov ecx, dword [ebp - 0x2e4]
inc ecx
mov dword [ebp - 0x2e4], ecx
cmp ecx, 3
jl 0x507a50
jmp 0x50464e
xor eax, eax
cmp cx, 0x6c
sete al
test edx, edx
je 0x504654
mov ecx, dword [ebp - 0x34c]
push eax
push edx
call fcn.00577160
jmp 0x504654
mov eax, dword [ebp - 0x34c]
lea ecx, [ebp - 0x2fc]
movss xmm2, dword [eax + 0x30]
addss xmm2, dword [0x604d2c]
movss xmm3, dword [eax + 0x2c]
movss xmm1, dword [eax + 0x28]
call fcn.00445a40
cmp word [esi + 0x28], 0x17
mov dword [ebp - 0x2f0], 0
jne 0x507c63
mov eax, dword [ebp - 0x35c]
lea ecx, [ebp - 0x26c]
mov dword [ebp - 0x2f0], 2
test eax, eax
je 0x507c14
movss xmm2, dword [eax + 0x30]
addss xmm2, dword [0x604d2c]
movss xmm3, dword [eax + 0x2c]
movss xmm1, dword [eax + 0x28]
jmp 0x507c49
movzx eax, word [esi + 0x24]
movss xmm2, dword [0x604d2c]
movss xmm0, dword [ebp - 0x2e4]
addss xmm0, xmm2
movd xmm3, eax
movzx eax, word [esi + 0x2a]
cvtdq2ps xmm3, xmm3
movd xmm1, eax
cvtdq2ps xmm1, xmm1
addss xmm3, xmm2
addss xmm1, xmm2
movaps xmm2, xmm0
call fcn.00445a40
movq xmm0, qword [eax]
movq qword [ebp - 0x2fc], xmm0
mov eax, dword [eax + 8]
mov dword [ebp - 0x2f4], eax
push 0x94
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x354], esi
mov dword [ebp - 4], 0xe
mov ecx, esi
push 0x94
call fcn.0045fab0
push dword [ebp - 0x2f0]
movq xmm0, qword [ebp - 0x2fc]
mov eax, dword [ebp - 0x2f4]
sub esp, 0xc
movss xmm3, dword [0x604ccc]
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, esi
call fcn.005aa320
mov dword [ebp - 4], 0xffffffff
test eax, eax
je 0x50464e
mov ecx, dword [edi + 0x2c]
push eax
call fcn.005bcdc0
jmp 0x50464e
xor ecx, ecx
lea eax, [esi + 0x3c]
mov dword [ebp - 0x2e4], ecx
mov dword [ebp - 0x368], eax
cmp byte [esi + 0x2e], 0xfe
jne 0x507cf9
cmp ecx, 4
jge 0x504654
jmp 0x507d0f
movsx eax, word [esi + 0x28]
lea eax, [eax + eax*2]
shl eax, 5
cmp dword [eax + 0x62e92c], ecx
jle 0x504654
mov ecx, dword [0x9c25ac]
mov eax, dword [ecx]
mov edx, dword [eax + 0x34]
mov eax, dword [ebp - 0x368]
movzx eax, word [eax]
push eax
call edx
mov edx, eax
mov dword [ebp - 0x24c], edx
test edx, edx
je 0x507e0b
cmp edx, dword [ebp - 0x34c]
je 0x507e0b
movzx ecx, word [esi + 0x28]
mov eax, ecx
cmp cx, 0x21
jne 0x507f6a
mov al, byte [esi + 0x2f]
test al, al
je 0x507d70
cmp al, 1
jne 0x507e0b
mov eax, dword [ebp - 0x34c]
cmp eax, dword [edi + 0x4c]
jne 0x507e0b
mov al, byte [esi + 0x2e]
cmp al, 0xfe
jne 0x507e2d
mov dword [ebp - 0x2ec], 1
push 0x90
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x2e8], esi
mov dword [ebp - 4], 0xa
mov ecx, esi
push 0x90
call fcn.0045e590
mov eax, dword [ebp - 0x24c]
lea ecx, [ebp - 0x29c]
movss xmm3, dword [eax + 0x2c]
movss xmm2, dword [eax + 0x30]
movss xmm1, dword [eax + 0x28]
call fcn.00445a40
push dword [ebp - 0x2ec]
sub esp, 0xc
movq xmm0, qword [eax]
mov ecx, esp
mov eax, dword [eax + 8]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, esi
call fcn.005b1190
mov dword [ebp - 4], 0xffffffff
test eax, eax
je 0x507e05
mov ecx, dword [edi + 0x2c]
test ecx, ecx
je 0x507e05
push eax
call fcn.005bcdc0
mov esi, dword [ebp - 0x350]
mov ecx, dword [ebp - 0x2e4]
add dword [ebp - 0x368], 8
inc ecx
mov dword [ebp - 0x2e4], ecx
cmp ecx, 0xd
jl 0x507ce8
jmp 0x504654
cmp al, 0xfd
jne 0x507e40
mov dword [ebp - 0x2ec], 2
jmp 0x507d85
mov dword [ebp - 0x2ec], 0
cmp al, 0xfc
jne 0x507d85
movzx eax, word [esi + 0x2c]
lea ecx, [ebp - 0x2fc]
movss xmm2, dword [0x604dc4]
movd xmm3, eax
movzx eax, word [esi + 0x22]
cvtdq2ps xmm3, xmm3
movd xmm1, eax
addss xmm3, dword [0x604d2c]
cvtdq2ps xmm1, xmm1
addss xmm1, dword [0x604d2c]
call fcn.00445a40
mov eax, dword [ebp - 0x34c]
lea ecx, [ebp - 0x26c]
movss xmm2, dword [eax + 0x38]
mulss xmm2, dword [0x605068]
movss xmm3, dword [eax + 0x2c]
movss xmm1, dword [eax + 0x28]
addss xmm2, dword [eax + 0x30]
call fcn.00445a40
push 0xdc
movq xmm0, qword [eax]
movq qword [ebp - 0x2fc], xmm0
mov eax, dword [eax + 8]
mov dword [ebp - 0x2f4], eax
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x354], esi
mov dword [ebp - 4], 9
mov ecx, esi
push 0xdc
call fcn.0045fad0
xorps xmm3, xmm3
lea ecx, [ebp - 0x27c]
xorps xmm2, xmm2
xorps xmm1, xmm1
call fcn.00445a40
push ecx
mov dword [esp], 0
push 5
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
push ecx
mov dword [esp], 0x3f800000
push 0x3e8
push 0xff222299
push 0xff5555ff
sub esp, 0xc
mov ecx, esp
movq qword [ecx], xmm0
movq xmm0, qword [ebp - 0x2fc]
mov dword [ecx + 8], eax
mov ecx, dword [ebp - 0x24c]
mov eax, dword [ebp - 0x2f4]
push ecx
sub esp, 0xc
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, esi
call fcn.004f64c0
jmp 0x507ded
cmp dword [edx + 0x218], 0x38
mov word [edx + 0x6b4], ax
movzx eax, byte [esi + 0x31]
mov word [edx + 0x6b6], ax
mov dword [edx + 0x6b0], edx
jne 0x508023
cmp word [edx + 0x172], 0
jne 0x508023
mov eax, dword [ebp - 0x34c]
lea ecx, [ebp - 0x30c]
movss xmm3, dword [edx + 0x2c]
movss xmm1, dword [edx + 0x28]
movss xmm2, dword [edx + 0x30]
subss xmm3, dword [eax + 0x2c]
subss xmm1, dword [eax + 0x28]
call fcn.00445a40
movss xmm0, dword [ebp - 0x304]
lea ecx, [ebp - 0x2ac]
cvtps2pd xmm0, xmm0
mov eax, dword [ebp - 0x34c]
mulsd xmm0, qword [0x604e58]
cvtpd2ps xmm3, xmm0
movss xmm0, dword [ebp - 0x30c]
addss xmm3, dword [eax + 0x2c]
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [0x604e58]
cvtpd2ps xmm1, xmm0
addss xmm1, dword [eax + 0x28]
mov eax, dword [ebp - 0x24c]
movss xmm2, dword [eax + 0x30]
call fcn.00445a40
mov ecx, dword [ebp - 0x34c]
jmp 0x508043
movss xmm3, dword [edx + 0x2c]
lea ecx, [ebp - 0x328]
movss xmm2, dword [edx + 0x30]
movss xmm1, dword [edx + 0x28]
call fcn.00445a40
mov ecx, dword [ebp - 0x24c]
movq xmm0, qword [eax]
movq qword [ecx + 0x6a4], xmm0
mov eax, dword [eax + 8]
mov dword [ecx + 0x6ac], eax
mov ecx, dword [0x9c25b4]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
mov ecx, dword [ebp - 0x24c]
add eax, 0x1f4
mov dword [ecx + 0x6a0], eax
jmp 0x507e0b
mov esi, dword [ebp - 0x350]
jmp 0x50465a
movzx ecx, word [esi + 4]
lea eax, [esi + 0x3c]
xor edx, edx
mov dword [ebp - 0x374], 0x39d
mov dword [ebp - 0x2e8], 0x39e
nop dword [eax]
nop word [eax + eax]
movss xmm0, dword [0x604d2c]
cmp cx, word [ebp - 0x374]
jne 0x5080c6
cmp edx, 1
jmp 0x5080d2
cmp cx, word [ebp - 0x2e8]
jne 0x5080d4
cmp edx, 2
jge 0x5080f8
mov ecx, dword [edi + 0x4c]
movzx eax, word [eax]
cmp eax, dword [ecx + 0x20]
je 0x508112
mov eax, dword [ebp - 0x2f0]
inc edx
movzx ecx, word [esi + 4]
add eax, 8
mov dword [ebp - 0x2f0], eax
cmp edx, 0xd
jl 0x5080b0
movzx eax, word [esi + 0x28]
mov ecx, eax
cmp ax, 0x37
jle 0x50819e
cmp cx, 0x3f
jle 0x50819e
movzx eax, word [esi + 0x2c]
lea ecx, [ebp - 0x324]
movd xmm2, eax
movzx eax, word [esi + 0x22]
cvtdq2ps xmm2, xmm2
movd xmm1, eax
cvtdq2ps xmm1, xmm1
addss xmm2, xmm0
addss xmm1, xmm0
call fcn.0045e130
movss xmm0, dword [ebp - 0x324]
lea ecx, [ebp - 0x270]
mov eax, dword [0x9c25ac]
mov edx, 0x10
movss dword [ebp - 0x348], xmm0
movss xmm0, dword [ebp - 0x320]
movss dword [ebp - 0x344], xmm0
xorps xmm0, xmm0
movups xmmword [ebp - 0x270], xmm0
mov ax, word [eax + 0xf98]
mov word [ebp - 0x26a], ax
mov eax, 0x369
mov word [ebp - 0x26c], ax
movzx eax, word [esi + 0x26]
mov dword [ebp - 0x264], eax
call fcn.0054f850
movzx eax, word [esi + 0x24]
lea ecx, [ebp - 0x324]
movd xmm2, eax
movzx eax, word [esi + 0x2a]
cvtdq2ps xmm2, xmm2
movd xmm1, eax
cvtdq2ps xmm1, xmm1
call fcn.0045e130
mov ecx, edi
push dword [eax + 4]
push dword [eax]
call fcn.00592d40
movss xmm3, dword [ebp - 0x344]
lea ecx, [ebp - 0x27c]
movss xmm1, dword [ebp - 0x348]
movd xmm2, eax
cvtdq2ps xmm2, xmm2
mulss xmm2, dword [0x604ccc]
addss xmm2, dword [0x604dc4]
call fcn.00445a40
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
mov dword [ebp - 0x368], eax
mov dword [ebp - 0x304], eax
movsx eax, word [esi + 0x28]
movq qword [ebp - 0x30c], xmm0
movq qword [ebp - 0x290], xmm0
mov dword [ebp - 0x24c], 0
lea eax, [eax + eax*2]
shl eax, 5
mov eax, dword [eax + 0x62e8e4]
cmp eax, 3
je 0x5097a6
cmp eax, 4
je 0x5097a6
cmp eax, 5
je 0x5097a6
cmp eax, 6
je 0x5097a6
movss xmm0, dword [0x605408]
xor edx, edx
movss dword [ebp - 0x368], xmm0
movss xmm0, dword [0x6050f0]
mov dword [ebp - 0x250], edx
mov dword [ebp - 0x354], 4
movss dword [ebp - 0x310], xmm0
movzx eax, word [esi + 4]
mov ecx, eax
cmp ax, word [ebp - 0x374]
jne 0x5082a8
cmp edx, 1
jge 0x50abd5
mov eax, 0x39e
cmp cx, ax
jne 0x5082bb
cmp edx, 2
jge 0x50abd5
mov ecx, dword [0x9c25ac]
mov eax, dword [ecx]
mov edx, dword [eax + 0x34]
mov eax, dword [ebp - 0x250]
movzx eax, word [esi + eax*8 + 0x3c]
push eax
call edx
mov esi, eax
mov dword [ebp - 0x24c], esi
test esi, esi
je 0x509773
movsx eax, byte [esi + 0xa51]
mov ecx, 1
test eax, eax
cmove eax, ecx
mov ecx, dword [edi + 0x4c]
mov dword [ebp - 0x2ec], eax
test ecx, ecx
je 0x508329
cvttss2si eax, dword [esi + 0x2c]
cvttss2si edx, dword [ecx + 0x2c]
push eax
cvttss2si eax, dword [esi + 0x28]
cvttss2si ecx, dword [ecx + 0x28]
push eax
call fcn.0049a800
add esp, 8
cmp eax, 0x14
jg 0x509794
mov eax, dword [ebp - 0x34c]
mov ecx, dword [ebp - 0x350]
cmp eax, dword [edi + 0x4c]
jne 0x508344
cmp byte [ecx + 0x2f], 0
jne 0x509671
mov eax, dword [ebp - 0x250]
mov edx, dword [ecx + eax*8 + 0x40]
cmp edx, 0xfffffffd
je 0x50947b
cmp edx, 0xfffffffc
je 0x50947b
movzx eax, word [ecx + 0x28]
mov edi, eax
mov dword [ebp - 0x2e8], edi
mov edi, dword [ebp - 0x358]
test ax, ax
js 0x50865d
cmp ax, 0x68
jge 0x50865d
cwde
lea eax, [eax + eax*2]
shl eax, 5
cmp dword [eax + 0x62e8f4], 6
jne 0x50865d
test edx, edx
jns 0x5083a6
cmp edx, 0xfffffffa
jg 0x50865d
cmp byte [ecx + 0x2f], 0
jne 0x508449
mov eax, edx
mov ecx, dword [esi + 0x62c]
cdq
idiv dword [ebp - 0x2ec]
sub ecx, eax
mov eax, dword [esi + 0x624]
cmp ecx, eax
cmovle eax, ecx
mov ecx, esi
test eax, eax
jg 0x5083d4
xor eax, eax
mov dword [ecx + 0x62c], eax
cmp esi, dword [edi + 0x4c]
jne 0x508449
mov ecx, dword [ebp - 0x350]
mov eax, dword [ebp - 0x250]
mov eax, dword [ecx + eax*8 + 0x40]
cdq
idiv dword [ebp - 0x2ec]
movzx ecx, word [edi + 0x26f0c]
add ecx, eax
cmp ecx, 0xf4240
jle 0x5084ab
mov ecx, 0xf4240
movzx eax, cx
mov word [edi + 0x26f0c], ax
mov eax, dword [0x9c25ac]
movups xmm0, xmmword [esi + 0x614]
movups xmmword [eax + 0x92c], xmm0
movups xmm0, xmmword [esi + 0x624]
movups xmmword [eax + 0x93c], xmm0
movups xmm0, xmmword [esi + 0x634]
movups xmmword [eax + 0x94c], xmm0
movss xmm1, dword [esi + 0x30]
lea edx, [ebp - 0x2e4]
addss xmm1, dword [0x604dc4]
movss xmm2, dword [esi + 0x2c]
lea ecx, [ebp - 0x2f0]
movss xmm0, dword [esi + 0x28]
mov dword [ebp - 0x2f0], 0
mov dword [ebp - 0x2e4], 0
call fcn.004b4860
test eax, eax
je 0x508632
mov eax, dword [ebp - 0x350]
mov ecx, 1
mov al, byte [eax + 0x30]
test al, 8
je 0x5084ba
mov dword [ebp - 0x318], 2
jmp 0x5084da
test ecx, ecx
jg 0x508410
xor eax, eax
jmp 0x508413
test al, 0x10
je 0x5084ca
mov dword [ebp - 0x318], 3
jmp 0x5084da
test al, 0x20
mov eax, 4
cmovne ecx, eax
mov dword [ebp - 0x318], ecx
push 0x80
lea eax, [ebp - 0x98]
push 0
push eax
call fcn.00468b40
cvttss2si eax, dword [esi + 0x28]
add esp, 0xc
sar eax, 7
cmp eax, 0x10
jle 0x50855f
cmp eax, 0x14
jge 0x50855f
cvttss2si eax, dword [esi + 0x2c]
and eax, 0xffffff80
cmp eax, 0xe80
jle 0x50855f
mov eax, dword [ebp - 0x350]
movzx ecx, word [eax + 0x26]
mov eax, ecx
mov dword [ebp - 0x2e8], eax
mov eax, dword [edi + 0x4c]
mov edx, dword [eax + 0x20]
cmp ecx, edx
jne 0x508536
cmp dword [esi + 0x20], 0x3e8
jae 0x50855f
cmp dword [esi + 0x20], edx
jne 0x508549
mov eax, 0x3e8
cmp word [ebp - 0x2e8], ax
jae 0x50855f
lea eax, [ebp - 0x98]
push 0x600fe8
push eax
call fcn.00445aa0
add esp, 8
jmp 0x50858d
mov ecx, dword [ebp - 0x250]
mov eax, dword [ebp - 0x350]
mov eax, dword [eax + ecx*8 + 0x40]
cdq
idiv dword [ebp - 0x318]
neg eax
push eax
lea eax, [ebp - 0x98]
push str.__d
push eax
call fcn.00445aa0
add esp, 0xc
cmp dword [0x1ff1f34], 0
je 0x5085a9
mov eax, dword [edi + 0x4c]
cmp esi, eax
je 0x5085a9
cmp dword [ebp - 0x34c], eax
jne 0x508632
push 0x2a0
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x390], esi
mov dword [ebp - 4], 0x2e
mov ecx, esi
push 0x2a0
call fcn.0045fa90
movss xmm0, dword [0x626b1c]
mulss xmm0, dword [ebp - 0x368]
push 2
push 0
push 0x5dc
push 1
cvttss2si eax, xmm0
push 0
push ecx
mov ecx, dword [ebp - 0x2e4]
mov dword [esp], 0x40000000
push 0xff5555ff
sub ecx, eax
lea eax, [ebp - 0x98]
push ecx
push dword [ebp - 0x2f0]
mov ecx, esi
push eax
call fcn.0054d720
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [edi + 0x3c]
push eax
call fcn.005bcdc0
mov esi, dword [ebp - 0x24c]
mov edx, dword [ebp - 0x350]
mov ecx, dword [edi + 0x4c]
movzx eax, word [edx + 0x26]
cmp eax, dword [ecx + 0x20]
jne 0x50958e
push dword [edx + 0xc]
mov ecx, edi
push dword [edx + 0x1c]
push dword [edx + 0x18]
call fcn.0051dca0
jmp 0x509588
cmp byte [ecx + 0x2f], 0
jne 0x508756
cmp edx, 0xf4240
jle 0x508673
xor edx, edx
jmp 0x508677
test edx, edx
js 0x5086a4
mov eax, edx
mov ecx, 0
cdq
idiv dword [ebp - 0x2ec]
mov edx, dword [esi + 0x62c]
sub edx, eax
mov dword [ebp - 0x2e8], eax
cmovns ecx, edx
mov edx, eax
mov dword [esi + 0x62c], ecx
mov ecx, dword [ebp - 0x350]
cmp dword [esi + 0x62c], 0
jge 0x5086b7
mov dword [esi + 0x62c], 0
cmp esi, dword [edi + 0x4c]
jne 0x508756
lea eax, [edi + 0x26f0c]
mov dword [ebp - 0x2e4], eax
movzx eax, word [eax]
mov esi, eax
mov dword [ebp - 0x2e8], esi
mov esi, dword [ebp - 0x250]
sub eax, dword [ecx + esi*8 + 0x40]
mov esi, dword [ebp - 0x24c]
test eax, eax
jle 0x5086f8
mov eax, dword [ebp - 0x2e8]
sub eax, edx
movzx edx, ax
jmp 0x5086fa
xor edx, edx
mov eax, dword [ebp - 0x2e4]
mov word [eax], dx
mov eax, 0x3e8
cmp word [ecx + 0x26], ax
jbe 0x508727
mov eax, dword [ecx + 0x10]
test eax, eax
jle 0x50871b
sub dword [edi + 0x26f10], eax
mov eax, dword [edi + 0x26f10]
mov dword [esi + 0x630], eax
mov eax, dword [0x9c25ac]
movups xmm0, xmmword [esi + 0x614]
movups xmmword [eax + 0x92c], xmm0
movups xmm0, xmmword [esi + 0x624]
movups xmmword [eax + 0x93c], xmm0
movups xmm0, xmmword [esi + 0x634]
movups xmmword [eax + 0x94c], xmm0
cmp dword [esi + 0x218], 0x38
mov ax, word [ecx + 0x26]
mov word [esi + 0x848], ax
mov dword [ebp - 0x318], 0
mov dword [ebp - 0x32c], 0
jne 0x5087d5
cmp word [esi + 0x172], 0
jne 0x5087d5
mov eax, dword [ebp - 0x34c]
test eax, eax
je 0x5087d5
movss xmm4, dword [0x604d2c]
movss xmm0, dword [eax + 0x28]
movss xmm3, dword [esi + 0x28]
movss xmm2, dword [esi + 0x2c]
movss xmm1, dword [esi + 0x30]
subss xmm1, dword [0x604dc4]
mulss xmm0, xmm4
mulss xmm3, xmm4
mulss xmm2, xmm4
addss xmm3, xmm0
movss xmm0, dword [eax + 0x2c]
mulss xmm0, xmm4
addss xmm2, xmm0
jmp 0x5087ec
movss xmm1, dword [esi + 0x30]
movss xmm3, dword [esi + 0x28]
addss xmm1, dword [0x604dc4]
movss xmm2, dword [esi + 0x2c]
lea edx, [ebp - 0x32c]
movaps xmm0, xmm3
lea ecx, [ebp - 0x318]
call fcn.004b4860
test eax, eax
je 0x509588
cmp dword [ebp - 0x34c], 0
je 0x50b083
mov eax, dword [ebp - 0x350]
mov edx, 1
mov cl, byte [eax + 0x30]
test cl, 8
je 0x50882f
mov edx, 2
jmp 0x508845
test cl, 0x10
je 0x50883b
mov edx, 3
jmp 0x508845
test cl, 0x20
cmovne edx, dword [ebp - 0x354]
mov dword [ebp - 0x314], edx
mov dword [ebp - 0x2f0], 0
test cl, 2
je 0x508863
mov ecx, dword [eax + 0x48]
mov dword [ebp - 0x2f0], ecx
mov ecx, dword [ebp - 0x250]
xorps xmm0, xmm0
movups xmmword [ebp - 0x300], xmm0
mov eax, dword [eax + ecx*8 + 0x40]
sub eax, dword [ebp - 0x2f0]
mov dword [ebp - 0x364], eax
cmp edx, 1
ja 0x508893
mov dword [ebp - 0x300], eax
jmp 0x50893b
cmp edx, 2
jne 0x5088c2
imul ecx, eax, 0x64
mov eax, 0x51eb851f
imul ecx
mov ecx, dword [ebp - 0x364]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ecx, eax
mov dword [ebp - 0x300], eax
mov dword [ebp - 0x2fc], ecx
jmp 0x508935
cmp edx, 3
jne 0x5088f9
imul ecx, eax, 0x64
mov eax, 0x1b4e81b5
imul ecx
mov ecx, dword [ebp - 0x364]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x300], eax
mov dword [ebp - 0x2fc], eax
add eax, eax
sub ecx, eax
mov dword [ebp - 0x2f8], ecx
jmp 0x508935
cmp edx, 4
jne 0x50893b
imul ecx, eax, 0x64
mov eax, 0x51eb851f
imul ecx
mov ecx, dword [ebp - 0x364]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x300], eax
mov dword [ebp - 0x2fc], eax
mov dword [ebp - 0x2f8], eax
lea eax, [eax + eax*2]
sub ecx, eax
mov dword [ebp - 0x2f4], ecx
mov edx, dword [ebp - 0x314]
xor eax, eax
mov dword [ebp - 0x364], eax
nop dword [eax]
nop word [eax + eax]
mov ecx, dword [ebp + eax*4 - 0x300]
mov dword [ebp - 0x2e4], ecx
test ecx, ecx
jle 0x509467
push 0x80
lea eax, [ebp - 0x198]
push 0
push eax
call fcn.00468b40
cvttss2si eax, dword [esi + 0x28]
add esp, 0xc
sar eax, 7
cmp eax, 0x10
jle 0x5089f2
cmp eax, 0x14
jge 0x5089f2
cvttss2si ecx, dword [esi + 0x2c]
sar ecx, 7
cmp ecx, 0x1d
jle 0x5089f2
cmp eax, 0x12
jne 0x5089a4
cmp ecx, 0x1e
je 0x5089f2
mov eax, dword [ebp - 0x350]
movzx ecx, word [eax + 0x26]
mov eax, ecx
mov dword [ebp - 0x2e8], eax
mov eax, dword [edi + 0x4c]
mov edx, dword [eax + 0x20]
cmp ecx, edx
jne 0x5089c9
cmp dword [esi + 0x20], 0x3e8
jae 0x5089f2
cmp dword [esi + 0x20], edx
jne 0x5089dc
mov eax, 0x3e8
cmp word [ebp - 0x2e8], ax
jae 0x5089f2
lea eax, [ebp - 0x198]
push 0x600fe8
push eax
call fcn.00445aa0
add esp, 8
jmp 0x508a49
mov ecx, dword [ebp - 0x350]
test byte [ecx + 0x30], 2
je 0x508a2f
cmp dword [ebp - 0x364], 0
jne 0x508a2f
cmp dword [ecx + 0x48], 0
jle 0x508a4f
push dword [ebp - 0x2f0]
lea eax, [ebp - 0x198]
push dword [ebp - 0x2e4]
push str._d___d
push eax
call fcn.00445aa0
add esp, 0x10
jmp 0x508a49
push dword [ebp - 0x2e4]
lea eax, [ebp - 0x198]
push 0x5fd138
push eax
call fcn.00445aa0
add esp, 0xc
mov ecx, dword [ebp - 0x350]
cmp dword [0x1ff1f34], 0
je 0x508a68
mov eax, dword [edi + 0x4c]
cmp dword [ebp - 0x34c], eax
sete dl
cmp esi, eax
jne 0x508a6a
mov dl, 1
movzx eax, word [ecx + 0x2a]
mov esi, eax
mov dword [ebp - 0x2e4], esi
mov esi, 0x469
cmp ax, si
jne 0x508dd1
mov eax, 0x6ab
cmp word [ecx + 0x24], ax
je 0x508aaa
mov eax, dword [ebp - 0x2e4]
mov esi, 0x446
cmp ax, si
jne 0x508aac
mov eax, 0x69a
cmp word [ecx + 0x24], ax
jne 0x508aac
xor dl, dl
mov esi, dword [ebp - 0x24c]
mov dword [ebp - 0x118], 0x76c
mov dword [ebp - 0x114], 0
mov dword [ebp - 0x110], 0
mov dword [ebp - 0x10c], 0
mov dword [ebp - 0x108], 0x4b0
mov dword [ebp - 0x104], 0
mov dword [ebp - 0x100], 0
mov dword [ebp - 0xfc], 0
mov dword [ebp - 0xf8], 0x64
mov dword [ebp - 0xf4], 0
mov dword [ebp - 0xf0], 0
mov dword [ebp - 0xec], 0x64
mov dword [ebp - 0xe8], 0x708
mov dword [ebp - 0xe4], 0x898
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0xd8], 0x4b0
mov dword [ebp - 0xd4], 0x5dc
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xcc], 0
mov dword [ebp - 0xc8], 0x64
mov dword [ebp - 0xc4], 0x64
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xbc], 0xc8
mov dword [ebp - 0xb8], 0x5fa
mov dword [ebp - 0xb4], 0x640
mov dword [ebp - 0xb0], 0x6a4
mov dword [ebp - 0xac], 0
mov dword [ebp - 0xa8], 0x4b0
mov dword [ebp - 0xa4], 0x4e2
mov dword [ebp - 0xa0], 0x708
mov dword [ebp - 0x9c], 0
mov dword [ebp - 0x98], 0x64
mov dword [ebp - 0x94], 0x64
mov dword [ebp - 0x90], 0x64
mov dword [ebp - 0x8c], 0x12c
mov dword [ebp - 0x88], 0x6a4
mov dword [ebp - 0x84], 0x6a4
mov dword [ebp - 0x80], 0x708
mov dword [ebp - 0x7c], 0x76c
mov dword [ebp - 0x78], 0x6a4
mov dword [ebp - 0x74], 0x6a4
mov dword [ebp - 0x70], 0x708
mov dword [ebp - 0x6c], 0x76c
mov dword [ebp - 0x68], 0x64
mov dword [ebp - 0x64], 0x64
mov dword [ebp - 0x60], 0x64
mov dword [ebp - 0x5c], 0x190
mov dword [ebp - 0x58], 0x6a4
mov dword [ebp - 0x54], 0x6a4
mov dword [ebp - 0x50], 0x708
mov dword [ebp - 0x4c], 0x76c
mov dword [ebp - 0x48], 0x6a4
mov dword [ebp - 0x44], 0x6a4
mov dword [ebp - 0x40], 0x708
mov dword [ebp - 0x3c], 0x76c
mov dword [ebp - 0x38], 0x514
mov dword [ebp - 0x34], 0x5dc
mov dword [ebp - 0x30], 0x6a4
mov dword [ebp - 0x2c], 0x76c
mov dword [ebp - 0x28], 0x64
mov dword [ebp - 0x24], 0x64
mov dword [ebp - 0x20], 0x64
mov dword [ebp - 0x1c], 0x190
test dl, dl
je 0x50930f
mov eax, dword [ebp - 0x250]
test eax, eax
jle 0x5090d1
movzx edx, word [ecx + eax*8 + 0x3c]
movzx eax, word [ecx + eax*8 + 0x34]
mov dword [ebp - 0x2e8], eax
mov eax, dword [edi + 0x4c]
mov dword [eax + 0xb4c], 0
test byte [ecx + 0x30], 1
jne 0x508f5c
cmp esi, dword [edi + 0x4c]
jne 0x508df9
push 0x2a0
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x384], esi
mov dword [ebp - 4], 0x2f
mov ecx, esi
push 0x2a0
call fcn.0045fa90
mov edx, dword [ebp - 0x364]
movss xmm2, dword [0x626b1c]
movd xmm1, dword [ebp - 0x32c]
movaps xmm0, xmm2
mulss xmm0, dword [ebp - 0x310]
lea eax, [edx + edx*4]
shl eax, 2
cvtdq2ps xmm1, xmm1
push 4
push edx
push 0x4b0
push 1
push 0
subss xmm1, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
push ecx
mov dword [esp], 0x3f800000
push 0xffffffffffffffff
mulss xmm0, xmm2
mulss xmm2, dword [0x605400]
subss xmm1, xmm0
cvttss2si eax, xmm2
cvttss2si ecx, xmm1
sub ecx, eax
mov eax, 2
sub eax, edx
push ecx
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0x318]
lea eax, [eax + ecx*2]
push eax
jmp 0x5092ac
mov eax, dword [ebp - 0x2e4]
mov esi, 0x45c
cmp ax, si
jne 0x508a95
mov eax, 0x6ab
cmp word [ecx + 0x24], ax
je 0x508aaa
jmp 0x508aac
movzx eax, word [ecx + 0x28]
mov dword [ebp - 0x2e4], 3
mov ecx, eax
test ax, ax
js 0x508e24
cmp cx, 0x60
jl 0x508e1a
cmp cx, 0x67
jg 0x508e24
mov dword [ebp - 0x2e4], 7
push 0x2a0
cmp dx, word [ebp - 0x2e8]
je 0x508eb9
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x388], esi
mov dword [ebp - 4], 0x30
mov ecx, esi
push 0x2a0
call fcn.0045fa90
mov ecx, dword [ebp - 0x364]
mov eax, dword [ebp - 0x314]
push dword [ebp - 0x2e4]
movss xmm2, dword [0x626b1c]
movd xmm1, dword [ebp - 0x32c]
movaps xmm0, xmm2
mulss xmm0, dword [ebp - 0x310]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*4]
push ecx
push dword [ebp + eax*4 - 0x108]
cvtdq2ps xmm1, xmm1
lea eax, [ecx + ecx*4]
shl eax, 2
subss xmm1, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm2
mulss xmm2, dword [ebp - 0x368]
jmp 0x509289
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x38c], esi
mov dword [ebp - 4], 0x31
mov ecx, esi
push 0x2a0
call fcn.0045fa90
mov edx, dword [ebp - 0x364]
movss xmm2, dword [0x626b1c]
movd xmm1, dword [ebp - 0x32c]
movaps xmm0, xmm2
mulss xmm0, dword [ebp - 0x310]
lea eax, [edx + edx*4]
push dword [ebp - 0x2e4]
cvtdq2ps xmm1, xmm1
shl eax, 2
push edx
push 0x4b0
push 1
push 0
subss xmm1, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
push ecx
mov dword [esp], 0x3f800000
push 0xffffffffffffffff
mulss xmm0, xmm2
mulss xmm2, dword [0x605400]
subss xmm1, xmm0
cvttss2si eax, xmm2
cvttss2si ecx, xmm1
sub ecx, eax
lea eax, [edx + edx*4]
push ecx
mov ecx, dword [ebp - 0x318]
add eax, eax
sub ecx, eax
add ecx, 0xf
push ecx
jmp 0x5092ac
mov eax, dword [edi + 0x4c]
mov dword [ebp - 0x2e4], 5
mov dword [eax + 0xb4c], 1
movzx eax, word [ecx + 0x28]
mov ecx, eax
test ax, ax
js 0x508f94
cmp cx, 0x60
jl 0x508f8a
cmp cx, 0x67
jg 0x508f94
mov dword [ebp - 0x2e4], 8
push 0x2a0
cmp dx, word [ebp - 0x2e8]
je 0x50902b
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x288], esi
mov dword [ebp - 4], 0x32
mov ecx, esi
push 0x2a0
call fcn.0045fa90
mov ecx, dword [ebp - 0x364]
mov eax, dword [ebp - 0x314]
push dword [ebp - 0x2e4]
movss xmm2, dword [0x626b1c]
movd xmm0, dword [ebp - 0x32c]
movaps xmm1, xmm2
mulss xmm1, dword [0x60512c]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*4]
push ecx
push dword [ebp + eax*4 - 0x118]
cvtdq2ps xmm0, xmm0
lea eax, [ecx + ecx*4]
shl eax, 3
push 9
addss xmm1, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm2
mulss xmm2, dword [0x605404]
jmp 0x50928b
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x380], esi
mov dword [ebp - 4], 0x33
mov ecx, esi
push 0x2a0
call fcn.0045fa90
mov edx, dword [ebp - 0x364]
movss xmm2, dword [0x626b1c]
movd xmm1, dword [ebp - 0x32c]
movaps xmm0, xmm2
mulss xmm0, dword [0x6050bc]
lea eax, [edx + edx*4]
push dword [ebp - 0x2e4]
shl eax, 3
cvtdq2ps xmm1, xmm1
push edx
push 0x708
push 9
push 0
push ecx
subss xmm1, xmm0
mov dword [esp], 0x3f800000
movd xmm0, eax
cvtdq2ps xmm0, xmm0
push 0xffffffffffffffff
mulss xmm0, xmm2
mulss xmm2, dword [0x60540c]
subss xmm1, xmm0
cvttss2si eax, xmm2
cvttss2si ecx, xmm1
sub ecx, eax
mov eax, 4
sub eax, edx
push ecx
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0x318]
lea eax, [eax + ecx*2]
push eax
jmp 0x5092ac
mov eax, dword [edi + 0x4c]
mov dword [eax + 0xb4c], 0
test byte [ecx + 0x30], 1
je 0x5091aa
mov eax, dword [edi + 0x4c]
mov dword [ebp - 0x2e8], 5
mov dword [eax + 0xb4c], 1
movzx eax, word [ecx + 0x28]
mov ecx, eax
test ax, ax
js 0x509120
cmp cx, 0x60
jl 0x509116
cmp cx, 0x67
jg 0x509120
mov dword [ebp - 0x2e8], 8
push 0x2a0
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x37c], esi
mov dword [ebp - 4], 0x34
mov ecx, esi
push 0x2a0
call fcn.0045fa90
mov ecx, dword [ebp - 0x364]
mov eax, dword [ebp - 0x314]
push dword [ebp - 0x2e8]
movss xmm2, dword [0x626b1c]
movd xmm0, dword [ebp - 0x32c]
movaps xmm1, xmm2
mulss xmm1, dword [ebp - 0x310]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*4]
push ecx
push dword [ebp + eax*4 - 0x118]
cvtdq2ps xmm0, xmm0
lea eax, [ecx + ecx*4]
shl eax, 3
push 9
addss xmm1, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm2
mulss xmm2, dword [ebp - 0x368]
jmp 0x50928b
cmp esi, dword [edi + 0x4c]
jne 0x5091db
push 0x2a0
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x378], esi
mov dword [ebp - 4], 0x35
mov ecx, esi
push 0x2a0
call fcn.0045fa90
push 4
jmp 0x509234
movzx eax, word [ecx + 0x28]
mov dword [ebp - 0x2e8], 3
mov ecx, eax
test ax, ax
js 0x509206
cmp cx, 0x60
jl 0x5091fc
cmp cx, 0x67
jg 0x509206
mov dword [ebp - 0x2e8], 7
push 0x2a0
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x338], esi
mov dword [ebp - 4], 0x36
mov ecx, esi
push 0x2a0
call fcn.0045fa90
push dword [ebp - 0x2e8]
mov eax, dword [ebp - 0x314]
mov ecx, dword [ebp - 0x364]
movss xmm2, dword [0x626b1c]
movd xmm0, dword [ebp - 0x32c]
movaps xmm1, xmm2
mulss xmm1, dword [0x6050bc]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*4]
cvtdq2ps xmm0, xmm0
push ecx
push dword [ebp + eax*4 - 0x108]
lea eax, [ecx + ecx*4]
shl eax, 2
addss xmm1, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm2
mulss xmm2, dword [0x6053f0]
push 1
push 0
push ecx
addss xmm1, xmm0
mov dword [esp], 0x3f800000
cvttss2si eax, xmm2
push 0xffffffffffffffff
cvttss2si ecx, xmm1
sub ecx, eax
push ecx
push dword [ebp - 0x318]
lea eax, [ebp - 0x198]
mov ecx, esi
push eax
call fcn.0054d720
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x24c]
cmp dword [esi + 0x218], 0x38
jne 0x509306
cmp word [esi + 0x172], 0
jne 0x509306
mov ecx, dword [ebp - 0x34c]
cmp ecx, dword [edi + 0x4c]
je 0x509306
test eax, eax
je 0x509306
cmp dword [eax + 0xac], 5
mov dword [eax + 0xd4], 0x3f000000
jne 0x509306
mov dword [eax + 0xac], 6
mov ecx, dword [edi + 0x3c]
push eax
call fcn.005bcdc0
cmp esi, dword [edi + 0x4c]
jne 0x509334
mov eax, dword [ebp - 0x34c]
add eax, 0xfc
push eax
lea eax, [edi + 0x27888]
push 0x5ec718
push eax
call fcn.00445aa0
add esp, 0xc
cmp byte [esi + 0xa41], 1
jne 0x50945b
push 0xcc
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x258], esi
mov dword [ebp - 4], 0x37
mov ecx, esi
push 0xcc
call fcn.0045e510
mov eax, dword [ebp - 0x24c]
mov ecx, esi
push 4
push 0xff999999
push 0xb16
movss xmm3, dword [eax + 0x34]
call fcn.004f2590
mov dword [ebp - 0x2e8], eax
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x24c]
mov dword [eax + 0xa4], 0x19d
mov dword [eax + 0xb0], 0x1f4
mov dword [eax + 0xb8], 0x1f4
cmp byte [esi + 0xa44], 1
mov eax, dword [esi + 0x5c]
movss xmm2, dword [esi + 0x38]
mulss xmm2, dword [eax*8 + 0x629074]
mulss xmm2, dword [0x604d2c]
jne 0x5093f9
addss xmm2, dword [esi + 0x54]
movss xmm3, dword [esi + 0x58]
lea ecx, [ebp - 0x29c]
movss xmm1, dword [esi + 0x50]
subss xmm2, dword [0x604d04]
jmp 0x509416
addss xmm2, dword [esi + 0x30]
movss xmm3, dword [esi + 0x2c]
lea ecx, [ebp - 0x2ac]
movss xmm1, dword [esi + 0x28]
addss xmm2, dword [0x604d04]
call fcn.00445a40
mov ecx, dword [ebp - 0x2e8]
push ecx
movq xmm0, qword [eax]
movq qword [ecx + 0x74], xmm0
mov eax, dword [eax + 8]
mov dword [ecx + 0x7c], eax
mov dword [ecx + 0x98], 0x40200000
mov dword [ecx + 0x9c], 0x40200000
mov dword [ecx + 0x6c], 1
mov byte [ecx + 0xac], 0
mov ecx, dword [edi + 0x2c]
call fcn.005bcdc0
mov edx, dword [ebp - 0x314]
mov eax, dword [ebp - 0x364]
inc eax
mov dword [ebp - 0x364], eax
cmp eax, edx
jl 0x508950
jmp 0x509588
movss xmm1, dword [esi + 0x30]
lea edx, [ebp - 0x2e8]
addss xmm1, dword [0x604dc4]
movss xmm2, dword [esi + 0x2c]
lea ecx, [ebp - 0x314]
movss xmm0, dword [esi + 0x28]
mov dword [ebp - 0x314], 0
mov dword [ebp - 0x2e8], 0
call fcn.004b4860
test eax, eax
je 0x509588
cmp dword [0x1ff1f34], 0
je 0x5094db
mov eax, dword [edi + 0x4c]
cmp esi, eax
je 0x5094db
cmp dword [ebp - 0x34c], eax
jne 0x509588
push 0x80
lea eax, [ebp - 0x248]
push 0
push eax
call fcn.00468b40
add esp, 0xc
lea eax, [ebp - 0x248]
push str.miss
push eax
call fcn.00445aa0
push 0x2a0
call fcn.0046677d
mov esi, eax
add esp, 0xc
mov dword [ebp - 0x320], esi
mov dword [ebp - 4], 0x2d
mov ecx, esi
push 0x2a0
call fcn.0045fa90
movss xmm0, dword [0x626b1c]
mulss xmm0, dword [ebp - 0x368]
push 4
push 0
push 0x5dc
push 1
cvttss2si eax, xmm0
push 0
push ecx
mov ecx, dword [ebp - 0x2e8]
mov dword [esp], 0x40000000
push 0xffffffffffffffff
sub ecx, eax
lea eax, [ebp - 0x248]
push ecx
push dword [ebp - 0x314]
mov ecx, esi
push eax
call fcn.0054d720
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [edi + 0x3c]
push eax
call fcn.005bcdc0
mov esi, dword [ebp - 0x24c]
mov edx, dword [ebp - 0x350]
cmp dword [esi + 0x62c], 0
jge 0x5095b0
cmp byte [edx + 0x2f], 0
jne 0x5095b0
xor eax, eax
mov dword [esi + 0x62c], 0
mov word [edi + 0x26f0c], ax
mov ecx, dword [esi + 0x62c]
mov eax, dword [esi + 0x624]
cmp ecx, eax
jle 0x5095ce
cmp byte [edx + 0x2f], 0
jne 0x5095ce
mov dword [esi + 0x62c], eax
mov ecx, eax
cmp esi, dword [edi + 0x4c]
jne 0x5095e4
cmp byte [edx + 0x2f], 0
jne 0x5095e4
mov eax, dword [0x9c25ac]
mov dword [eax + 0x944], ecx
push 0
mov ecx, esi
call fcn.00577380
mov edx, dword [edi + 0x1a9a2c]
test edx, edx
je 0x50966b
xor ecx, ecx
cmp dword [edx + 0x210], ecx
jle 0x50966b
lea eax, [edx + 0x214]
nop word [eax + eax]
mov edx, dword [eax]
mov edi, dword [esi + 0x20]
mov dword [ebp - 0x2e8], edx
cmp dword [edx + 0xe6c], edi
mov edi, dword [ebp - 0x358]
je 0x50963d
mov edx, dword [edi + 0x1a9a2c]
inc ecx
add eax, 4
cmp ecx, dword [edx + 0x210]
jl 0x509610
jmp 0x50966b
mov ecx, dword [edx + 0xe84]
push dword [esi + 0x624]
mov eax, dword [ecx]
call dword [eax + 0x8c]
mov eax, dword [ebp - 0x2e8]
push dword [esi + 0x62c]
mov ecx, dword [eax + 0xe84]
mov eax, dword [ecx]
call dword [eax + 0x88]
mov ecx, dword [ebp - 0x350]
movzx eax, word [ecx + 0x28]
mov edx, eax
test ax, ax
js 0x50969e
cmp dx, 0x68
jge 0x50969e
cmp dx, 0x1d
je 0x50969e
movsx eax, dx
lea eax, [eax + eax*2]
shl eax, 5
cmp dword [eax + 0x62e8f4], 8
je 0x50b083
mov eax, dword [ebp - 0x34c]
test eax, eax
je 0x5096ce
mov edi, dword [ebp - 0x36c]
cmp dword [eax + 0x5c], 0xb
mov eax, edi
mov dword [ebp - 0x36c], edi
mov edi, 4
cmove eax, edi
mov edi, dword [ebp - 0x358]
mov dword [ebp - 0x36c], eax
mov al, byte [ecx + 0x2e]
cmp al, 9
jbe 0x5096db
mov byte [ecx + 0x2e], 9
mov al, 9
cmp dx, word [ebp - 0x360]
mov edx, 5
movzx eax, al
mov dword [ebp - 0x2e8], eax
mov eax, dword [ebp - 0x36c]
cmove eax, edx
mov dword [ebp - 0x36c], eax
mov eax, dword [ebp - 0x34c]
cmp eax, dword [edi + 0x4c]
jne 0x509710
cmp byte [ecx + 0x2f], 0
jne 0x509773
mov eax, dword [ebp - 0x250]
mov eax, dword [ecx + eax*8 + 0x40]
cdq
idiv dword [ebp - 0x2ec]
mov ecx, dword [0x9c25b4]
mov dword [esi + 0x694], eax
movss xmm0, dword [ebp - 0x348]
movss dword [esi + 0x698], xmm0
movss xmm0, dword [ebp - 0x344]
movss dword [esi + 0x69c], xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
mov ecx, dword [ebp - 0x36c]
mov edx, dword [ebp - 0x2e8]
lea ecx, [ecx + ecx*2]
lea ecx, [edx + ecx*2]
add eax, dword [ecx*4 + 0x601200]
mov dword [esi + 0x690], eax
mov edx, dword [ebp - 0x250]
inc edx
mov dword [ebp - 0x250], edx
cmp edx, 0xd
jge 0x50abd5
mov esi, dword [ebp - 0x350]
jmp 0x508290
push str.____damage_font_error_distance_:__d_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor eax, eax
jmp 0x50b088
movzx eax, word [esi + 0x2a]
mov ecx, edi
movd xmm1, eax
movzx eax, word [esi + 0x24]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x324], xmm1
movss dword [ebp - 0x320], xmm0
push dword [ebp - 0x320]
push dword [ebp - 0x324]
call fcn.00592d40
mov edx, dword [ebp - 0x34c]
movd xmm1, eax
movzx eax, word [esi + 0x2a]
cvtdq2ps xmm1, xmm1
movd xmm2, eax
movzx eax, word [esi + 0x24]
mulss xmm1, dword [0x604ccc]
cvtdq2ps xmm2, xmm2
movd xmm0, eax
cvtdq2ps xmm0, xmm0
unpcklps xmm2, xmm1
movss dword [ebp - 0x320], xmm0
mov eax, dword [ebp - 0x320]
movss dword [ebp - 0x314], xmm1
movups xmmword [ebp - 0x2a0], xmm2
mov dword [ebp - 0x2f0], eax
movq qword [ebp - 0x2fc], xmm2
mov dword [ebp - 0x2f4], eax
cmp edx, dword [edi + 0x4c]
jne 0x50984d
cmp byte [esi + 0x2f], 0
jne 0x50a4cd
xor edi, edi
mov dword [ebp - 0x250], edi
movzx eax, word [esi + 4]
mov edx, 0x39d
mov ecx, eax
cmp ax, dx
jne 0x50986e
cmp edi, 1
jge 0x50a4b9
mov eax, 0x39e
cmp cx, ax
jne 0x509881
cmp edi, 2
jge 0x50a4b9
mov ecx, dword [0x9c25ac]
mov eax, dword [ecx]
mov edx, dword [eax + 0x34]
movzx eax, word [esi + edi*8 + 0x3c]
push eax
call edx
mov edi, eax
test edi, edi
je 0x50a4a3
movsx eax, byte [edi + 0xa51]
mov ecx, 1
test eax, eax
cmove eax, ecx
mov dword [ebp - 0x2ec], eax
mov eax, dword [ebp - 0x250]
mov ecx, dword [esi + eax*8 + 0x40]
cmp ecx, 0xfffffffd
je 0x50a289
cmp ecx, 0xfffffffc
je 0x50a289
movzx eax, word [esi + 0x28]
mov edx, eax
test ax, ax
js 0x509bd9
cmp dx, 0x68
jge 0x509bd9
movsx eax, dx
lea eax, [eax + eax*2]
shl eax, 5
cmp dword [eax + 0x62e8f4], 6
jne 0x509bd9
test ecx, ecx
jns 0x50990d
cmp ecx, 0xfffffffa
jg 0x509bd9
cmp byte [esi + 0x2f], 0
jne 0x5099ca
mov eax, ecx
cdq
idiv dword [ebp - 0x2ec]
mov edx, dword [edi + 0x62c]
mov ecx, edx
sub ecx, eax
test ecx, ecx
jg 0x509932
xor edx, edx
jmp 0x509934
sub edx, eax
mov esi, dword [ebp - 0x358]
mov dword [edi + 0x62c], edx
cmp edi, dword [esi + 0x4c]
jne 0x5099d0
movzx eax, word [esi + 0x26f0c]
lea edx, [esi + 0x26f0c]
mov esi, dword [ebp - 0x250]
mov ecx, eax
mov dword [ebp - 0x360], ecx
mov ecx, dword [ebp - 0x350]
mov dword [ebp - 0x354], edx
mov ecx, dword [ecx + esi*8 + 0x40]
sub eax, ecx
test eax, eax
jg 0x50997e
xor eax, eax
jmp 0x509998
mov eax, ecx
mov ecx, dword [ebp - 0x360]
cdq
idiv dword [ebp - 0x2ec]
mov edx, dword [ebp - 0x354]
sub ecx, eax
movzx eax, cx
mov word [edx], ax
mov eax, dword [0x9c25ac]
movups xmm0, xmmword [edi + 0x614]
movups xmmword [eax + 0x92c], xmm0
movups xmm0, xmmword [edi + 0x624]
movups xmmword [eax + 0x93c], xmm0
movups xmm0, xmmword [edi + 0x634]
movups xmmword [eax + 0x94c], xmm0
mov esi, dword [ebp - 0x358]
movss xmm1, dword [edi + 0x30]
lea edx, [ebp - 0x2e8]
addss xmm1, dword [0x604dc4]
movss xmm2, dword [edi + 0x2c]
lea ecx, [ebp - 0x2ec]
movss xmm0, dword [edi + 0x28]
mov dword [ebp - 0x2ec], 0
mov dword [ebp - 0x2e8], 0
call fcn.004b4860
test eax, eax
je 0x509bae
mov eax, dword [ebp - 0x350]
mov ecx, 1
mov al, byte [eax + 0x30]
test al, 8
je 0x509a32
mov dword [ebp - 0x2e4], 2
jmp 0x509a52
test al, 0x10
je 0x509a42
mov dword [ebp - 0x2e4], 3
jmp 0x509a52
test al, 0x20
mov eax, 4
cmovne ecx, eax
mov dword [ebp - 0x2e4], ecx
push 0x80
lea eax, [ebp - 0x98]
push 0
push eax
call fcn.00468b40
cvttss2si eax, dword [edi + 0x28]
add esp, 0xc
sar eax, 7
cmp eax, 0x10
jle 0x509ad7
cmp eax, 0x14
jge 0x509ad7
cvttss2si eax, dword [edi + 0x2c]
and eax, 0xffffff80
cmp eax, 0xe80
jle 0x509ad7
mov eax, dword [ebp - 0x350]
movzx ecx, word [eax + 0x26]
mov eax, ecx
mov dword [ebp - 0x360], eax
mov eax, dword [esi + 0x4c]
mov edx, dword [eax + 0x20]
cmp ecx, edx
jne 0x509aae
cmp dword [edi + 0x20], 0x3e8
jae 0x509ad7
cmp dword [edi + 0x20], edx
jne 0x509ac1
mov eax, 0x3e8
cmp word [ebp - 0x360], ax
jae 0x509ad7
lea eax, [ebp - 0x98]
push 0x600fe8
push eax
call fcn.00445aa0
add esp, 8
jmp 0x509b05
mov ecx, dword [ebp - 0x250]
mov eax, dword [ebp - 0x350]
mov eax, dword [eax + ecx*8 + 0x40]
cdq
idiv dword [ebp - 0x2e4]
neg eax
push eax
lea eax, [ebp - 0x98]
push str.__d
push eax
call fcn.00445aa0
add esp, 0xc
cmp dword [0x1ff1f34], 0
je 0x509b21
mov eax, dword [esi + 0x4c]
cmp edi, eax
je 0x509b21
cmp dword [ebp - 0x34c], eax
jne 0x509bae
push 0x2a0
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x320], esi
mov dword [ebp - 4], 0x39
mov ecx, esi
push 0x2a0
call fcn.0045fa90
movss xmm0, dword [0x626b1c]
mulss xmm0, dword [0x605408]
push 2
push 0
push 0x5dc
push 1
push dword [ebp - 0x24c]
cvttss2si eax, xmm0
push ecx
mov ecx, dword [ebp - 0x2e8]
mov dword [esp], 0x40000000
push 0xff5555ff
sub ecx, eax
lea eax, [ebp - 0x98]
push ecx
push dword [ebp - 0x2ec]
mov ecx, esi
push eax
call fcn.0054d720
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x358]
push eax
mov ecx, dword [esi + 0x3c]
call fcn.005bcdc0
mov edx, dword [ebp - 0x350]
mov ecx, dword [esi + 0x4c]
movzx eax, word [edx + 0x26]
cmp eax, dword [ecx + 0x20]
jne 0x50a3ae
push dword [edx + 0xc]
mov ecx, esi
push dword [edx + 0x1c]
push dword [edx + 0x18]
call fcn.0051dca0
jmp 0x50a3a8
cmp byte [esi + 0x2f], 0
jne 0x509c9e
mov eax, ecx
cdq
idiv dword [ebp - 0x2ec]
mov edx, dword [edi + 0x62c]
mov ecx, edx
sub ecx, eax
test ecx, ecx
jg 0x509bfe
xor edx, edx
jmp 0x509c00
sub edx, eax
mov esi, dword [ebp - 0x358]
mov dword [edi + 0x62c], edx
cmp edi, dword [esi + 0x4c]
jne 0x509ca4
movzx eax, word [esi + 0x26f0c]
lea edx, [esi + 0x26f0c]
mov esi, dword [ebp - 0x250]
mov ecx, eax
mov dword [ebp - 0x360], ecx
mov ecx, dword [ebp - 0x350]
mov dword [ebp - 0x354], edx
mov ecx, dword [ecx + esi*8 + 0x40]
sub eax, ecx
mov esi, dword [ebp - 0x358]
test eax, eax
jg 0x509c50
xor eax, eax
jmp 0x509c6a
mov eax, ecx
mov ecx, dword [ebp - 0x360]
cdq
idiv dword [ebp - 0x2ec]
mov edx, dword [ebp - 0x354]
sub ecx, eax
movzx eax, cx
mov word [edx], ax
mov eax, dword [0x9c25ac]
movups xmm0, xmmword [edi + 0x614]
movups xmmword [eax + 0x92c], xmm0
movups xmm0, xmmword [edi + 0x624]
movups xmmword [eax + 0x93c], xmm0
movups xmm0, xmmword [edi + 0x634]
movups xmmword [eax + 0x94c], xmm0
jmp 0x509ca4
mov esi, dword [ebp - 0x358]
cmp dword [edi + 0x218], 0x38
mov eax, dword [ebp - 0x350]
mov dword [ebp - 0x32c], 0
mov dword [ebp - 0x318], 0
mov ax, word [eax + 0x26]
mov word [edi + 0x848], ax
jne 0x509d29
cmp word [edi + 0x172], 0
jne 0x509d29
mov eax, dword [ebp - 0x34c]
test eax, eax
je 0x509d29
movss xmm4, dword [0x604d2c]
movss xmm0, dword [eax + 0x28]
movss xmm3, dword [edi + 0x28]
movss xmm2, dword [edi + 0x2c]
movss xmm1, dword [edi + 0x30]
subss xmm1, dword [0x604dc4]
mulss xmm0, xmm4
mulss xmm3, xmm4
mulss xmm2, xmm4
addss xmm3, xmm0
movss xmm0, dword [eax + 0x2c]
mulss xmm0, xmm4
addss xmm2, xmm0
jmp 0x509d40
movss xmm1, dword [edi + 0x30]
movss xmm3, dword [edi + 0x28]
addss xmm1, dword [0x604dc4]
movss xmm2, dword [edi + 0x2c]
lea edx, [ebp - 0x318]
movaps xmm0, xmm3
lea ecx, [ebp - 0x32c]
call fcn.004b4860
test eax, eax
je 0x50a3a8
cmp dword [ebp - 0x34c], 0
je 0x50b083
mov eax, dword [ebp - 0x350]
mov cl, byte [eax + 0x30]
test cl, 8
je 0x509d83
mov dword [ebp - 0x310], 2
jmp 0x509dad
test cl, 0x10
je 0x509d94
mov dword [ebp - 0x310], 3
jmp 0x509dad
mov dword [ebp - 0x310], 4
test cl, 0x20
jne 0x509dad
mov dword [ebp - 0x310], 1
xor ecx, ecx
mov dword [ebp - 0x36c], ecx
mov dword [ebp - 0x364], ecx
mov dword [ebp - 0x2e4], ecx
mov edx, dword [ebp - 0x250]
mov eax, dword [eax + edx*8 + 0x40]
cdq
idiv dword [ebp - 0x310]
mov dword [ebp - 0x354], eax
test eax, eax
jle 0x50a25b
push 0x80
lea eax, [ebp - 0x198]
push 0
push eax
call fcn.00468b40
cvttss2si eax, dword [edi + 0x28]
add esp, 0xc
sar eax, 7
cmp eax, 0x10
jle 0x509e6d
cmp eax, 0x14
jge 0x509e6d
cvttss2si ecx, dword [edi + 0x2c]
sar ecx, 7
cmp ecx, 0x1d
jle 0x509e6d
cmp eax, 0x12
jne 0x509e1f
cmp ecx, 0x1e
je 0x509e6d
mov eax, dword [ebp - 0x350]
movzx ecx, word [eax + 0x26]
mov eax, ecx
mov dword [ebp - 0x360], eax
mov eax, dword [esi + 0x4c]
mov edx, dword [eax + 0x20]
cmp ecx, edx
jne 0x509e44
cmp dword [edi + 0x20], 0x3e8
jae 0x509e6d
cmp dword [edi + 0x20], edx
jne 0x509e57
mov eax, 0x3e8
cmp word [ebp - 0x360], ax
jae 0x509e6d
lea eax, [ebp - 0x198]
push 0x600fe8
push eax
call fcn.00445aa0
add esp, 8
jmp 0x509e87
push dword [ebp - 0x354]
lea eax, [ebp - 0x198]
push 0x5fd138
push eax
call fcn.00445aa0
add esp, 0xc
mov edx, dword [ebp - 0x350]
movzx eax, word [edx + 0x28]
mov ecx, eax
mov dword [ebp - 0x360], ecx
cmp ax, 0x4f
jne 0x509eac
imul eax, dword [ebp - 0x250], 0x64
add dword [ebp - 0x24c], eax
cmp dword [0x1ff1f34], 0
je 0x509edc
mov ecx, dword [esi + 0x4c]
cmp dword [ebp - 0x34c], ecx
sete al
cmp edi, ecx
movzx eax, al
mov ecx, 1
cmove eax, ecx
test al, al
je 0x50a119
mov ecx, dword [ebp - 0x360]
test byte [edx + 0x30], 1
je 0x509f88
mov dword [ebp - 0x2e8], 5
test cx, cx
js 0x509f0b
cmp cx, 0x60
jl 0x509f01
cmp cx, 0x67
jg 0x509f0b
mov dword [ebp - 0x2e8], 8
push 0x2a0
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x258], esi
mov dword [ebp - 4], 0x3a
mov ecx, esi
push 0x2a0
call fcn.0045fa90
movss xmm2, dword [0x626b1c]
movd xmm1, dword [ebp - 0x318]
movaps xmm0, xmm2
mulss xmm0, dword [0x6050bc]
cvtdq2ps xmm1, xmm1
subss xmm1, xmm0
movd xmm0, dword [ebp - 0x2e4]
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm2
subss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [0x605184]
mulss xmm2, dword [0x605408]
addss xmm1, xmm0
cvttss2si eax, xmm2
jmp 0x50a083
cmp edi, dword [esi + 0x4c]
jne 0x509ff6
push 0x2a0
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x338], esi
mov dword [ebp - 4], 0x3b
mov ecx, esi
push 0x2a0
call fcn.0045fa90
movd xmm0, dword [ebp - 0x36c]
movd xmm1, dword [ebp - 0x318]
cvtdq2ps xmm0, xmm0
push 4
cvtdq2ps xmm1, xmm1
mulss xmm0, dword [0x6050f0]
subss xmm1, xmm0
movss xmm0, dword [0x626b1c]
mulss xmm1, xmm0
mulss xmm0, dword [0x605408]
cvttss2si eax, xmm0
jmp 0x50a089
movzx eax, word [edx + 0x28]
mov dword [ebp - 0x2e8], 3
mov ecx, eax
test ax, ax
js 0x50a021
cmp cx, 0x60
jl 0x50a017
cmp cx, 0x67
jg 0x50a021
mov dword [ebp - 0x2e8], 7
push 0x2a0
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x378], esi
mov dword [ebp - 4], 0x3c
mov ecx, esi
push 0x2a0
call fcn.0045fa90
movd xmm0, dword [ebp - 0x36c]
movd xmm1, dword [ebp - 0x318]
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
mulss xmm0, dword [0x6050f0]
subss xmm1, xmm0
movss xmm0, dword [0x626b1c]
mulss xmm1, xmm0
mulss xmm0, dword [0x605408]
cvttss2si eax, xmm0
push dword [ebp - 0x2e8]
push 0
push 0x5dc
push 1
push dword [ebp - 0x24c]
push ecx
cvttss2si ecx, xmm1
mov dword [esp], 0x3f800000
push 0xffffffffffffffff
sub ecx, eax
mov eax, dword [ebp - 0x32c]
sub eax, dword [ebp - 0x364]
push ecx
push eax
lea eax, [ebp - 0x198]
mov ecx, esi
push eax
call fcn.0054d720
mov dword [ebp - 4], 0xffffffff
cmp dword [edi + 0x218], 0x38
mov esi, dword [ebp - 0x358]
jne 0x50a110
cmp word [edi + 0x172], 0
jne 0x50a110
mov ecx, dword [ebp - 0x34c]
cmp ecx, dword [esi + 0x4c]
je 0x50a110
test eax, eax
je 0x50a110
cmp dword [eax + 0xac], 5
mov dword [eax + 0xd4], 0x3f000000
jne 0x50a110
mov dword [eax + 0xac], 6
mov ecx, dword [esi + 0x3c]
push eax
call fcn.005bcdc0
cmp edi, dword [esi + 0x4c]
jne 0x50a13e
mov eax, dword [ebp - 0x34c]
add eax, 0xfc
push eax
lea eax, [esi + 0x27888]
push 0x5ec718
push eax
call fcn.00445aa0
add esp, 0xc
cmp byte [edi + 0xa41], 1
jne 0x50a255
push 0xcc
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x37c], esi
mov dword [ebp - 4], 0x3d
mov ecx, esi
push 0xcc
call fcn.0045e510
movss xmm3, dword [edi + 0x34]
mov ecx, esi
push 4
push 0xff999999
push 0xb16
call fcn.004f2590
mov esi, eax
mov dword [ebp - 4], 0xffffffff
mov dword [esi + 0xa4], 0x19d
mov dword [esi + 0xb0], 0x1f4
mov dword [esi + 0xb8], 0x1f4
cmp byte [edi + 0xa44], 1
mov eax, dword [edi + 0x5c]
movss xmm2, dword [eax*8 + 0x629074]
mulss xmm2, dword [edi + 0x38]
mulss xmm2, dword [0x604d2c]
jne 0x50a1f3
addss xmm2, dword [edi + 0x54]
movss xmm3, dword [edi + 0x58]
lea ecx, [ebp - 0x26c]
movss xmm1, dword [edi + 0x50]
subss xmm2, dword [0x604d04]
jmp 0x50a210
addss xmm2, dword [edi + 0x30]
movss xmm3, dword [edi + 0x2c]
lea ecx, [ebp - 0x27c]
movss xmm1, dword [edi + 0x28]
addss xmm2, dword [0x604d04]
call fcn.00445a40
push esi
movq xmm0, qword [eax]
movq qword [esi + 0x74], xmm0
mov eax, dword [eax + 8]
mov dword [esi + 0x7c], eax
mov dword [esi + 0x98], 0x40200000
mov dword [esi + 0x9c], 0x40200000
mov dword [esi + 0x6c], 1
mov byte [esi + 0xac], 0
mov esi, dword [ebp - 0x358]
mov ecx, dword [esi + 0x2c]
call fcn.005bcdc0
mov ecx, dword [ebp - 0x36c]
add dword [ebp - 0x2e4], 0x28
inc ecx
add dword [ebp - 0x364], 0xa
mov eax, dword [ebp - 0x350]
mov dword [ebp - 0x36c], ecx
cmp ecx, dword [ebp - 0x310]
jl 0x509dc1
mov edx, eax
jmp 0x50a3ae
movss xmm1, dword [edi + 0x30]
lea edx, [ebp - 0x2e4]
addss xmm1, dword [0x604dc4]
movss xmm2, dword [edi + 0x2c]
lea ecx, [ebp - 0x310]
movss xmm0, dword [edi + 0x28]
mov dword [ebp - 0x310], 0
mov dword [ebp - 0x2e4], 0
call fcn.004b4860
test eax, eax
je 0x50a3a2
cmp dword [0x1ff1f34], 0
je 0x50a2ef
mov esi, dword [ebp - 0x358]
mov eax, dword [esi + 0x4c]
cmp edi, eax
je 0x50a2ef
cmp dword [ebp - 0x34c], eax
jne 0x50a3a8
push 0x80
lea eax, [ebp - 0x248]
push 0
push eax
call fcn.00468b40
add esp, 0xc
lea eax, [ebp - 0x248]
push str.miss
push eax
call fcn.00445aa0
push 0x2a0
call fcn.0046677d
mov esi, eax
add esp, 0xc
mov dword [ebp - 0x380], esi
mov dword [ebp - 4], 0x38
mov ecx, esi
push 0x2a0
call fcn.0045fa90
movss xmm0, dword [0x626b1c]
mulss xmm0, dword [0x605408]
push 4
push 0
push 0x5dc
push 1
push dword [ebp - 0x24c]
cvttss2si eax, xmm0
push ecx
mov ecx, dword [ebp - 0x2e4]
mov dword [esp], 0x40000000
push 0xffffffffffffffff
sub ecx, eax
lea eax, [ebp - 0x248]
push ecx
push dword [ebp - 0x310]
mov ecx, esi
push eax
call fcn.0054d720
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x358]
push eax
mov ecx, dword [esi + 0x3c]
call fcn.005bcdc0
jmp 0x50a3a8
mov esi, dword [ebp - 0x358]
mov edx, dword [ebp - 0x350]
cmp dword [edi + 0x62c], 0
mov ecx, dword [0x9c25ac]
jge 0x50a405
cmp byte [edx + 0x2f], 0
jne 0x50a405
mov dword [edi + 0x62c], 0
cmp edi, dword [esi + 0x4c]
jne 0x50a3fc
movups xmm0, xmmword [edi + 0x614]
movups xmmword [ecx + 0x92c], xmm0
movups xmm0, xmmword [edi + 0x624]
movups xmmword [ecx + 0x93c], xmm0
movups xmm0, xmmword [edi + 0x634]
movups xmmword [ecx + 0x94c], xmm0
xor eax, eax
mov word [esi + 0x26f0c], ax
mov eax, dword [edi + 0x624]
cmp dword [edi + 0x62c], eax
jle 0x50a44e
cmp byte [edx + 0x2f], 0
jne 0x50a44e
mov dword [edi + 0x62c], eax
cmp edi, dword [esi + 0x4c]
jne 0x50a494
movups xmm0, xmmword [edi + 0x614]
movups xmmword [ecx + 0x92c], xmm0
movups xmm0, xmmword [edi + 0x624]
movups xmmword [ecx + 0x93c], xmm0
movups xmm0, xmmword [edi + 0x634]
movups xmmword [ecx + 0x94c], xmm0
cmp edi, dword [esi + 0x4c]
jne 0x50a494
cmp byte [edx + 0x2f], 0
jne 0x50a494
mov eax, dword [edi + 0x62c]
mov dword [ecx + 0x944], eax
cmp edi, dword [esi + 0x4c]
jne 0x50a494
movups xmm0, xmmword [edi + 0x614]
movups xmmword [ecx + 0x92c], xmm0
movups xmm0, xmmword [edi + 0x624]
movups xmmword [ecx + 0x93c], xmm0
movups xmm0, xmmword [edi + 0x634]
movups xmmword [ecx + 0x94c], xmm0
push 0
mov ecx, edi
call fcn.00577380
mov esi, dword [ebp - 0x350]
mov edi, dword [ebp - 0x250]
inc edi
mov dword [ebp - 0x250], edi
cmp edi, 0xd
jl 0x509855
movss xmm1, dword [ebp - 0x314]
mov edi, dword [ebp - 0x358]
mov edx, dword [ebp - 0x34c]
cmp edx, dword [edi + 0x4c]
jne 0x50a4dc
cmp byte [esi + 0x2f], 1
jne 0x50abd5
movzx eax, word [esi + 0x28]
mov ecx, eax
test ax, ax
jne 0x50a55a
push 0x90
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x320], esi
mov dword [ebp - 4], 0x3e
mov ecx, esi
push 0x90
call fcn.0045e590
movups xmm0, xmmword [ebp - 0x2a0]
mov edx, dword [ebp - 0x2f0]
push 0
sub esp, 0xc
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], edx
mov ecx, esi
call fcn.005a8f30
mov dword [ebp - 4], 0xffffffff
mov edx, dword [edi + 0x2c]
mov dword [eax + 4], edx
mov ecx, dword [edx + 0x10]
mov dword [eax + 0xc], ecx
mov dword [edx + 0x10], eax
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x50abd5
mov dword [ecx + 8], eax
jmp 0x50abd5
cmp cx, 1
jne 0x50a5e6
movss xmm2, dword [ebp - 0x308]
lea ecx, [ebp - 0x2fc]
subss xmm2, dword [0x604d2c]
movss xmm3, dword [ebp - 0x304]
movss xmm1, dword [ebp - 0x30c]
call fcn.00445a40
push 0x90
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x320], esi
mov dword [ebp - 4], 0x3f
mov ecx, esi
push 0x90
call fcn.0045e590
movq xmm0, qword [ebp - 0x2fc]
mov eax, dword [ebp - 0x2f4]
push 0
sub esp, 0xc
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, esi
call fcn.005a92c0
mov dword [ebp - 4], 0xffffffff
jmp 0x50abcc
cmp cx, 0x1a
jne 0x50a7aa
movss xmm2, dword [ebp - 0x308]
lea ecx, [ebp - 0x2fc]
subss xmm2, dword [0x604d2c]
movss xmm3, dword [ebp - 0x304]
movss xmm1, dword [ebp - 0x30c]
call fcn.00445a40
push 0x90
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x320], esi
mov dword [ebp - 4], 0x40
mov ecx, esi
push 0x90
call fcn.0045e590
movq xmm0, qword [ebp - 0x2fc]
mov eax, dword [ebp - 0x2f4]
push 0
sub esp, 0xc
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, esi
call fcn.005a72c0
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [edi + 0x2c]
push eax
call fcn.005bcdc0
mov esi, dword [ebp - 0x34c]
test esi, esi
je 0x50b083
mov ecx, dword [edi + 0x4c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x50]
call eax
cmp eax, 1
je 0x50b083
movzx eax, word [esi + 0x878]
mov ecx, eax
test ax, ax
je 0x50a6d1
mov eax, dword [edi + 0x4c]
movzx eax, word [eax + 0x878]
mov edx, eax
test ax, ax
je 0x50a6d1
cmp dx, cx
je 0x50b083
mov eax, dword [0x9c25ac]
cmp word [eax + 0x10fe], cx
je 0x50b083
mov eax, dword [edi + 0x4c]
xor edx, edx
mov ecx, dword [ebp - 0x350]
add ecx, 0x3c
mov esi, dword [eax + 0x20]
movzx eax, word [ecx]
cmp eax, esi
je 0x50a6f7
inc edx
add ecx, 8
cmp edx, 0xd
jl 0x50a6e2
jmp 0x50abd5
mov eax, dword [edi + 0x4c]
mov edx, dword [ebp - 0x34c]
cmp edx, eax
je 0x50abd5
cmp byte [edx + 0x214], 0
jne 0x50abd5
movzx ecx, word [eax + 0x614]
movzx eax, word [edx + 0x63e]
movss xmm3, dword [0x6052f8]
movsx esi, cx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
test cx, cx
jg 0x50a740
movd xmm2, esi
jmp 0x50a74e
movsx eax, word [edx + 0x614]
cdq
idiv esi
movd xmm2, eax
cvtdq2ps xmm2, xmm2
mulss xmm2, xmm3
mulss xmm2, xmm0
movsd xmm0, qword [0x605028]
divss xmm2, dword [0x605194]
cvtps2pd xmm1, xmm2
comisd xmm0, xmm1
jbe 0x50a77a
movss xmm2, dword [0x6052b4]
cvtps2pd xmm0, xmm2
comisd xmm0, xmmword [0x605058]
jbe 0x50a78a
movaps xmm2, xmm3
mov ecx, dword [0x9c25b4]
movss dword [edi + 0x26f64], xmm2
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
mov dword [edi + 0x26f60], eax
jmp 0x50abd5
cmp cx, 7
jne 0x50a95e
xor ecx, ecx
lea eax, [esi + 0x3c]
mov dword [ebp - 0x2e8], ecx
mov dword [ebp - 0x2e4], eax
nop word [eax + eax]
movzx eax, word [esi + 4]
mov edx, eax
cmp ax, word [ebp - 0x374]
jne 0x50a7e8
cmp ecx, 1
jge 0x50abd5
mov eax, 0x39e
cmp dx, ax
jne 0x50a7fb
cmp ecx, 2
jge 0x50abd5
mov ecx, dword [0x9c25ac]
mov eax, dword [ecx]
mov edx, dword [eax + 0x34]
mov eax, dword [ebp - 0x2e4]
movzx eax, word [eax]
push eax
call edx
test eax, eax
je 0x50a93c
mov ecx, dword [ebp - 0x34c]
xorps xmm2, xmm2
test ecx, ecx
je 0x50a82c
movss xmm2, dword [ecx + 0x30]
addss xmm2, dword [0x604d2c]
movss xmm3, dword [eax + 0x2c]
lea ecx, [ebp - 0x26c]
movss xmm1, dword [eax + 0x28]
call fcn.00445a40
lea ecx, [ebp - 0x27c]
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
movq qword [ebp - 0x30c], xmm0
movss xmm2, dword [ebp - 0x308]
movss xmm1, dword [ebp - 0x30c]
addss xmm2, dword [0x605030]
addss xmm1, dword [0x604f80]
mov dword [ebp - 0x304], eax
movss xmm3, dword [ebp - 0x304]
subss xmm3, dword [0x604f80]
movq qword [ebp - 0x260], xmm0
mov dword [ebp - 0x360], eax
call fcn.00445a40
push 0x94
movq xmm0, qword [eax]
mov edi, dword [eax + 8]
movq qword [ebp - 0x340], xmm0
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x320], esi
mov dword [ebp - 4], 0x41
mov ecx, esi
push 0x94
call fcn.0045fab0
movq xmm0, qword [ebp - 0x260]
mov ecx, dword [ebp - 0x360]
push 0
push 0
push 0
push 0x2711
push 0
sub esp, 0xc
mov eax, esp
sub esp, 0xc
movq qword [eax], xmm0
movq xmm0, qword [ebp - 0x340]
mov dword [eax + 8], ecx
mov eax, esp
mov ecx, esi
movq qword [eax], xmm0
mov dword [eax + 8], edi
call fcn.004e3480
mov dword [ebp - 4], 0xffffffff
mov edi, dword [ebp - 0x358]
push eax
mov ecx, dword [edi + 0x2c]
call fcn.005bcdc0
mov esi, dword [ebp - 0x350]
mov ecx, dword [ebp - 0x2e8]
add dword [ebp - 0x2e4], 8
inc ecx
mov dword [ebp - 0x2e8], ecx
cmp ecx, 0xd
jl 0x50a7d0
jmp 0x50abd5
cmp cx, 0x23
jne 0x50a9da
addss xmm1, dword [0x604dc4]
push 0xc8
movss dword [ebp - 0x2f8], xmm1
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x320], esi
mov dword [ebp - 4], 0x42
mov ecx, esi
push 0xc8
call fcn.0045faf0
xorps xmm3, xmm3
lea ecx, [ebp - 0x26c]
xorps xmm2, xmm2
xorps xmm1, xmm1
call fcn.00445a40
movq xmm0, qword [ebp - 0x2fc]
mov edx, dword [ebp - 0x2f0]
push 0
push 0
sub esp, 0xc
mov ecx, esp
movq qword [ecx], xmm0
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
mov dword [ecx + 8], edx
jmp 0x50ade1
cmp cx, 0x27
jne 0x50ae00
cmp byte [ebp - 0x36d], 0
lea ecx, [ebp - 0x30c]
jne 0x50ac36
addss xmm1, dword [0x604dc4]
movss dword [ebp - 0x314], xmm1
call fcn.00445b40
movss xmm1, dword [ebp - 0x2f4]
subss xmm1, dword [0x604e68]
mov dword [ebp - 0x2e4], 0
mov dword [ebp - 0x2e8], 0
movss dword [ebp - 0x360], xmm1
movss xmm1, dword [ebp - 0x2fc]
subss xmm1, dword [0x604e68]
movss dword [ebp - 0x354], xmm1
push 0xc8
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x320], esi
mov dword [ebp - 4], 0x43
mov ecx, esi
push 0xc8
call fcn.0045faf0
mov eax, dword [ebp - 0x2e4]
mov ecx, eax
movss xmm2, dword [ebp - 0x314]
and eax, 1
shr ecx, 1
movd xmm1, eax
movd xmm3, ecx
lea ecx, [ebp - 0x26c]
cvtdq2ps xmm3, xmm3
cvtdq2ps xmm1, xmm1
mulss xmm3, dword [0x604fe8]
mulss xmm1, dword [0x604fe8]
addss xmm3, dword [ebp - 0x360]
addss xmm1, dword [ebp - 0x354]
call fcn.00445a40
push 0
push 4
sub esp, 0xc
movq xmm0, qword [eax]
mov ecx, esp
mov eax, dword [eax + 8]
sub esp, 0xc
movq qword [ecx], xmm0
movq xmm0, qword [ebp - 0x30c]
mov dword [ecx + 8], eax
mov ecx, esp
mov eax, dword [ebp - 0x304]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, esi
call fcn.005af420
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x2e8]
add dword [eax + 0x80], esi
mov ecx, dword [edi + 0x2c]
push eax
call fcn.005bcdc0
inc dword [ebp - 0x2e4]
add esi, 0xc8
mov dword [ebp - 0x2e8], esi
cmp esi, 0x320
jl 0x50aa50
push 0xc8
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x320], esi
mov dword [ebp - 4], 0x44
mov ecx, esi
push 0xc8
call fcn.0045faf0
movss xmm3, dword [ebp - 0x2f4]
lea ecx, [ebp - 0x26c]
movss xmm2, dword [ebp - 0x314]
movss xmm1, dword [ebp - 0x2fc]
call fcn.00445a40
push 0
push 4
sub esp, 0xc
movq xmm0, qword [eax]
mov ecx, esp
mov eax, dword [eax + 8]
sub esp, 0xc
movq qword [ecx], xmm0
movq xmm0, qword [ebp - 0x30c]
mov dword [ecx + 8], eax
mov ecx, esp
mov eax, dword [ebp - 0x304]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, esi
call fcn.005af420
mov dword [ebp - 4], 0xffffffff
add dword [eax + 0x80], 0x10e
mov ecx, dword [edi + 0x2c]
push eax
call fcn.005bcdc0
mov eax, dword [ebp - 0x350]
cmp byte [eax + 0x2f], 0
jne 0x50b083
mov edx, dword [edi + 0x4c]
cmp dword [ebp - 0x34c], edx
jne 0x50aff5
mov esi, dword [eax + 0x10]
movzx ecx, word [edi + 0x26f0c]
mov dword [edi + 0x26f10], esi
movzx eax, word [edx + 0x62c]
mov edx, eax
mov dword [ebp - 0x360], edx
mov edx, ecx
mov dword [ebp - 0x354], edx
mov edx, dword [edi + 0x4c]
cmp cx, ax
jae 0x50afa4
mov word [edi + 0x26f0c], ax
movzx eax, ax
jmp 0x50afaa
addss xmm1, dword [0x604ea8]
movss dword [ebp - 0x314], xmm1
call fcn.00445b40
movss xmm1, dword [ebp - 0x2f4]
subss xmm1, dword [0x604da8]
mov dword [ebp - 0x2e4], 0
movss dword [ebp - 0x360], xmm1
movss xmm1, dword [ebp - 0x2fc]
subss xmm1, dword [0x604da8]
movss dword [ebp - 0x354], xmm1
push 0xc8
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x320], esi
mov dword [ebp - 4], 0x45
mov ecx, esi
push 0xc8
call fcn.0045faf0
mov eax, dword [ebp - 0x2e4]
mov ecx, eax
movss xmm2, dword [ebp - 0x314]
and eax, 1
shr ecx, 1
movd xmm1, eax
movd xmm3, ecx
lea ecx, [ebp - 0x26c]
cvtdq2ps xmm3, xmm3
cvtdq2ps xmm1, xmm1
mulss xmm3, dword [0x604e68]
mulss xmm1, dword [0x604e68]
addss xmm3, dword [ebp - 0x360]
addss xmm1, dword [ebp - 0x354]
call fcn.00445a40
push 0
push 4
sub esp, 0xc
movq xmm0, qword [eax]
mov ecx, esp
mov eax, dword [eax + 8]
sub esp, 0xc
movq qword [ecx], xmm0
movq xmm0, qword [ebp - 0x30c]
mov dword [ecx + 8], eax
mov ecx, esp
mov eax, dword [ebp - 0x304]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, esi
call fcn.005af420
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [edi + 0x2c]
push eax
call fcn.005bcdc0
mov eax, dword [ebp - 0x2e4]
inc eax
mov dword [ebp - 0x2e4], eax
cmp eax, 4
jl 0x50ac85
movss xmm0, dword [ebp - 0x314]
addss xmm0, dword [0x604d04]
push 0xc8
movss dword [ebp - 0x314], xmm0
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x320], esi
mov dword [ebp - 4], 0x46
mov ecx, esi
push 0xc8
call fcn.0045faf0
movss xmm3, dword [ebp - 0x2f4]
lea ecx, [ebp - 0x26c]
movss xmm2, dword [ebp - 0x314]
movss xmm1, dword [ebp - 0x2fc]
call fcn.00445a40
push 0
push 0xa
sub esp, 0xc
movq xmm0, qword [eax]
mov ecx, esp
mov eax, dword [eax + 8]
movq qword [ecx], xmm0
movq xmm0, qword [ebp - 0x30c]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x304]
sub esp, 0xc
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, esi
call fcn.005af420
mov dword [ebp - 4], 0xffffffff
jmp 0x50abcc
cmp cx, 0x61
jne 0x50abd5
addss xmm1, dword [0x604dc4]
xor esi, esi
movss dword [ebp - 0x2f8], xmm1
nop dword [eax]
mov ecx, dword [0x9c25ac]
mov eax, dword [ecx]
mov edx, dword [eax + 0x38]
lea eax, [esi + 0x3a99]
push eax
call edx
mov ecx, eax
test ecx, ecx
je 0x50ae72
mov eax, 0x2ea
cmp word [ecx + 0xf4], ax
jne 0x50ae72
movss xmm3, dword [ebp - 0x30c]
ucomiss xmm3, dword [ecx + 0x274]
lahf
test ah, 0x44
jp 0x50ae72
movss xmm2, dword [ebp - 0x304]
ucomiss xmm2, dword [ecx + 0x278]
lahf
test ah, 0x44
jnp 0x50ae7a
inc esi
cmp esi, 0x64
jl 0x50ae20
jmp 0x50aed0
movss xmm1, dword [ecx + 0x28c]
movaps xmm0, xmm1
mov byte [ecx + 0x291], 1
mulss xmm0, dword [ecx + 0x284]
mulss xmm1, dword [ecx + 0x280]
addss xmm0, xmm3
subss xmm2, xmm1
movss dword [ebp - 0x30c], xmm0
movq xmm0, qword [ebp - 0x30c]
movss dword [ebp - 0x304], xmm2
mov eax, dword [ebp - 0x304]
mov dword [ebp - 0x368], eax
movq qword [ebp - 0x290], xmm0
mov eax, dword [edi + 0x4c]
movss xmm0, dword [ebp - 0x2fc]
push 0xc8
subss xmm0, dword [eax + 0x28]
movss dword [ebp - 0x354], xmm0
movss xmm0, dword [ebp - 0x2f4]
subss xmm0, dword [eax + 0x2c]
movss dword [ebp - 0x360], xmm0
call fcn.0046677d
mov esi, eax
add esp, 4
mov dword [ebp - 0x320], esi
mov dword [ebp - 4], 0x47
mov ecx, esi
push 0xc8
call fcn.0045faf0
movq xmm0, qword [ebp - 0x2fc]
mov edx, dword [ebp - 0x2f0]
mov ecx, dword [ebp - 0x368]
push 0
push 2
sub esp, 0xc
mov eax, esp
sub esp, 0xc
movq qword [eax], xmm0
movq xmm0, qword [ebp - 0x290]
mov dword [eax + 8], edx
mov eax, esp
movq qword [eax], xmm0
mov dword [eax + 8], ecx
mov ecx, esi
call fcn.005af420
mov esi, eax
mov dword [ebp - 4], 0xffffffff
movss xmm1, dword [ebp - 0x354]
movss xmm0, dword [ebp - 0x360]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.00445af0
movss dword [esi + 0xc0], xmm0
mov ecx, dword [edi + 0x2c]
push esi
call fcn.005bcdc0
jmp 0x50b083
mov eax, dword [ebp - 0x354]
movzx eax, ax
mov dword [ebp - 0x360], eax
mov eax, dword [edx + 0x630]
cmp esi, eax
jae 0x50afc5
mov dword [edi + 0x26f10], eax
mov esi, eax
movzx eax, word [edx + 0x624]
mov ecx, eax
cmp word [ebp - 0x360], ax
jbe 0x50afde
mov word [edi + 0x26f0c], cx
mov eax, dword [edx + 0x628]
cmp esi, eax
jbe 0x50afee
mov dword [edi + 0x26f10], eax
push 0
jmp 0x50b07c
cmp dword [ebp - 0x35c], edx
jne 0x50b083
movzx eax, word [edx + 0x62c]
movzx ecx, word [edi + 0x26f0c]
mov esi, eax
mov edx, ecx
mov dword [ebp - 0x360], edx
mov edx, dword [edi + 0x4c]
cmp cx, ax
jae 0x50b02a
mov word [edi + 0x26f0c], si
jmp 0x50b030
mov eax, dword [ebp - 0x360]
mov ecx, dword [edi + 0x26f10]
movzx eax, ax
mov dword [ebp - 0x360], eax
mov eax, dword [edx + 0x630]
cmp ecx, eax
jae 0x50b051
mov dword [edi + 0x26f10], eax
mov ecx, eax
movzx eax, word [edx + 0x624]
mov esi, eax
cmp word [ebp - 0x360], ax
jbe 0x50b06a
mov word [edi + 0x26f0c], si
mov eax, dword [edx + 0x628]
cmp ecx, eax
jbe 0x50b07a
mov dword [edi + 0x26f10], eax
push 0x10
mov ecx, edi
call fcn.00547270
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0046676f
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4