Function at 0x9045ae7
Capabilities:
Encode data using base64

Disassembly:
push 0x208
mov eax, 0x90d1671
call fcn.09006dd9
mov edi, ecx
mov dword [ebp - 0x1ec], edi
mov eax, dword [ebp + 8]
mov dword [ebp - 0x214], eax
xor eax, eax
cmp dword [edi + 0x10], 1
push 3
mov dword [ebp - 4], eax
pop ebx
je 0x9045b1e
cmp dword [edi + 0x10], ebx
jne 0x9048709
push eax
cmp byte [edi + 0x28], al
je 0x90471e5
push eax
push eax
push 0x44324230
push 0x6d706574
push dword [edi + 8]
lea ecx, [ebp - 0x1a4]
call fcn.09015650
push ebx
lea ecx, [ebp - 0x1a4]
mov byte [ebp - 4], 1
call fcn.09015650
push ebx
lea ecx, [ebp - 0x1a4]
call fcn.09015650
cmp dword [edi + 0x10], ebx
jne 0x90463ab
cmp dword [edi + 0xc], 0x63737020
je 0x9045bba
push 0x1c
call fcn.09015650
mov dword [ebp - 0x1d4], eax
pop ecx
test eax, eax
je 0x9045b92
push ebx
push ebx
push dword [edi + 8]
mov ecx, eax
call fcn.09015650
mov esi, eax
jmp 0x9045b94
xor esi, esi
cmp dword [edi + 0x18], 0xff
jg 0x9048709
lea ecx, [edi + 0x1c]
mov al, byte [edi + 0x18]
mov byte [ecx], al
inc ecx
sub ebx, 1
jne 0x9045ba4
mov eax, dword [edi + 0x24]
lea edx, [edi + 0x1c]
jmp 0x9046383
push 0
push 0x9115628
push 0x911560c
push 0
push edi
call sub.VCRUNTIME140.dll___RTDynamicCast
mov esi, eax
add esp, 0x14
mov dword [ebp - 0x210], esi
test esi, esi
je 0x9048709
imul eax, dword [esi + 0x94], 6
xor edx, edx
push 6
pop ecx
push 4
div ecx
xor ecx, ecx
dec eax
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.09015650
mov dword [ebp - 0x1fc], eax
xor edx, edx
imul eax, dword [esi + 0x94], 6
push 6
pop ecx
push 4
div ecx
xor ecx, ecx
dec eax
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.09015650
mov dword [ebp - 0x1d8], eax
xor edx, edx
imul eax, dword [esi + 0x94], 6
push 6
pop ecx
push 4
div ecx
xor ecx, ecx
dec eax
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.09015650
push 0xc
mov dword [ebp - 0x1dc], eax
call fcn.09015650
push 0xc
mov dword [ebp - 0x200], eax
call fcn.09015650
movss xmm1, dword [0x90e7a80]
mov ecx, eax
mov eax, dword [esi + 0xd4]
add esp, 0x14
mov edx, dword [ebp - 0x200]
mov dword [ebp - 0x1f8], ecx
movzx eax, word [eax]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, xmm1
movss dword [edx], xmm0
mov eax, dword [esi + 0xd4]
movzx eax, word [eax + 2]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, xmm1
movss dword [edx + 4], xmm0
mov eax, dword [esi + 0xd4]
movzx eax, word [eax + 4]
movd xmm0, eax
xor eax, eax
cvtdq2ps xmm0, xmm0
and dword [ebp - 0x204], eax
mov dword [ebp - 0x1f0], eax
divss xmm0, xmm1
movss dword [edx + 8], xmm0
mov edx, ebx
imul eax, dword [esi + 0x94], 6
and eax, 0xfffffffe
cmp eax, 6
jbe 0x9045d99
mov ecx, dword [ebp - 0x1d8]
mov edi, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x1dc]
sub edi, ecx
sub eax, ecx
mov dword [ebp - 0x1d4], eax
mov eax, dword [esi + 0xd4]
movzx eax, word [eax + edx*2]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, xmm1
movss dword [edi + ecx], xmm0
mov eax, dword [esi + 0xd4]
movzx eax, word [eax + edx*2 + 2]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, xmm1
movss dword [ecx], xmm0
mov eax, dword [esi + 0xd4]
movzx eax, word [eax + edx*2 + 4]
add edx, ebx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mov eax, dword [ebp - 0x1d4]
divss xmm0, xmm1
movss dword [eax + ecx], xmm0
lea ecx, [ecx + 4]
mov eax, dword [ebp - 0x204]
inc dword [ebp - 0x204]
mov dword [ebp - 0x1f0], eax
imul eax, dword [esi + 0x94], 6
shr eax, 1
cmp edx, eax
jb 0x9045d14
mov edi, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x1f8]
mov edx, dword [ebp - 0x1f0]
mov eax, dword [ebp - 0x1fc]
push 0x50
mov eax, dword [eax + edx*4]
mov dword [ecx], eax
mov eax, dword [ebp - 0x1d8]
mov eax, dword [eax + edx*4]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1dc]
mov eax, dword [eax + edx*4]
mov dword [ecx + 8], eax
call fcn.09015650
mov dword [ebp - 0x1d4], eax
pop ecx
test eax, eax
je 0x9045de8
push ebx
push ebx
push dword [edi + 8]
mov ecx, eax
call fcn.09015650
mov dword [ebp - 0x204], eax
jmp 0x9045def
and dword [ebp - 0x204], 0
push 0x10
call fcn.09015650
mov ecx, eax
mov eax, dword [ebp - 0x200]
push 8
mov dword [ebp - 0x1e8], ecx
and dword [ecx + 4], 0
and dword [ecx + 8], 0
mov dword [ecx], 0x3f800000
mov eax, dword [eax]
mov dword [ecx + 0xc], eax
call fcn.09015650
mov ecx, eax
mov eax, dword [esi + 0x98]
push 0x14
mov dword [ebp - 0x1ec], ecx
mov dword [ecx], eax
mov eax, dword [esi + 0x9c]
mov dword [ecx + 4], eax
call fcn.09015650
add esp, 0xc
mov dword [ebp - 0x1d4], eax
mov byte [ebp - 4], 2
test eax, eax
je 0x9045e69
push dword [ebp - 0x1e8]
mov ecx, eax
push 0
push dword [edi + 8]
call fcn.09040c98
mov dword [ebp - 0x1f4], eax
jmp 0x9045e70
and dword [ebp - 0x1f4], 0
mov eax, dword [ebp - 0x1f8]
mov ecx, dword [ebp - 0x1e8]
push 0x14
pop esi
mov eax, dword [eax]
push esi
mov byte [ebp - 4], 1
mov dword [ecx + 0xc], eax
call fcn.09015650
pop ecx
mov dword [ebp - 0x1d4], eax
mov byte [ebp - 4], bl
test eax, eax
je 0x9045eb6
push dword [ebp - 0x1e8]
mov ecx, eax
push 0
push dword [edi + 8]
call fcn.09040c98
mov dword [ebp - 0x1d4], eax
jmp 0x9045ebd
and dword [ebp - 0x1d4], 0
push 0x54
mov byte [ebp - 4], 1
call fcn.09015650
pop ecx
mov dword [ebp - 0x1e0], eax
mov byte [ebp - 4], 4
test eax, eax
je 0x9045ef0
push dword [ebp - 0x1ec]
mov ecx, eax
push ebx
push dword [edi + 8]
call fcn.09040822
mov dword [ebp - 0x1f0], eax
jmp 0x9045ef7
and dword [ebp - 0x1f0], 0
push 0x18
mov byte [ebp - 4], 1
call fcn.09015650
pop ecx
mov dword [ebp - 0x1e0], eax
mov byte [ebp - 4], 5
test eax, eax
je 0x9045f43
mov eax, dword [ebp - 0x210]
xor edx, edx
push 6
pop ecx
push dword [ebp - 0x1fc]
imul eax, dword [eax + 0x94], 6
div ecx
mov ecx, dword [ebp - 0x1e0]
dec eax
push eax
push dword [edi + 8]
call fcn.09040d5b
mov dword [ebp - 0x1e0], eax
jmp 0x9045f4a
and dword [ebp - 0x1e0], 0
push dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x1f0]
mov byte [ebp - 4], 1
call fcn.09015650
push dword [ebp - 0x1e0]
mov ecx, dword [ebp - 0x1f0]
call fcn.09015650
push dword [ebp - 0x1d4]
mov ecx, dword [ebp - 0x1f0]
call fcn.09015650
mov ecx, dword [ebp - 0x204]
push 0
push dword [ebp - 0x1f0]
call fcn.09015650
mov ecx, dword [ebp - 0x210]
mov edx, dword [ebp - 0x1ec]
push esi
mov eax, dword [ecx + 0xa0]
mov dword [edx], eax
mov eax, dword [ecx + 0xa4]
mov ecx, dword [ebp - 0x1e8]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0x200]
mov eax, dword [eax + 4]
mov dword [ecx + 0xc], eax
call fcn.09015650
pop ecx
mov dword [ebp - 0x1d4], eax
mov byte [ebp - 4], 6
test eax, eax
je 0x9045ff2
push dword [ebp - 0x1e8]
mov ecx, eax
push 0
push dword [edi + 8]
call fcn.09040c98
mov dword [ebp - 0x1d4], eax
jmp 0x9045ff9
and dword [ebp - 0x1d4], 0
mov eax, dword [ebp - 0x1f8]
mov ecx, dword [ebp - 0x1e8]
push esi
mov byte [ebp - 4], 1
mov eax, dword [eax + 4]
mov dword [ecx + 0xc], eax
call fcn.09015650
pop ecx
mov dword [ebp - 0x1e0], eax
mov byte [ebp - 4], 7
test eax, eax
je 0x904603e
push dword [ebp - 0x1e8]
mov ecx, eax
push 0
push dword [edi + 8]
call fcn.09040c98
mov dword [ebp - 0x1f4], eax
jmp 0x9046045
and dword [ebp - 0x1f4], 0
push 0x54
mov byte [ebp - 4], 1
call fcn.09015650
pop ecx
mov dword [ebp - 0x1e0], eax
mov byte [ebp - 4], 8
test eax, eax
je 0x9046078
push dword [ebp - 0x1ec]
mov ecx, eax
push ebx
push dword [edi + 8]
call fcn.09040822
mov dword [ebp - 0x1f0], eax
jmp 0x904607f
and dword [ebp - 0x1f0], 0
push 0x18
mov byte [ebp - 4], 1
call fcn.09015650
pop ecx
mov dword [ebp - 0x1e0], eax
mov byte [ebp - 4], 9
test eax, eax
je 0x90460cb
mov eax, dword [ebp - 0x210]
xor edx, edx
push 6
pop ecx
push dword [ebp - 0x1d8]
imul eax, dword [eax + 0x94], 6
div ecx
mov ecx, dword [ebp - 0x1e0]
dec eax
push eax
push dword [edi + 8]
call fcn.09040d5b
mov dword [ebp - 0x1e0], eax
jmp 0x90460d2
and dword [ebp - 0x1e0], 0
push dword [ebp - 0x1d4]
mov ecx, dword [ebp - 0x1f0]
mov byte [ebp - 4], 1
call fcn.09015650
push dword [ebp - 0x1e0]
mov ecx, dword [ebp - 0x1f0]
call fcn.09015650
push dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x1f0]
call fcn.09015650
mov ecx, dword [ebp - 0x204]
push 1
push dword [ebp - 0x1f0]
call fcn.09015650
mov ecx, dword [ebp - 0x210]
mov edx, dword [ebp - 0x1ec]
push esi
mov eax, dword [ecx + 0xa8]
mov dword [edx], eax
mov eax, dword [ecx + 0xac]
mov ecx, dword [ebp - 0x1e8]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0x200]
mov eax, dword [eax + 8]
mov dword [ecx + 0xc], eax
call fcn.09015650
pop ecx
mov dword [ebp - 0x1d4], eax
mov byte [ebp - 4], 0xa
test eax, eax
je 0x904617a
push dword [ebp - 0x1e8]
mov ecx, eax
push 0
push dword [edi + 8]
call fcn.09040c98
mov dword [ebp - 0x1d4], eax
jmp 0x9046181
and dword [ebp - 0x1d4], 0
mov eax, dword [ebp - 0x1f8]
mov ecx, dword [ebp - 0x1e8]
push esi
mov byte [ebp - 4], 1
mov eax, dword [eax + 8]
mov dword [ecx + 0xc], eax
call fcn.09015650
pop ecx
mov dword [ebp - 0x1e0], eax
mov byte [ebp - 4], 0xb
test eax, eax
je 0x90461c6
push dword [ebp - 0x1e8]
mov ecx, eax
push 0
push dword [edi + 8]
call fcn.09040c98
mov dword [ebp - 0x1f4], eax
jmp 0x90461cd
and dword [ebp - 0x1f4], 0
push 0x54
mov byte [ebp - 4], 1
call fcn.09015650
pop ecx
mov dword [ebp - 0x1e0], eax
mov byte [ebp - 4], 0xc
test eax, eax
je 0x9046200
push dword [ebp - 0x1ec]
mov ecx, eax
push ebx
push dword [edi + 8]
call fcn.09040822
mov dword [ebp - 0x1f0], eax
jmp 0x9046207
and dword [ebp - 0x1f0], 0
push 0x18
mov byte [ebp - 4], 1
call fcn.09015650
pop ecx
mov dword [ebp - 0x1e0], eax
mov esi, dword [ebp - 0x210]
mov byte [ebp - 4], 0xd
test eax, eax
je 0x9046253
imul eax, dword [esi + 0x94], 6
xor edx, edx
push 6
pop ecx
push dword [ebp - 0x1dc]
div ecx
mov ecx, dword [ebp - 0x1e0]
dec eax
push eax
push dword [edi + 8]
call fcn.09040d5b
mov dword [ebp - 0x1e0], eax
jmp 0x904625a
and dword [ebp - 0x1e0], 0
push dword [ebp - 0x1d4]
mov ecx, dword [ebp - 0x1f0]
mov byte [ebp - 4], 1
call fcn.09015650
push dword [ebp - 0x1e0]
mov ecx, dword [ebp - 0x1f0]
call fcn.09015650
push dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x1f0]
call fcn.09015650
mov ecx, dword [ebp - 0x204]
push 2
push dword [ebp - 0x1f0]
call fcn.09015650
push dword [ebp - 0x204]
lea ecx, [ebp - 0x1a4]
call fcn.09015650
push dword [ebp - 0x1ec]
call fcn.090cdd07
push dword [ebp - 0x1e8]
call fcn.090cdd07
push dword [ebp - 0x200]
call fcn.090cdd07
push dword [ebp - 0x1f8]
call fcn.090cdd07
push dword [ebp - 0x1fc]
call fcn.090cdd07
push dword [ebp - 0x1d8]
call fcn.090cdd07
push dword [ebp - 0x1dc]
call fcn.090cdd07
push 0x1c
call fcn.09015650
add esp, 0x20
mov dword [ebp - 0x1d4], eax
test eax, eax
je 0x904632a
push ebx
push ebx
push dword [edi + 8]
mov ecx, eax
call fcn.09015650
mov dword [ebp - 0x1dc], eax
jmp 0x9046331
and dword [ebp - 0x1dc], 0
mov ecx, 0xff
cmp dword [esi + 0xb0], ecx
jg 0x9048709
mov al, byte [esi + 0xb0]
lea edx, [edi + 0x1c]
mov byte [edx], al
cmp dword [esi + 0xb4], ecx
jg 0x9048709
mov al, byte [esi + 0xb4]
mov byte [edi + 0x1d], al
cmp dword [esi + 0xb8], ecx
jg 0x9048709
mov al, byte [esi + 0xb8]
mov byte [edi + 0x1e], al
mov eax, dword [esi + 0xdc]
mov esi, dword [ebp - 0x1dc]
push ecx
push ecx
and dword [esp + 4], 0
mov ecx, esi
mov dword [esp], 0x3f800000
push eax
push edx
call fcn.09015650
push esi
lea ecx, [ebp - 0x1a4]
call fcn.09015650
jmp 0x904713e
cmp dword [edi + 0xc], 0x63737020
jne 0x9046af2
push 0
push 0x9115628
push 0x911560c
push 0
push edi
call sub.VCRUNTIME140.dll___RTDynamicCast
mov esi, eax
add esp, 0x14
mov dword [ebp - 0x1f8], esi
test esi, esi
je 0x9048709
imul eax, dword [esi + 0x94], 6
xor edx, edx
push 6
pop ecx
push 4
div ecx
xor ecx, ecx
dec eax
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.09015650
mov dword [ebp - 0x1dc], eax
xor edx, edx
imul eax, dword [esi + 0x94], 6
push 6
pop ecx
push 4
div ecx
xor ecx, ecx
dec eax
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.09015650
mov dword [ebp - 0x1fc], eax
xor edx, edx
imul eax, dword [esi + 0x94], 6
push 6
pop ecx
push 4
div ecx
xor ecx, ecx
dec eax
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.09015650
push 0xc
mov dword [ebp - 0x210], eax
call fcn.09015650
push 0xc
mov dword [ebp - 0x204], eax
call fcn.09015650
movss xmm1, dword [0x90e7a80]
add esp, 0x14
mov dword [ebp - 0x1f0], eax
mov edx, ebx
mov eax, dword [esi + 0xd4]
mov ecx, dword [ebp - 0x204]
movzx eax, word [eax]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, xmm1
movss dword [ecx], xmm0
mov eax, dword [esi + 0xd4]
movzx eax, word [eax + 2]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, xmm1
movss dword [ecx + 4], xmm0
mov eax, dword [esi + 0xd4]
movzx eax, word [eax + 4]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, xmm1
movss dword [ecx + 8], xmm0
xor ecx, ecx
imul eax, dword [esi + 0x94], 6
and dword [ebp - 0x1d4], ecx
and eax, 0xfffffffe
cmp eax, 6
jbe 0x904659e
mov edi, dword [ebp - 0x1fc]
mov ecx, edi
mov eax, dword [ebp - 0x1dc]
sub eax, edi
mov dword [ebp - 0x1e0], eax
mov eax, dword [ebp - 0x210]
sub eax, edi
mov edi, dword [ebp - 0x1e0]
mov dword [ebp - 0x1f4], eax
mov eax, dword [esi + 0xd4]
movzx eax, word [eax + edx*2]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, xmm1
movss dword [edi + ecx], xmm0
mov eax, dword [esi + 0xd4]
movzx eax, word [eax + edx*2 + 2]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, xmm1
movss dword [ecx], xmm0
mov eax, dword [esi + 0xd4]
movzx eax, word [eax + edx*2 + 4]
add edx, ebx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mov eax, dword [ebp - 0x1f4]
divss xmm0, xmm1
movss dword [eax + ecx], xmm0
lea ecx, [ecx + 4]
mov eax, dword [ebp - 0x1d4]
mov dword [ebp - 0x1e0], eax
inc eax
mov dword [ebp - 0x1d4], eax
imul eax, dword [esi + 0x94], 6
shr eax, 1
cmp edx, eax
jb 0x9046518
mov edi, dword [ebp - 0x1ec]
mov ecx, dword [ebp - 0x1e0]
mov edx, dword [ebp - 0x1f0]
mov eax, dword [ebp - 0x1dc]
push 0x50
mov eax, dword [eax + ecx*4]
mov dword [edx], eax
mov eax, dword [ebp - 0x1fc]
mov eax, dword [eax + ecx*4]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0x210]
mov eax, dword [eax + ecx*4]
mov dword [edx + 8], eax
call fcn.09015650
mov dword [ebp - 0x1d4], eax
pop ecx
test eax, eax
je 0x90465ed
push ebx
push ebx
push dword [edi + 8]
mov ecx, eax
call fcn.09015650
mov dword [ebp - 0x200], eax
jmp 0x90465f4
and dword [ebp - 0x200], 0
push 0x10
call fcn.09015650
mov ecx, eax
mov eax, dword [ebp - 0x204]
push 8
mov dword [ebp - 0x1e8], ecx
and dword [ecx + 4], 0
and dword [ecx + 8], 0
mov dword [ecx], 0x3f800000
mov eax, dword [eax]
mov dword [ecx + 0xc], eax
call fcn.09015650
mov ecx, eax
mov eax, dword [esi + 0x98]
push 0x14
mov dword [ebp - 0x1ec], ecx
mov dword [ecx], eax
mov eax, dword [esi + 0x9c]
pop esi
push esi
mov dword [ecx + 4], eax
call fcn.09015650
add esp, 0xc
mov dword [ebp - 0x1d4], eax
mov byte [ebp - 4], 0xe
test eax, eax
je 0x9046670
push dword [ebp - 0x1e8]
mov ecx, eax
push 0
push dword [edi + 8]
call fcn.09040c98
mov dword [ebp - 0x1d4], eax
jmp 0x9046677
and dword [ebp - 0x1d4], 0
mov eax, dword [ebp - 0x1f0]
mov ecx, dword [ebp - 0x1e8]
push esi
mov byte [ebp - 4], 1
mov eax, dword [eax]
mov dword [ecx + 0xc], eax
call fcn.09015650
pop ecx
mov dword [ebp - 0x1e0], eax
mov byte [ebp - 4], 0xf
test eax, eax
je 0x90466bb
push dword [ebp - 0x1e8]
mov ecx, eax
push 0
push dword [edi + 8]
call fcn.09040c98
mov dword [ebp - 0x1f4], eax
jmp 0x90466c2
and dword [ebp - 0x1f4], 0
push 0x54
mov byte [ebp - 4], 1
call fcn.09015650
pop ecx
mov dword [ebp - 0x1e0], eax
mov byte [ebp - 4], 0x10
test eax, eax
je 0x90466f5
push dword [ebp - 0x1ec]
mov ecx, eax
push ebx
push dword [edi + 8]
call fcn.09040822
mov dword [ebp - 0x1d8], eax
jmp 0x90466fc
and dword [ebp - 0x1d8], 0
push 0x18
mov byte [ebp - 4], 1
call fcn.09015650
pop ecx
mov dword [ebp - 0x1e0], eax
mov byte [ebp - 4], 0x11
test eax, eax
je 0x9046748
mov eax, dword [ebp - 0x1f8]
xor edx, edx
push 6
pop ecx
push dword [ebp - 0x1dc]
imul eax, dword [eax + 0x94], 6
div ecx
mov ecx, dword [ebp - 0x1e0]
dec eax
push eax
push dword [edi + 8]
call fcn.09040d5b
mov dword [ebp - 0x1e0], eax
jmp 0x904674f
and dword [ebp - 0x1e0], 0
push dword [ebp - 0x1d4]
mov ecx, dword [ebp - 0x1d8]
mov byte [ebp - 4], 1
call fcn.09015650
push dword [ebp - 0x1e0]
mov ecx, dword [ebp - 0x1d8]
call fcn.09015650
push dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x1d8]
call fcn.09015650
mov ecx, dword [ebp - 0x200]
push 0
push dword [ebp - 0x1d8]
call fcn.09015650
mov ecx, dword [ebp - 0x1f8]
mov edx, dword [ebp - 0x1ec]
push esi
mov eax, dword [ecx + 0xa0]
mov dword [edx], eax
mov eax, dword [ecx + 0xa4]
mov ecx, dword [ebp - 0x1e8]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0x204]
mov eax, dword [eax + 4]
mov dword [ecx + 0xc], eax
call fcn.09015650
pop ecx
mov dword [ebp - 0x1d4], eax
mov byte [ebp - 4], 0x12
test eax, eax
je 0x90467f7
push dword [ebp - 0x1e8]
mov ecx, eax
push 0
push dword [edi + 8]
call fcn.09040c98
mov dword [ebp - 0x1d4], eax
jmp 0x90467fe
and dword [ebp - 0x1d4], 0
mov eax, dword [ebp - 0x1f0]
mov ecx, dword [ebp - 0x1e8]
push esi
mov byte [ebp - 4], 1
mov eax, dword [eax + 4]
mov dword [ecx + 0xc], eax
call fcn.09015650
pop ecx
mov dword [ebp - 0x1e0], eax
mov esi, dword [ebp - 0x1e8]
mov byte [ebp - 4], 0x13
test eax, eax
je 0x9046844
push esi
push 0
push dword [edi + 8]
mov ecx, eax
call fcn.09040c98
mov dword [ebp - 0x1f4], eax
jmp 0x904684b
and dword [ebp - 0x1f4], 0
push 0x54
mov byte [ebp - 4], 1
call fcn.09015650
pop ecx
mov dword [ebp - 0x1e0], eax
mov byte [ebp - 4], 0x14
test eax, eax
je 0x904687e
push dword [ebp - 0x1ec]
mov ecx, eax
push ebx
push dword [edi + 8]
call fcn.09040822
mov dword [ebp - 0x1d8], eax
jmp 0x9046885
and dword [ebp - 0x1d8], 0
push 0x18
mov byte [ebp - 4], 1
call fcn.09015650
pop ecx
mov dword [ebp - 0x1e0], eax
mov byte [ebp - 4], 0x15
test eax, eax
je 0x90468d1
mov eax, dword [ebp - 0x1f8]
xor edx, edx
push 6
pop ecx
push dword [ebp - 0x1fc]
imul eax, dword [eax + 0x94], 6
div ecx
mov ecx, dword [ebp - 0x1e0]
dec eax
push eax
push dword [edi + 8]
call fcn.09040d5b
mov dword [ebp - 0x1e0], eax
jmp 0x90468d8
and dword [ebp - 0x1e0], 0
push dword [ebp - 0x1d4]
mov ecx, dword [ebp - 0x1d8]
mov byte [ebp - 4], 1
call fcn.09015650
push dword [ebp - 0x1e0]
mov ecx, dword [ebp - 0x1d8]
call fcn.09015650
push dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x1d8]
call fcn.09015650
mov ecx, dword [ebp - 0x200]
push 1
push dword [ebp - 0x1d8]
call fcn.09015650
mov ecx, dword [ebp - 0x1f8]
mov edx, dword [ebp - 0x1ec]
push 0x14
mov eax, dword [ecx + 0xa8]
mov dword [edx], eax
mov eax, dword [ecx + 0xac]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0x204]
mov eax, dword [eax + 8]
mov dword [esi + 0xc], eax
call fcn.09015650
pop ecx
mov dword [ebp - 0x1d4], eax
mov byte [ebp - 4], 0x16
test eax, eax
je 0x9046976
push esi
push 0
push dword [edi + 8]
mov ecx, eax
call fcn.09040c98
mov dword [ebp - 0x1d4], eax
jmp 0x904697d
and dword [ebp - 0x1d4], 0
mov eax, dword [ebp - 0x1f0]
push 0x14
mov byte [ebp - 4], 1
mov eax, dword [eax + 8]
mov dword [esi + 0xc], eax
call fcn.09015650
pop ecx
mov dword [ebp - 0x1e0], eax
mov byte [ebp - 4], 0x17
test eax, eax
je 0x90469b8
push esi
push 0
push dword [edi + 8]
mov ecx, eax
call fcn.09040c98
mov dword [ebp - 0x1f4], eax
jmp 0x90469bf
and dword [ebp - 0x1f4], 0
push 0x54
mov byte [ebp - 4], 1
call fcn.09015650
pop ecx
mov dword [ebp - 0x1e0], eax
mov byte [ebp - 4], 0x18
test eax, eax
je 0x90469f2
push dword [ebp - 0x1ec]
mov ecx, eax
push ebx
push dword [edi + 8]
call fcn.09040822
mov dword [ebp - 0x1d8], eax
jmp 0x90469f9
and dword [ebp - 0x1d8], 0
push 0x18
mov byte [ebp - 4], 1
call fcn.09015650
pop ecx
mov dword [ebp - 0x1e0], eax
mov byte [ebp - 4], 0x19
test eax, eax
je 0x9046a45
mov eax, dword [ebp - 0x1f8]
xor edx, edx
push 6
pop ecx
push dword [ebp - 0x210]
imul eax, dword [eax + 0x94], 6
div ecx
mov ecx, dword [ebp - 0x1e0]
dec eax
push eax
push dword [edi + 8]
call fcn.09040d5b
mov dword [ebp - 0x1e0], eax
jmp 0x9046a4c
and dword [ebp - 0x1e0], 0
push dword [ebp - 0x1d4]
mov ecx, dword [ebp - 0x1d8]
mov byte [ebp - 4], 1
call fcn.09015650
push dword [ebp - 0x1e0]
mov ecx, dword [ebp - 0x1d8]
call fcn.09015650
push dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x1d8]
call fcn.09015650
mov ecx, dword [ebp - 0x200]
push 2
push dword [ebp - 0x1d8]
call fcn.09015650
push dword [ebp - 0x200]
lea ecx, [ebp - 0x1a4]
call fcn.09015650
push dword [ebp - 0x1ec]
call fcn.090cdd07
push esi
call fcn.090cdd07
push dword [ebp - 0x204]
call fcn.090cdd07
push dword [ebp - 0x1f0]
call fcn.090cdd07
push dword [ebp - 0x1dc]
call fcn.090cdd07
push dword [ebp - 0x1fc]
call fcn.090cdd07
push dword [ebp - 0x210]
call fcn.090cdd07
add esp, 0x1c
mov eax, dword [edi + 0x18]
xor ecx, ecx
push 4
dec eax
pop esi
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.09015650
mov dword [ebp - 0x1fc], eax
xor ecx, ecx
mov eax, dword [edi + 0x18]
dec eax
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.09015650
mov dword [ebp - 0x204], eax
xor ecx, ecx
mov eax, dword [edi + 0x18]
dec eax
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.09015650
add esp, 0xc
mov dword [ebp - 0x1f0], eax
mov ecx, edi
call fcn.09015650
xor ecx, ecx
cmp byte [edi + 0x28], cl
setne cl
inc ecx
shr eax, cl
cmp eax, ebx
jb 0x9048709
push 0xc
call fcn.09015650
push 0xc
mov dword [ebp - 0x1f8], eax
call fcn.09015650
mov esi, eax
mov eax, dword [edi + 0x24]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x1f8]
mov eax, dword [eax]
mov dword [ebp - 0x200], esi
mov dword [ecx], eax
mov eax, dword [edi + 0x24]
mov eax, dword [eax + 4]
mov dword [ecx + 4], eax
mov eax, dword [edi + 0x24]
mov eax, dword [eax + 8]
mov dword [ecx + 8], eax
xor eax, eax
and dword [ebp - 0x1d4], eax
mov ecx, edi
mov dword [ebp - 0x1e0], eax
call fcn.09015650
xor ecx, ecx
cmp byte [edi + 0x28], cl
setne cl
inc ecx
shr eax, cl
cmp eax, ebx
jbe 0x9046c5c
mov eax, dword [ebp - 0x204]
mov ecx, eax
mov edx, dword [ebp - 0x1fc]
mov esi, dword [ebp - 0x1f0]
sub edx, eax
sub esi, eax
mov dword [ebp - 0x1d8], edx
mov dword [ebp - 0x1f4], esi
mov esi, ebx
mov eax, dword [edi + 0x24]
movss xmm0, dword [eax + esi*4]
movss xmm1, dword [eax + esi*4 + 4]
movss xmm2, dword [eax + esi*4 + 8]
add esi, ebx
mov eax, dword [ebp - 0x1f4]
movss dword [edx + ecx], xmm0
mov edx, dword [ebp - 0x1d4]
movss dword [ecx], xmm1
movss dword [eax + ecx], xmm2
add ecx, 4
mov dword [ebp - 0x1e0], edx
inc edx
mov dword [ebp - 0x1dc], ecx
mov ecx, edi
mov dword [ebp - 0x1d4], edx
call fcn.09015650
mov edx, dword [ebp - 0x1d8]
xor ecx, ecx
cmp byte [edi + 0x28], cl
setne cl
inc ecx
shr eax, cl
mov ecx, dword [ebp - 0x1dc]
cmp esi, eax
jb 0x9046bee
mov esi, dword [ebp - 0x200]
mov ecx, dword [ebp - 0x1e0]
mov eax, dword [ebp - 0x1fc]
push 0x50
mov eax, dword [eax + ecx*4]
mov dword [esi], eax
mov eax, dword [ebp - 0x204]
mov eax, dword [eax + ecx*4]
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x1f0]
mov eax, dword [eax + ecx*4]
mov dword [esi + 8], eax
call fcn.09015650
mov dword [ebp - 0x1d4], eax
pop ecx
test eax, eax
je 0x9046cab
push ebx
push ebx
push dword [edi + 8]
mov ecx, eax
call fcn.09015650
mov dword [ebp - 0x1dc], eax
jmp 0x9046cb2
and dword [ebp - 0x1dc], 0
push 0x10
call fcn.09015650
mov esi, eax
mov eax, dword [ebp - 0x1f8]
push 8
and dword [esi + 4], 0
and dword [esi + 8], 0
mov dword [esi], 0x3f800000
mov eax, dword [eax]
mov dword [esi + 0xc], eax
call fcn.09015650
movsd xmm0, qword [edi + 0x60]
cvtpd2ps xmm0, xmm0
push 0x14
mov dword [ebp - 0x1ec], eax
movss dword [eax], xmm0
movsd xmm0, qword [edi + 0x78]
cvtpd2ps xmm0, xmm0
movss dword [eax + 4], xmm0
call fcn.09015650
add esp, 0xc
mov dword [ebp - 0x1d4], eax
mov byte [ebp - 4], 0x1a
test eax, eax
je 0x9046d29
push esi
push 0
push dword [edi + 8]
mov ecx, eax
call fcn.09040c98
mov dword [ebp - 0x1d4], eax
jmp 0x9046d30
and dword [ebp - 0x1d4], 0
mov eax, dword [ebp - 0x200]
push 0x14
mov byte [ebp - 4], 1
mov eax, dword [eax]
mov dword [esi + 0xc], eax
call fcn.09015650
pop ecx
mov dword [ebp - 0x1e0], eax
mov byte [ebp - 4], 0x1b
test eax, eax
je 0x9046d6a
push esi
push 0
push dword [edi + 8]
mov ecx, eax
call fcn.09040c98
mov dword [ebp - 0x1f4], eax
jmp 0x9046d71
and dword [ebp - 0x1f4], 0
push 0x54
mov byte [ebp - 4], 1
call fcn.09015650
pop ecx
mov dword [ebp - 0x1e0], eax
mov byte [ebp - 4], 0x1c
test eax, eax
je 0x9046da4
push dword [ebp - 0x1ec]
mov ecx, eax
push ebx
push dword [edi + 8]
call fcn.09040822
mov dword [ebp - 0x1d8], eax
jmp 0x9046dab
and dword [ebp - 0x1d8], 0
push 0x18
mov byte [ebp - 4], 1
call fcn.09015650
pop ecx
mov ecx, eax
mov dword [ebp - 0x1e0], ecx
mov byte [ebp - 4], 0x1d
test ecx, ecx
je 0x9046de2
mov eax, dword [edi + 0x18]
push dword [ebp - 0x1fc]
dec eax
push eax
push dword [edi + 8]
call fcn.09040d5b
mov dword [ebp - 0x1e0], eax
jmp 0x9046de9
and dword [ebp - 0x1e0], 0
push dword [ebp - 0x1d4]
mov ecx, dword [ebp - 0x1d8]
mov byte [ebp - 4], 1
call fcn.09015650
push dword [ebp - 0x1e0]
mov ecx, dword [ebp - 0x1d8]
call fcn.09015650
push dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x1d8]
call fcn.09015650
mov ecx, dword [ebp - 0x1dc]
push 0
push dword [ebp - 0x1d8]
call fcn.09015650
movsd xmm0, qword [edi + 0x68]
mov eax, dword [ebp - 0x1ec]
cvtpd2ps xmm0, xmm0
push 0x14
movss dword [eax], xmm0
movsd xmm0, qword [edi + 0x80]
cvtpd2ps xmm0, xmm0
movss dword [eax + 4], xmm0
mov eax, dword [ebp - 0x1f8]
mov eax, dword [eax + 4]
mov dword [esi + 0xc], eax
call fcn.09015650
pop ecx
mov dword [ebp - 0x1d4], eax
mov byte [ebp - 4], 0x1e
test eax, eax
je 0x9046e8e
push esi
push 0
push dword [edi + 8]
mov ecx, eax
call fcn.09040c98
mov dword [ebp - 0x1d4], eax
jmp 0x9046e95
and dword [ebp - 0x1d4], 0
mov eax, dword [ebp - 0x200]
push 0x14
mov byte [ebp - 4], 1
mov eax, dword [eax + 4]
mov dword [esi + 0xc], eax
call fcn.09015650
pop ecx
mov dword [ebp - 0x1e0], eax
mov byte [ebp - 4], 0x1f
test eax, eax
je 0x9046ed0
push esi
push 0
push dword [edi + 8]
mov ecx, eax
call fcn.09040c98
mov dword [ebp - 0x1f4], eax
jmp 0x9046ed7
and dword [ebp - 0x1f4], 0
push 0x54
mov byte [ebp - 4], 1
call fcn.09015650
pop ecx
mov dword [ebp - 0x1e0], eax
mov byte [ebp - 4], 0x20
test eax, eax
je 0x9046f0a
push dword [ebp - 0x1ec]
mov ecx, eax
push ebx
push dword [edi + 8]
call fcn.09040822
mov dword [ebp - 0x1d8], eax
jmp 0x9046f11
and dword [ebp - 0x1d8], 0
push 0x18
mov byte [ebp - 4], 1
call fcn.09015650
pop ecx
mov ecx, eax
mov dword [ebp - 0x1e0], ecx
mov byte [ebp - 4], 0x21
test ecx, ecx
je 0x9046f48
mov eax, dword [edi + 0x18]
push dword [ebp - 0x204]
dec eax
push eax
push dword [edi + 8]
call fcn.09040d5b
mov dword [ebp - 0x1e0], eax
jmp 0x9046f4f
and dword [ebp - 0x1e0], 0
push dword [ebp - 0x1d4]
mov ecx, dword [ebp - 0x1d8]
mov byte [ebp - 4], 1
call fcn.09015650
push dword [ebp - 0x1e0]
mov ecx, dword [ebp - 0x1d8]
call fcn.09015650
push dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x1d8]
call fcn.09015650
mov ecx, dword [ebp - 0x1dc]
push 1
push dword [ebp - 0x1d8]
call fcn.09015650
movsd xmm0, qword [edi + 0x70]
mov eax, dword [ebp - 0x1ec]
cvtpd2ps xmm0, xmm0
push 0x14
movss dword [eax], xmm0
movsd xmm0, qword [edi + 0x88]
cvtpd2ps xmm0, xmm0
movss dword [eax + 4], xmm0
mov eax, dword [ebp - 0x1f8]
mov eax, dword [eax + 8]
mov dword [esi + 0xc], eax
call fcn.09015650
pop ecx
mov dword [ebp - 0x1d4], eax
mov byte [ebp - 4], 0x22
test eax, eax
je 0x9046ff4
push esi
push 0
push dword [edi + 8]
mov ecx, eax
call fcn.09040c98
mov dword [ebp - 0x1d4], eax
jmp 0x9046ffb
and dword [ebp - 0x1d4], 0
mov eax, dword [ebp - 0x200]
push 0x14
mov byte [ebp - 4], 1
mov eax, dword [eax + 8]
mov dword [esi + 0xc], eax
call fcn.09015650
pop ecx
mov dword [ebp - 0x1e0], eax
mov byte [ebp - 4], 0x23
test eax, eax
je 0x9047036
push esi
push 0
push dword [edi + 8]
mov ecx, eax
call fcn.09040c98
mov dword [ebp - 0x1f4], eax
jmp 0x904703d
and dword [ebp - 0x1f4], 0
push 0x54
mov byte [ebp - 4], 1
call fcn.09015650
pop ecx
mov dword [ebp - 0x1e0], eax
mov byte [ebp - 4], 0x24
test eax, eax
je 0x904706c
push dword [ebp - 0x1ec]
mov ecx, eax
push ebx
push dword [edi + 8]
call fcn.09040822
mov ebx, eax
jmp 0x904706e
xor ebx, ebx
push 0x18
mov byte [ebp - 4], 1
call fcn.09015650
pop ecx
mov ecx, eax
mov dword [ebp - 0x1e0], ecx
mov byte [ebp - 4], 0x25
test ecx, ecx
je 0x90470a5
mov eax, dword [edi + 0x18]
push dword [ebp - 0x1f0]
dec eax
push eax
push dword [edi + 8]
call fcn.09040d5b
mov dword [ebp - 0x1e0], eax
jmp 0x90470ac
and dword [ebp - 0x1e0], 0
push dword [ebp - 0x1d4]
mov ecx, ebx
mov byte [ebp - 4], 1
call fcn.09015650
push dword [ebp - 0x1e0]
mov ecx, ebx
call fcn.09015650
push dword [ebp - 0x1f4]
mov ecx, ebx
call fcn.09015650
push 2
push ebx
mov ebx, dword [ebp - 0x1dc]
mov ecx, ebx
call fcn.09015650
push ebx
lea ecx, [ebp - 0x1a4]
call fcn.09015650
push dword [ebp - 0x1ec]
call fcn.090cdd07
push esi
call fcn.090cdd07
push dword [ebp - 0x1f8]
call fcn.090cdd07
push dword [ebp - 0x200]
call fcn.090cdd07
push dword [ebp - 0x1fc]
call fcn.090cdd07
push dword [ebp - 0x204]
call fcn.090cdd07
push dword [ebp - 0x1f0]
call fcn.090cdd07
add esp, 0x1c
mov eax, dword [ebp - 0x214]
test eax, eax
jne 0x9047161
cmp dword [ebp + 0x20], 8
lea eax, [ebp + 0xc]
push 0
cmovae eax, dword [ebp + 0xc]
push eax
push dword [edi + 8]
call fcn.0901a529
add esp, 0xc
push eax
lea ecx, [ebp - 0x208]
call fcn.09015650
push dword [ebp - 0x208]
lea ecx, [ebp - 0x1d0]
mov byte [ebp - 4], 0x26
push dword [edi + 8]
call fcn.09040985
cmp dword [edi + 0xc], 0x63756265
lea edx, [edi + 0x78]
push edx
lea ecx, [edi + 0x60]
mov byte [ebp - 4], 0x27
push ecx
sete al
push eax
lea eax, [ebp - 0x1d0]
push eax
lea eax, [ebp - 0x1a4]
push eax
mov eax, 0x52474220
push eax
push eax
push dword [edi + 8]
call fcn.09043e2e
add esp, 0x20
mov byte [ebp - 4], 0x26
lea ecx, [ebp - 0x1d0]
mov esi, eax
call fcn.09041325
lea ecx, [ebp - 0x208]
mov byte [ebp - 4], 1
call fcn.0901b69b
mov byte [ebp - 4], 0
jmp 0x90486ec
cmp dword [edi + 0xc], 0x63737020
je 0x904773a
push eax
push 0x41324230
push 0x6d414220
push dword [edi + 8]
lea ecx, [ebp - 0xd4]
call fcn.09015650
push ebx
lea ecx, [ebp - 0xd4]
mov byte [ebp - 4], 0x28
call fcn.09015650
push ebx
lea ecx, [ebp - 0xd4]
call fcn.09015650
mov eax, dword [edi]
mov esi, dword [eax + 8]
lea eax, [ebp - 0xd4]
push eax
mov ecx, esi
call dword [0x90d62d0]
mov ecx, edi
call esi
xor eax, eax
mov dword [ebp - 0x38], 0xffff0000
and dword [ebp - 0x78], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x34], 0xffff0000
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 0x28], 0xffff
mov dword [ebp - 0x24], 0xffff0000
mov dword [ebp - 0x20], 0xffff0000
mov dword [ebp - 0x1c], 0xffffffff
mov dword [ebp - 0x18], 0xffff0000
mov dword [ebp - 0x14], 0xffffffff
mov word [ebp - 0x1e8], 0x202
mov byte [ebp - 0x1e6], 2
mov dword [ebp - 0x7c], 0x76727563
cmp dword [edi + 0x10], ebx
jne 0x904733e
cmp dword [edi + 0x18], 0xff
jg 0x9048709
lea edx, [edi + 0x1c]
mov ecx, edx
mov al, byte [edi + 0x18]
mov byte [ecx], al
inc ecx
sub ebx, 1
jne 0x90472be
push dword [edi + 0x20]
lea ecx, [ebp - 0xd4]
push 2
push edx
call fcn.09015650
mov ecx, dword [edi + 8]
push 0xc
pop ebx
push ebx
call fcn.09015650
mov dword [edi + 0x44], eax
test eax, eax
je 0x9048709
and dword [ebp - 0x74], 0
lea ecx, [ebp - 0x7c]
push ebx
push ecx
push ebx
push eax
call fcn.09015650
add esp, 0x10
test eax, eax
jne 0x9048709
mov byte [ebp - 0x1dc], al
push ebx
push dword [edi + 0x44]
lea ecx, [ebp - 0xd4]
push dword [ebp - 0x1dc]
call fcn.09015650
mov al, byte [ebp - 0x1dc]
inc al
mov byte [ebp - 0x1dc], al
cmp al, 3
jb 0x9047312
jmp 0x9047545
lea eax, [ebp - 0x40]
push eax
push 2
lea eax, [ebp - 0x1e8]
push eax
lea ecx, [ebp - 0xd4]
call fcn.09015650
and dword [ebp - 0x1d8], 0
lea eax, [ebp - 0x1d8]
push eax
push 2
push dword [edi + 0x18]
call fcn.09015650
add esp, 0xc
test al, al
je 0x9048709
lea eax, [ebp - 0x1d8]
push eax
push 0xc
push dword [ebp - 0x1d8]
call fcn.09015650
add esp, 0xc
test al, al
je 0x9048709
mov esi, dword [ebp - 0x1d8]
mov ecx, dword [edi + 8]
push esi
call fcn.09015650
mov dword [edi + 0x44], eax
test eax, eax
je 0x9048709
mov ecx, dword [edi + 8]
push esi
call fcn.09015650
mov dword [edi + 0x48], eax
test eax, eax
je 0x9048709
mov ecx, dword [edi + 8]
push esi
call fcn.09015650
mov dword [edi + 0x4c], eax
test eax, eax
je 0x9048709
mov eax, dword [edi + 0x18]
bswap eax
mov dword [ebp - 0x74], eax
lea eax, [ebp - 0x7c]
push 0xc
push eax
push esi
push dword [edi + 0x44]
call fcn.09015650
add esp, 0x10
test eax, eax
jne 0x9048709
push 0xc
lea eax, [ebp - 0x7c]
push eax
push esi
push dword [edi + 0x48]
call fcn.09015650
add esp, 0x10
test eax, eax
jne 0x9048709
push 0xc
lea eax, [ebp - 0x7c]
push eax
push esi
push dword [edi + 0x4c]
call fcn.09015650
add esp, 0x10
test eax, eax
jne 0x9048709
mov eax, dword [edi + 0x44]
mov ecx, edi
and dword [ebp - 0x1f8], 0
add eax, 0xc
mov dword [ebp - 0x1dc], eax
mov eax, dword [edi + 0x48]
add eax, 0xc
mov dword [ebp - 0x208], eax
mov eax, dword [edi + 0x4c]
add eax, 0xc
mov dword [ebp - 0x1fc], eax
call fcn.09015650
xor ecx, ecx
cmp byte [edi + 0x28], cl
setne cl
inc ecx
shr eax, cl
test eax, eax
je 0x904750f
mov esi, dword [ebp - 0x208]
sub dword [ebp - 0x1dc], esi
sub dword [ebp - 0x1fc], esi
mov edx, dword [ebp - 0x1f8]
mov eax, dword [edi + 0x20]
movzx eax, word [eax + edx*2]
mov cx, ax
shl eax, 8
shr cx, 8
or cx, ax
mov eax, dword [ebp - 0x1dc]
mov word [eax + esi], cx
mov eax, dword [edi + 0x20]
movzx eax, word [eax + edx*2 + 2]
mov cx, ax
shl eax, 8
shr cx, 8
or cx, ax
mov word [esi], cx
mov eax, dword [edi + 0x20]
movzx eax, word [eax + edx*2 + 4]
add edx, ebx
mov cx, ax
mov dword [ebp - 0x1f8], edx
shr cx, 8
shl eax, 8
or cx, ax
mov eax, dword [ebp - 0x1fc]
mov word [eax + esi], cx
mov ecx, edi
lea esi, [esi + 2]
call fcn.09015650
mov edx, dword [ebp - 0x1f8]
xor ecx, ecx
cmp byte [edi + 0x28], cl
setne cl
inc ecx
shr eax, cl
cmp edx, eax
jb 0x904748d
mov esi, dword [ebp - 0x1d8]
push esi
push dword [edi + 0x44]
lea ecx, [ebp - 0xd4]
push 0
call fcn.09015650
push esi
push dword [edi + 0x48]
lea ecx, [ebp - 0xd4]
push 1
call fcn.09015650
push esi
push dword [edi + 0x4c]
lea ecx, [ebp - 0xd4]
push 2
call fcn.09015650
push 0xc
pop ebx
movsd xmm0, qword [edi + 0x58]
subsd xmm0, qword [edi + 0x50]
movsd qword [ebp - 0x1e4], xmm0
mulsd xmm0, qword [0x90dd3f8]
movsd qword [ebp - 0x20c], xmm0
addsd xmm0, qword [0x90dd3d8]
call fcn.090cdae0
movsd xmm0, qword [ebp - 0x20c]
mov esi, eax
addsd xmm0, qword [0x90dd400]
addsd xmm0, qword [0x90dd3e0]
call fcn.090cdae0
movsd xmm0, qword [ebp - 0x1e4]
comisd xmm0, xmmword [0x90dd3d0]
movsd xmm0, qword [edi + 0x50]
mulsd xmm0, qword [0x90dd3f8]
cmovae eax, esi
xor ecx, ecx
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x68], ecx
movsd qword [ebp - 0x20c], xmm0
addsd xmm0, qword [0x90dd3d8]
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x50], eax
call fcn.090cdae0
movsd xmm0, qword [ebp - 0x20c]
mov esi, eax
addsd xmm0, qword [0x90dd400]
addsd xmm0, qword [0x90dd3e0]
call fcn.090cdae0
movsd xmm0, qword [edi + 0x50]
lea ecx, [ebp - 0xd4]
comisd xmm0, xmmword [0x90dd3d0]
cmovae eax, esi
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
lea eax, [ebp - 0x70]
push eax
call fcn.09015650
mov ecx, dword [edi + 8]
push ebx
call fcn.09015650
mov dword [edi + 0x38], eax
test eax, eax
je 0x9048709
and dword [ebp - 0x74], 0
lea ecx, [ebp - 0x7c]
push ebx
push ecx
push ebx
push eax
call fcn.09015650
add esp, 0x10
test eax, eax
jne 0x9048709
mov byte [ebp - 0x1dc], al
push ebx
push dword [edi + 0x38]
lea ecx, [ebp - 0xd4]
push dword [ebp - 0x1dc]
call fcn.09015650
mov al, byte [ebp - 0x1dc]
inc al
mov byte [ebp - 0x1dc], al
cmp al, 3
jb 0x9047661
mov eax, dword [ebp - 0x214]
test eax, eax
jne 0x90476ab
cmp dword [ebp + 0x20], 8
lea eax, [ebp + 0xc]
push 0
cmovae eax, dword [ebp + 0xc]
push eax
push dword [edi + 8]
call fcn.0901a529
add esp, 0xc
push eax
lea ecx, [ebp - 0x1d4]
call fcn.09015650
push dword [ebp - 0x1d4]
lea ecx, [ebp - 0x100]
mov byte [ebp - 4], 0x29
push dword [edi + 8]
call fcn.09040985
cmp dword [edi + 0xc], 0x63756265
lea edx, [edi + 0x78]
push edx
lea ecx, [edi + 0x60]
mov byte [ebp - 4], 0x2a
push ecx
sete al
push eax
lea eax, [ebp - 0x100]
push eax
lea eax, [ebp - 0xd4]
push eax
mov eax, 0x52474220
push eax
push eax
push dword [edi + 8]
call fcn.09043e2e
add esp, 0x20
mov byte [ebp - 4], 0x29
lea ecx, [ebp - 0x100]
mov esi, eax
call fcn.09041325
lea ecx, [ebp - 0x1d4]
mov byte [ebp - 4], 0x28
call fcn.0901b69b
lea ecx, [ebp - 0xd4]
mov byte [ebp - 4], 0
call fcn.09041357
jmp 0x90486f7
push 0x9115628
push 0x911560c
push eax
push edi
call sub.VCRUNTIME140.dll___RTDynamicCast
mov esi, eax
add esp, 0x14
test esi, esi
je 0x9048709
xor eax, eax
lea ecx, [ebp - 0x1a4]
push eax
push eax
push eax
push 0x44324230
push 0x6d706574
push dword [edi + 8]
call fcn.09015650
push ebx
lea ecx, [ebp - 0x1a4]
mov byte [ebp - 4], 0x2b
call fcn.09015650
push ebx
lea ecx, [ebp - 0x1a4]
call fcn.09015650
imul eax, dword [esi + 0x94], 6
xor edx, edx
push 6
pop ecx
push 4
div ecx
xor ecx, ecx
pop edx
cmp dword [edi + 0x10], ebx
jne 0x9047e23
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.09015650
mov dword [ebp - 0x1dc], eax
xor edx, edx
imul eax, dword [esi + 0x94], 6
push 6
pop ecx
push 4
div ecx
xor ecx, ecx
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.09015650
mov dword [ebp - 0x1fc], eax
xor edx, edx
imul eax, dword [esi + 0x94], 6
push 6
pop ecx
push 4
div ecx
xor ecx, ecx
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.09015650
imul ecx, dword [esi + 0x94], 6
add esp, 0xc
xor edx, edx
mov dword [ebp - 0x200], eax
test ecx, 0xfffffffe
jbe 0x90478c9
mov edi, dword [ebp - 0x1fc]
mov ecx, edi
mov eax, dword [ebp - 0x1dc]
movss xmm1, dword [0x90e7a80]
sub eax, edi
mov dword [ebp - 0x208], eax
mov eax, dword [ebp - 0x200]
sub eax, edi
mov edi, dword [ebp - 0x208]
mov dword [ebp - 0x1d4], eax
mov eax, dword [esi + 0xd4]
movzx eax, word [eax + edx*2]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, xmm1
movss dword [edi + ecx], xmm0
mov eax, dword [esi + 0xd4]
movzx eax, word [eax + edx*2 + 2]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, xmm1
movss dword [ecx], xmm0
mov eax, dword [esi + 0xd4]
movzx eax, word [eax + edx*2 + 4]
add edx, ebx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mov eax, dword [ebp - 0x1d4]
divss xmm0, xmm1
movss dword [eax + ecx], xmm0
lea ecx, [ecx + 4]
imul eax, dword [esi + 0x94], 6
shr eax, 1
cmp edx, eax
jb 0x904785c
mov edi, dword [ebp - 0x1ec]
push 0x50
call fcn.09015650
mov dword [ebp - 0x208], eax
pop ecx
test eax, eax
je 0x90478ef
push ebx
push ebx
push dword [edi + 8]
mov ecx, eax
call fcn.09015650
mov dword [ebp - 0x1f8], eax
jmp 0x90478f6
and dword [ebp - 0x1f8], 0
push 0x10
call fcn.09015650
push 8
mov dword [ebp - 0x1e8], eax
and dword [eax + 8], 0
and dword [eax + 0xc], 0
mov dword [eax], 0x3f800000
mov dword [eax + 4], 0x3f800000
call fcn.09015650
mov ecx, dword [esi + 0x98]
push 0x14
mov dword [ebp - 0x1ec], eax
mov dword [eax], ecx
mov ecx, dword [esi + 0x9c]
mov dword [eax + 4], ecx
call fcn.09015650
add esp, 0xc
mov dword [ebp - 0x208], eax
mov byte [ebp - 4], 0x2c
test eax, eax
je 0x9047968
push dword [ebp - 0x1e8]
mov ecx, eax
push 0
push dword [edi + 8]
call fcn.09040c98
mov dword [ebp - 0x208], eax
jmp 0x904796f
and dword [ebp - 0x208], 0
push 0x14
mov byte [ebp - 4], 0x2b
call fcn.09015650
pop ecx
mov dword [ebp - 0x1d4], eax
mov byte [ebp - 4], 0x2d
test eax, eax
je 0x90479a3
push dword [ebp - 0x1e8]
mov ecx, eax
push 0
push dword [edi + 8]
call fcn.09040c98
mov dword [ebp - 0x1e0], eax
jmp 0x90479aa
and dword [ebp - 0x1e0], 0
push 0x54
mov byte [ebp - 4], 0x2b
call fcn.09015650
pop ecx
mov dword [ebp - 0x1d4], eax
mov byte [ebp - 4], 0x2e
test eax, eax
je 0x90479dd
push dword [ebp - 0x1ec]
mov ecx, eax
push ebx
push dword [edi + 8]
call fcn.09040822
mov dword [ebp - 0x1d8], eax
jmp 0x90479e4
and dword [ebp - 0x1d8], 0
push 0x18
mov byte [ebp - 4], 0x2b
call fcn.09015650
pop ecx
mov dword [ebp - 0x1d4], eax
mov byte [ebp - 4], 0x2f
test eax, eax
je 0x9047a29
imul eax, dword [esi + 0x94], 6
xor edx, edx
push 6
pop ecx
push dword [ebp - 0x1dc]
div ecx
mov ecx, dword [ebp - 0x1d4]
push eax
push dword [edi + 8]
call fcn.09040d5b
mov dword [ebp - 0x1d4], eax
jmp 0x9047a30
and dword [ebp - 0x1d4], 0
push dword [ebp - 0x208]
mov ecx, dword [ebp - 0x1d8]
mov byte [ebp - 4], 0x2b
call fcn.09015650
push dword [ebp - 0x1d4]
mov ecx, dword [ebp - 0x1d8]
call fcn.09015650
push dword [ebp - 0x1e0]
mov ecx, dword [ebp - 0x1d8]
call fcn.09015650
mov ecx, dword [ebp - 0x1f8]
push 0
push dword [ebp - 0x1d8]
call fcn.09015650
mov ecx, dword [ebp - 0x1ec]
mov eax, dword [esi + 0xa0]
push 0x14
mov dword [ecx], eax
mov eax, dword [esi + 0xa4]
mov dword [ecx + 4], eax
call fcn.09015650
pop ecx
mov dword [ebp - 0x208], eax
mov byte [ebp - 4], 0x30
test eax, eax
je 0x9047ac1
push dword [ebp - 0x1e8]
mov ecx, eax
push 0
push dword [edi + 8]
call fcn.09040c98
mov dword [ebp - 0x208], eax
jmp 0x9047ac8
and dword [ebp - 0x208], 0
push 0x14
mov byte [ebp - 4], 0x2b
call fcn.09015650
pop ecx
mov dword [ebp - 0x1d4], eax
mov byte [ebp - 4], 0x31
test eax, eax
je 0x9047afc
push dword [ebp - 0x1e8]
mov ecx, eax
push 0
push dword [edi + 8]
call fcn.09040c98
mov dword [ebp - 0x1e0], eax
jmp 0x9047b03
and dword [ebp - 0x1e0], 0
push 0x54
mov byte [ebp - 4], 0x2b
call fcn.09015650
pop ecx
mov dword [ebp - 0x1d4], eax
mov byte [ebp - 4], 0x32
test eax, eax
je 0x9047b36
push dword [ebp - 0x1ec]
mov ecx, eax
push ebx
push dword [edi + 8]
call fcn.09040822
mov dword [ebp - 0x1d8], eax
jmp 0x9047b3d
and dword [ebp - 0x1d8], 0
push 0x18
mov byte [ebp - 4], 0x2b
call fcn.09015650
pop ecx
mov dword [ebp - 0x1d4], eax
mov byte [ebp - 4], 0x33
test eax, eax
je 0x9047b82
imul eax, dword [esi + 0x94], 6
xor edx, edx
push 6
pop ecx
push dword [ebp - 0x1fc]
div ecx
mov ecx, dword [ebp - 0x1d4]
push eax
push dword [edi + 8]
call fcn.09040d5b
mov dword [ebp - 0x1d4], eax
jmp 0x9047b89
and dword [ebp - 0x1d4], 0
push dword [ebp - 0x208]
mov ecx, dword [ebp - 0x1d8]
mov byte [ebp - 4], 0x2b
call fcn.09015650
push dword [ebp - 0x1d4]
mov ecx, dword [ebp - 0x1d8]
call fcn.09015650
push dword [ebp - 0x1e0]
mov ecx, dword [ebp - 0x1d8]
call fcn.09015650
mov ecx, dword [ebp - 0x1f8]
push 1
push dword [ebp - 0x1d8]
call fcn.09015650
mov ecx, dword [ebp - 0x1ec]
mov eax, dword [esi + 0xa8]
push 0x14
mov dword [ecx], eax
mov eax, dword [esi + 0xac]
mov dword [ecx + 4], eax
call fcn.09015650
pop ecx
mov dword [ebp - 0x208], eax
mov byte [ebp - 4], 0x34
test eax, eax
je 0x9047c1a
push dword [ebp - 0x1e8]
mov ecx, eax
push 0
push dword [edi + 8]
call fcn.09040c98
mov dword [ebp - 0x208], eax
jmp 0x9047c21
and dword [ebp - 0x208], 0
push 0x14
mov byte [ebp - 4], 0x2b
call fcn.09015650
pop ecx
mov dword [ebp - 0x1d4], eax
mov byte [ebp - 4], 0x35
test eax, eax
je 0x9047c55
push dword [ebp - 0x1e8]
mov ecx, eax
push 0
push dword [edi + 8]
call fcn.09040c98
mov dword [ebp - 0x1e0], eax
jmp 0x9047c5c
and dword [ebp - 0x1e0], 0
push 0x54
mov byte [ebp - 4], 0x2b
call fcn.09015650
pop ecx
mov dword [ebp - 0x1d4], eax
mov byte [ebp - 4], 0x36
test eax, eax
je 0x9047c8f
push dword [ebp - 0x1ec]
mov ecx, eax
push ebx
push dword [edi + 8]
call fcn.09040822
mov dword [ebp - 0x1d8], eax
jmp 0x9047c96
and dword [ebp - 0x1d8], 0
push 0x18
mov byte [ebp - 4], 0x2b
call fcn.09015650
pop ecx
mov dword [ebp - 0x1d4], eax
mov byte [ebp - 4], 0x37
test eax, eax
je 0x9047cdb
imul eax, dword [esi + 0x94], 6
xor edx, edx
push 6
pop ecx
push dword [ebp - 0x200]
div ecx
mov ecx, dword [ebp - 0x1d4]
push eax
push dword [edi + 8]
call fcn.09040d5b
mov dword [ebp - 0x1d4], eax
jmp 0x9047ce2
and dword [ebp - 0x1d4], 0
push dword [ebp - 0x208]
mov ecx, dword [ebp - 0x1d8]
mov byte [ebp - 4], 0x2b
call fcn.09015650
push dword [ebp - 0x1d4]
mov ecx, dword [ebp - 0x1d8]
call fcn.09015650
push dword [ebp - 0x1e0]
mov ecx, dword [ebp - 0x1d8]
call fcn.09015650
mov ecx, dword [ebp - 0x1f8]
push 2
push dword [ebp - 0x1d8]
call fcn.09015650
push dword [ebp - 0x1f8]
lea ecx, [ebp - 0x1a4]
call fcn.09015650
push dword [ebp - 0x1ec]
call fcn.090cdd07
push dword [ebp - 0x1e8]
call fcn.090cdd07
push dword [ebp - 0x1dc]
call fcn.090cdd07
push dword [ebp - 0x1fc]
call fcn.090cdd07
push dword [ebp - 0x200]
call fcn.090cdd07
push 0x1c
call fcn.09015650
add esp, 0x18
mov dword [ebp - 0x208], eax
test eax, eax
je 0x9047d98
push ebx
push ebx
push dword [edi + 8]
mov ecx, eax
call fcn.09015650
mov ebx, eax
jmp 0x9047d9a
xor ebx, ebx
mov ecx, 0xff
cmp dword [esi + 0xb0], ecx
jg 0x9048709
mov al, byte [esi + 0xb0]
lea edx, [edi + 0x1c]
mov byte [edx], al
cmp dword [esi + 0xb4], ecx
jg 0x9048709
mov al, byte [esi + 0xb4]
mov byte [edi + 0x1d], al
cmp dword [esi + 0xb8], ecx
jg 0x9048709
mov al, byte [esi + 0xb8]
mov byte [edi + 0x1e], al
movsd xmm0, qword [edi + 0x58]
subsd xmm0, qword [edi + 0x50]
movsd xmm1, qword [edi + 0x50]
cvtpd2ps xmm1, xmm1
push ecx
push ecx
mov ecx, ebx
cvtpd2ps xmm0, xmm0
movss dword [esp + 4], xmm1
movss dword [esp], xmm0
push dword [esi + 0xd8]
push edx
call fcn.09015650
push ebx
lea ecx, [ebp - 0x1a4]
call fcn.09015650
jmp 0x9048656
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.09015650
mov dword [ebp - 0x1f8], eax
xor edx, edx
imul eax, dword [esi + 0x94], 6
push 6
pop ecx
push 4
div ecx
xor ecx, ecx
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.09015650
mov dword [ebp - 0x200], eax
xor edx, edx
imul eax, dword [esi + 0x94], 6
push 6
pop ecx
push 4
div ecx
xor ecx, ecx
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.09015650
add esp, 0xc
mov dword [ebp - 0x204], eax
mov ecx, edi
call fcn.09015650
xor ecx, ecx
cmp byte [edi + 0x28], cl
setne cl
xor edx, edx
inc ecx
shr eax, cl
div ebx
xor edx, edx
movzx ecx, ax
imul eax, dword [esi + 0x94], 6
mov dword [ebp - 0x1dc], ecx
mov dword [ebp - 0x1e0], edx
test eax, 0xfffffffe
jbe 0x90481d3
movss xmm7, dword [0x90e7a80]
movsd xmm5, qword [0x90dd3d8]
movsd xmm6, qword [0x90dd3e0]
movsd xmm1, qword [0x90dd3f0]
movzx eax, cx
mov ecx, dword [ebp - 0x200]
dec eax
mov dword [ebp - 0x1d8], ecx
movd xmm0, eax
mov eax, dword [ebp - 0x1f8]
sub eax, ecx
cvtdq2pd xmm0, xmm0
mov dword [ebp - 0x1fc], eax
mov eax, dword [ebp - 0x204]
sub eax, ecx
mov dword [ebp - 0x1e8], eax
movsd qword [ebp - 0x78], xmm0
mov ecx, dword [esi + 0xd4]
movzx eax, word [ecx + edx*2]
movd xmm2, eax
movzx eax, word [ecx + edx*2 + 2]
cvtdq2pd xmm2, xmm2
movd xmm3, eax
movzx eax, word [ecx + edx*2 + 4]
divsd xmm2, xmm1
cvtdq2pd xmm3, xmm3
movd xmm4, eax
divsd xmm3, xmm1
cvtdq2pd xmm4, xmm4
mulsd xmm2, xmm0
divsd xmm4, xmm1
mulsd xmm3, xmm0
cvttsd2si eax, xmm2
mulsd xmm4, xmm0
movzx edx, ax
cvttsd2si eax, xmm3
mov ecx, edx
movd xmm0, ecx
movzx eax, ax
cvtdq2pd xmm0, xmm0
mov dword [ebp - 0x1d4], eax
movzx eax, ax
mov dword [ebp - 0x208], eax
imul ecx, ecx, 6
subsd xmm2, xmm0
movd xmm0, eax
cvttsd2si eax, xmm4
cvtdq2pd xmm0, xmm0
movzx eax, ax
mov dword [ebp - 0x210], eax
movzx eax, ax
mov dword [ebp - 0x1f0], eax
subsd xmm3, xmm0
movd xmm0, eax
mov eax, dword [edi + 0x20]
cvtdq2pd xmm0, xmm0
movzx eax, word [ecx + eax]
subsd xmm4, xmm0
cmp dx, word [ebp - 0x1dc]
je 0x9048003
movd xmm0, eax
movaps xmm1, xmm6
mov eax, dword [edi + 0x20]
subsd xmm1, xmm2
cvtdq2pd xmm0, xmm0
movzx eax, word [ecx + eax + 6]
mulsd xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm2
addsd xmm1, xmm0
addsd xmm1, xmm5
cvttsd2si eax, xmm1
movzx eax, ax
movzx eax, ax
mov ecx, dword [ebp - 0x1d8]
mov edx, dword [ebp - 0x1fc]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
imul eax, dword [ebp - 0x208], 6
divss xmm0, xmm7
movss dword [edx + ecx], xmm0
mov edx, dword [edi + 0x20]
mov ecx, dword [ebp - 0x1d4]
movzx edx, word [eax + edx + 2]
cmp cx, word [ebp - 0x1dc]
je 0x904807e
mov edi, dword [edi + 0x20]
movaps xmm1, xmm6
movd xmm0, edx
subsd xmm1, xmm3
cvtdq2pd xmm0, xmm0
movzx eax, word [eax + edi + 8]
mov edi, dword [ebp - 0x1ec]
movd xmm2, eax
cvtdq2pd xmm2, xmm2
mulsd xmm1, xmm0
mulsd xmm2, xmm3
addsd xmm2, xmm1
addsd xmm2, xmm5
cvttsd2si eax, xmm2
movzx eax, ax
jmp 0x9048080
mov eax, edx
movzx eax, ax
mov ecx, dword [ebp - 0x1d8]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
imul eax, dword [ebp - 0x1f0], 6
divss xmm0, xmm7
mov dword [ebp - 0x208], eax
movss dword [ecx], xmm0
mov edx, dword [edi + 0x20]
movzx eax, word [eax + edx + 4]
mov edx, dword [ebp - 0x210]
cmp dx, word [ebp - 0x1dc]
mov edx, dword [ebp - 0x1fc]
je 0x9048118
mov edx, dword [edi + 0x20]
movaps xmm1, xmm6
mov eax, dword [ebp - 0x208]
subsd xmm1, xmm4
mov edi, dword [edi + 0x20]
movzx eax, word [eax + edx + 0xa]
mov edx, dword [ebp - 0x208]
movd xmm2, eax
movzx eax, word [edx + edi + 4]
cvtdq2pd xmm2, xmm2
mov edi, dword [ebp - 0x1ec]
mov edx, dword [ebp - 0x1fc]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm2, xmm4
mulsd xmm1, xmm0
addsd xmm2, xmm1
addsd xmm2, xmm5
cvttsd2si eax, xmm2
movzx eax, ax
movzx eax, ax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mov eax, dword [ebp - 0x1e8]
divss xmm0, xmm7
movss dword [eax + ecx], xmm0
movsd xmm0, qword [edi + 0x58]
subsd xmm0, qword [edi + 0x50]
cvtpd2ps xmm1, xmm0
movsd xmm0, qword [edi + 0x50]
mulss xmm1, dword [edx + ecx]
cvtpd2ps xmm0, xmm0
addss xmm1, xmm0
movss dword [edx + ecx], xmm1
movsd xmm0, qword [edi + 0x58]
subsd xmm0, qword [edi + 0x50]
mov edx, dword [ebp - 0x1e0]
add edx, ebx
mov dword [ebp - 0x1e0], edx
cvtpd2ps xmm1, xmm0
movsd xmm0, qword [edi + 0x50]
mulss xmm1, dword [ecx]
cvtpd2ps xmm0, xmm0
addss xmm1, xmm0
movss dword [ecx], xmm1
movsd xmm0, qword [edi + 0x58]
subsd xmm0, qword [edi + 0x50]
cvtpd2ps xmm1, xmm0
movsd xmm0, qword [edi + 0x50]
mulss xmm1, dword [eax + ecx]
cvtpd2ps xmm0, xmm0
addss xmm1, xmm0
movsd xmm0, qword [ebp - 0x78]
movss dword [eax + ecx], xmm1
add ecx, 4
imul eax, dword [esi + 0x94], 6
movsd xmm1, qword [0x90dd3f0]
mov dword [ebp - 0x1d8], ecx
shr eax, 1
cmp edx, eax
jb 0x9047f1d
push 0x50
call fcn.09015650
mov dword [ebp - 0x208], eax
pop ecx
test eax, eax
je 0x90481f9
push ebx
push ebx
push dword [edi + 8]
mov ecx, eax
call fcn.09015650
mov dword [ebp - 0x1dc], eax
jmp 0x9048200
and dword [ebp - 0x1dc], 0
push 0x10
call fcn.09015650
push 8
mov dword [ebp - 0x1e8], eax
and dword [eax + 8], 0
and dword [eax + 0xc], 0
mov dword [eax], 0x3f800000
mov dword [eax + 4], 0x3f800000
call fcn.09015650
mov ecx, dword [esi + 0x98]
push 0x14
mov dword [ebp - 0x1ec], eax
mov dword [eax], ecx
mov ecx, dword [esi + 0x9c]
mov dword [eax + 4], ecx
call fcn.09015650
add esp, 0xc
mov dword [ebp - 0x208], eax
mov byte [ebp - 4], 0x38
test eax, eax
je 0x9048272
push dword [ebp - 0x1e8]
mov ecx, eax
push 0
push dword [edi + 8]
call fcn.09040c98
mov dword [ebp - 0x208], eax
jmp 0x9048279
and dword [ebp - 0x208], 0
push 0x14
mov byte [ebp - 4], 0x2b
call fcn.09015650
pop ecx
mov dword [ebp - 0x1d4], eax
mov byte [ebp - 4], 0x39
test eax, eax
je 0x90482ad
push dword [ebp - 0x1e8]
mov ecx, eax
push 0
push dword [edi + 8]
call fcn.09040c98
mov dword [ebp - 0x1e0], eax
jmp 0x90482b4
and dword [ebp - 0x1e0], 0
push 0x54
mov byte [ebp - 4], 0x2b
call fcn.09015650
pop ecx
mov dword [ebp - 0x1d4], eax
mov byte [ebp - 4], 0x3a
test eax, eax
je 0x90482e7
push dword [ebp - 0x1ec]
mov ecx, eax
push ebx
push dword [edi + 8]
call fcn.09040822
mov dword [ebp - 0x1d8], eax
jmp 0x90482ee
and dword [ebp - 0x1d8], 0
push 0x18
mov byte [ebp - 4], 0x2b
call fcn.09015650
pop ecx
mov dword [ebp - 0x1d4], eax
mov byte [ebp - 4], 0x3b
test eax, eax
je 0x9048333
imul eax, dword [esi + 0x94], 6
xor edx, edx
push 6
pop ecx
push dword [ebp - 0x1f8]
div ecx
mov ecx, dword [ebp - 0x1d4]
push eax
push dword [edi + 8]
call fcn.09040d5b
mov dword [ebp - 0x1d4], eax
jmp 0x904833a
and dword [ebp - 0x1d4], 0
push dword [ebp - 0x208]
mov ecx, dword [ebp - 0x1d8]
mov byte [ebp - 4], 0x2b
call fcn.09015650
push dword [ebp - 0x1d4]
mov ecx, dword [ebp - 0x1d8]
call fcn.09015650
push dword [ebp - 0x1e0]
mov ecx, dword [ebp - 0x1d8]
call fcn.09015650
mov ecx, dword [ebp - 0x1dc]
push 0
push dword [ebp - 0x1d8]
call fcn.09015650
mov ecx, dword [ebp - 0x1ec]
mov eax, dword [esi + 0xa0]
push 0x14
mov dword [ecx], eax
mov eax, dword [esi + 0xa4]
mov dword [ecx + 4], eax
call fcn.09015650
pop ecx
mov dword [ebp - 0x208], eax
mov byte [ebp - 4], 0x3c
test eax, eax
je 0x90483cb
push dword [ebp - 0x1e8]
mov ecx, eax
push 0
push dword [edi + 8]
call fcn.09040c98
mov dword [ebp - 0x208], eax
jmp 0x90483d2
and dword [ebp - 0x208], 0
push 0x14
mov byte [ebp - 4], 0x2b
call fcn.09015650
pop ecx
mov dword [ebp - 0x1d4], eax
mov byte [ebp - 4], 0x3d
test eax, eax
je 0x9048406
push dword [ebp - 0x1e8]
mov ecx, eax
push 0
push dword [edi + 8]
call fcn.09040c98
mov dword [ebp - 0x1e0], eax
jmp 0x904840d
and dword [ebp - 0x1e0], 0
push 0x54
mov byte [ebp - 4], 0x2b
call fcn.09015650
pop ecx
mov dword [ebp - 0x1d4], eax
mov byte [ebp - 4], 0x3e
test eax, eax
je 0x9048440
push dword [ebp - 0x1ec]
mov ecx, eax
push ebx
push dword [edi + 8]
call fcn.09040822
mov dword [ebp - 0x1d8], eax
jmp 0x9048447
and dword [ebp - 0x1d8], 0
push 0x18
mov byte [ebp - 4], 0x2b
call fcn.09015650
pop ecx
mov dword [ebp - 0x1d4], eax
mov byte [ebp - 4], 0x3f
test eax, eax
je 0x904848c
imul eax, dword [esi + 0x94], 6
xor edx, edx
push 6
pop ecx
push dword [ebp - 0x200]
div ecx
mov ecx, dword [ebp - 0x1d4]
push eax
push dword [edi + 8]
call fcn.09040d5b
mov dword [ebp - 0x1d4], eax
jmp 0x9048493
and dword [ebp - 0x1d4], 0
push dword [ebp - 0x208]
mov ecx, dword [ebp - 0x1d8]
mov byte [ebp - 4], 0x2b
call fcn.09015650
push dword [ebp - 0x1d4]
mov ecx, dword [ebp - 0x1d8]
call fcn.09015650
push dword [ebp - 0x1e0]
mov ecx, dword [ebp - 0x1d8]
call fcn.09015650
mov ecx, dword [ebp - 0x1dc]
push 1
push dword [ebp - 0x1d8]
call fcn.09015650
mov ecx, dword [ebp - 0x1ec]
mov eax, dword [esi + 0xa8]
push 0x14
mov dword [ecx], eax
mov eax, dword [esi + 0xac]
mov dword [ecx + 4], eax
call fcn.09015650
pop ecx
mov dword [ebp - 0x208], eax
mov byte [ebp - 4], 0x40
test eax, eax
je 0x9048524
push dword [ebp - 0x1e8]
mov ecx, eax
push 0
push dword [edi + 8]
call fcn.09040c98
mov dword [ebp - 0x208], eax
jmp 0x904852b
and dword [ebp - 0x208], 0
push 0x14
mov byte [ebp - 4], 0x2b
call fcn.09015650
pop ecx
mov dword [ebp - 0x1d4], eax
mov byte [ebp - 4], 0x41
test eax, eax
je 0x904855f
push dword [ebp - 0x1e8]
mov ecx, eax
push 0
push dword [edi + 8]
call fcn.09040c98
mov dword [ebp - 0x1d4], eax
jmp 0x9048566
and dword [ebp - 0x1d4], 0
push 0x54
mov byte [ebp - 4], 0x2b
call fcn.09015650
pop ecx
mov dword [ebp - 0x1e0], eax
mov byte [ebp - 4], 0x42
test eax, eax
je 0x9048595
push dword [ebp - 0x1ec]
mov ecx, eax
push ebx
push dword [edi + 8]
call fcn.09040822
mov ebx, eax
jmp 0x9048597
xor ebx, ebx
push 0x18
mov byte [ebp - 4], 0x2b
call fcn.09015650
pop ecx
mov dword [ebp - 0x1e0], eax
mov byte [ebp - 4], 0x43
test eax, eax
je 0x90485d8
imul eax, dword [esi + 0x94], 6
xor edx, edx
push 6
pop ecx
push dword [ebp - 0x204]
div ecx
mov ecx, dword [ebp - 0x1e0]
push eax
push dword [edi + 8]
call fcn.09040d5b
mov esi, eax
jmp 0x90485da
xor esi, esi
push dword [ebp - 0x208]
mov ecx, ebx
mov byte [ebp - 4], 0x2b
call fcn.09015650
push esi
mov ecx, ebx
call fcn.09015650
push dword [ebp - 0x1d4]
mov ecx, ebx
call fcn.09015650
push 2
push ebx
mov ebx, dword [ebp - 0x1dc]
mov ecx, ebx
call fcn.09015650
push ebx
lea ecx, [ebp - 0x1a4]
call fcn.09015650
push dword [ebp - 0x1ec]
call fcn.090cdd07
push dword [ebp - 0x1e8]
call fcn.090cdd07
push dword [ebp - 0x1f8]
call fcn.090cdd07
push dword [ebp - 0x200]
call fcn.090cdd07
push dword [ebp - 0x204]
call fcn.090cdd07
add esp, 0x14
mov eax, dword [ebp - 0x214]
test eax, eax
je 0x9048664
xor ebx, ebx
jmp 0x904867e
cmp dword [ebp + 0x20], 8
lea eax, [ebp + 0xc]
cmovae eax, dword [ebp + 0xc]
xor ebx, ebx
push ebx
push eax
push dword [edi + 8]
call fcn.0901a529
add esp, 0xc
push eax
lea ecx, [ebp - 0x1f4]
call fcn.09015650
push dword [ebp - 0x1f4]
lea ecx, [ebp - 0x100]
mov byte [ebp - 4], 0x44
push dword [edi + 8]
call fcn.09040985
push ebx
push ebx
push ebx
lea eax, [ebp - 0x100]
mov byte [ebp - 4], 0x45
push eax
lea eax, [ebp - 0x1a4]
push eax
mov eax, 0x52474220
push eax
push eax
push dword [edi + 8]
call fcn.09043e2e
add esp, 0x20
mov byte [ebp - 4], 0x44
lea ecx, [ebp - 0x100]
mov esi, eax
call fcn.09041325
lea ecx, [ebp - 0x1f4]
mov byte [ebp - 4], 0x2b
call fcn.0901b69b
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x1a4]
call fcn.090413fe
lea ecx, [ebp + 0xc]
call fcn.09011e48
mov eax, esi
call fcn.09006f96
ret 0x1c
push 0x7061726d
call fcn.09015650
int3