Function at 0x583af0
Capabilities:
Inspect section memory permissions

Disassembly:
push edi
lea edi, [esp + 8]
and esp, 0xfffffff0
push dword [edi - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
mov ebx, ecx
lea ecx, [ebp - 0x330]
sub esp, 0x36c
mov dword [esp + 4], 4
mov dword [esp], 4
call method.gx_matrix.gx_matrix_unsigned_int__unsigned_int_
movzx eax, byte [ebx + 0x3e588]
sub esp, 8
sub eax, 0x10
cmp al, 0x62
ja case.0x583b3b.13
movzx edx, al
jmp dword [edx*4 + 0x6178d4]
mov dword [esp + 4], 1
lea edi, [ebp - 0x2a0]
mov dword [esp], 4
mov ecx, edi
call method.gx_matrix.gx_matrix_unsigned_int__unsigned_int_
mov ecx, dword [ebx + 0x3e594]
sub esp, 8
xor esi, esi
bswap ecx
mov dword [ebp - 0x348], ecx
mov eax, dword [ebp - 0x348]
lea ecx, [esi + esi*4]
add ecx, ecx
shr eax, cl
mov edx, eax
shr dx, 6
and edx, 0xf
test ah, 2
je 0x586930
neg edx
and edx, 7
mov dword [ebp - 0x350], edx
fild dword [ebp - 0x350]
fchs
fstp dword [ebp - 0x350]
and ax, 0x3f
je 0x583bd0
movzx eax, ax
mov dword [ebp - 0x354], eax
fild dword [ebp - 0x354]
fmul dword [0x617aa4]
fadd dword [ebp - 0x350]
fstp dword [ebp - 0x350]
mov dword [esp], esi
mov ecx, edi
call method.gx_matrix.operator___unsigned_int_
movss xmm7, dword [ebp - 0x350]
add esi, 1
sub esp, 4
movss dword [eax], xmm7
cmp esi, 3
jne 0x583b71
lea esi, [ebx + 0x467c8]
mov dword [esp], edi
lea ecx, [ebp - 0x258]
mov dword [esp + 4], esi
call method.gx_matrix.operator_gx_matrix_const_
and dword [ebx + 0x3e584], 0xfffffffe
sub esp, 8
lea ecx, [ebp - 0x258]
call method.gx_matrix.gx_matrix__
mov ecx, edi
call method.gx_matrix.gx_matrix__
lea esi, [esi]
mov edi, dword [ebx]
mov dword [ebp - 0x348], edi
mov esi, dword [ebp - 0x348]
mov edx, dword [esi + 0x224]
mov eax, dword [esi + 0x214]
cmp edx, eax
je 0x583ea0
mov ecx, dword [esi + 0x21c]
lea edi, [ecx - 4]
mov dword [ebp - 0x350], ecx
cmp eax, edi
je 0x583f20
add eax, 4
mov dword [esi + 0x214], eax
cmp edx, eax
je 0x583ea0
mov esi, dword [ebx + 0x3e590]
shr esi, 8
mov dword [ebx + 0x3e590], esi
and esi, 0xff
je 0x583e06
movzx edx, byte [ebx + 0x3ea94]
xor ecx, ecx
mov eax, edx
test esi, 1
je 0x583d01
movzx eax, dl
movzx eax, byte [ebx + eax + 0x3e594]
mov byte [ebx + ecx + 0x3e594], al
lea eax, [edx + 1]
movzx edi, al
movzx eax, byte [ebx + edi + 0x3e594]
mov byte [ebx + ecx + 0x3e595], al
lea eax, [edx + 2]
movzx edi, al
movzx eax, byte [ebx + edi + 0x3e594]
mov byte [ebx + ecx + 0x3e596], al
lea eax, [edx + 3]
movzx edi, al
movzx eax, byte [ebx + edi + 0x3e594]
mov byte [ebx + ecx + 0x3e597], al
mov ecx, 1
lea eax, [edx + 4]
cmp ecx, esi
je 0x583df1
mov byte [ebp - 0x354], dl
mov dword [ebp - 0x350], ecx
movzx edx, byte [ebp - 0x350]
movzx edi, al
movzx ecx, byte [ebx + edi + 0x3e594]
shl edx, 2
movzx edx, dl
mov byte [ebx + edx + 0x3e594], cl
lea ecx, [eax + 1]
movzx edi, cl
movzx ecx, byte [ebx + edi + 0x3e594]
mov byte [ebx + edx + 0x3e595], cl
lea ecx, [eax + 2]
movzx edi, cl
movzx ecx, byte [ebx + edi + 0x3e594]
mov byte [ebx + edx + 0x3e596], cl
lea ecx, [eax + 3]
movzx edi, cl
movzx ecx, byte [ebx + edi + 0x3e594]
mov byte [ebx + edx + 0x3e597], cl
lea ecx, [eax + 4]
movzx edx, byte [ebp - 0x350]
movzx edi, cl
add dword [ebp - 0x350], 2
movzx ecx, byte [ebx + edi + 0x3e594]
lea edx, [edx*4 + 4]
movzx edx, dl
mov byte [ebx + edx + 0x3e594], cl
lea ecx, [eax + 5]
movzx edi, cl
movzx ecx, byte [ebx + edi + 0x3e594]
mov byte [ebx + edx + 0x3e595], cl
lea ecx, [eax + 6]
movzx edi, cl
movzx ecx, byte [ebx + edi + 0x3e594]
mov byte [ebx + edx + 0x3e596], cl
lea ecx, [eax + 7]
add eax, 8
movzx edi, cl
movzx ecx, byte [ebx + edi + 0x3e594]
mov edi, dword [ebp - 0x350]
mov byte [ebx + edx + 0x3e597], cl
cmp edi, esi
jne 0x583d0d
movzx edx, byte [ebp - 0x354]
mov ecx, edi
mov esi, dword [ebp - 0x348]
lea eax, [edx + ecx*4]
mov byte [ebx + 0x3ea94], al
mov eax, dword [esi + 0x214]
mov edx, dword [eax]
mov ecx, ebx
mov byte [ebx + 0x3e588], dl
call method.NTR_LCD.process_gx_command__
mov esi, dword [ebx + 0x3e584]
mov ecx, dword [ebx]
and esi, 0xc0000000
mov dword [ebp - 0x348], ecx
mov eax, dword [ecx + 0x224]
mov edi, dword [ecx + 0x214]
cmp esi, 0x40000000
je 0x583f02
cmp eax, edi
je 0x5886c3
cmp byte [ebx + 0x406a3], 0
jne 0x583ef0
cmp byte [ebx + 0x406a4], 0
je 0x583e66
mov ecx, ebx
call method.NTR_LCD.update_vector_matrix__
mov byte [ebx + 0x3ea94], 0
lea ecx, [ebp - 0x330]
mov byte [ebx + 0x3e588], 0
mov byte [ebx + 0x3ea97], 0
mov ebx, dword [ebx]
mov byte [ebx + 0x255], 0
call method.gx_matrix.gx_matrix__
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
ret
mov edi, dword [ebx + 0x3e584]
mov ecx, edi
and ecx, 0xc0000000
cmp ecx, 0x40000000
je 0x583f00
or edi, 0x4000000
mov dword [ebx + 0x3e584], edi
cmp ecx, 0x80000000
jne 0x583e49
mov edi, dword [ebp - 0x348]
or dword [edi + 0x47c], 0x200000
cmp byte [ebx + 0x406a3], 0
je 0x583e56
lea esi, [esi]
nop
mov ecx, ebx
call method.NTR_LCD.update_clip_matrix__
jmp 0x583e56
mov edi, eax
mov edx, dword [ebp - 0x348]
or dword [edx + 0x47c], 0x200000
jmp 0x583e41
mov dword [esp + 4], 0x200
mov edx, dword [esi + 0x218]
mov dword [esp], edx
call sym.operator_delete_void__unsigned_int_
mov ecx, dword [esi + 0x220]
mov eax, dword [ecx + 4]
add ecx, 4
movd xmm6, ecx
lea edi, [eax + 0x200]
movd xmm7, eax
movd xmm5, edi
punpckldq xmm7, xmm7
punpckldq xmm5, xmm6
punpcklqdq xmm7, xmm5
movups xmmword [esi + 0x214], xmm7
mov esi, dword [ebx]
mov dword [ebp - 0x348], esi
mov edx, dword [esi + 0x224]
mov eax, dword [esi + 0x214]
jmp 0x583c6a
movzx ecx, byte [ebx + 0x3ea9f]
test cl, cl
je 0x587272
mov edi, dword [ebx + 0x3e594]
mov byte [ebp - 0x2a0], 0
bswap edi
mov edx, edi
shr dx, 0xc
test di, di
js 0x587254
movzx eax, dx
mov dword [ebp - 0x350], eax
fild dword [ebp - 0x350]
fstp dword [ebp - 0x348]
mov esi, edi
and esi, 0xfff
je 0x583fea
mov dword [ebp - 0x350], esi
fild dword [ebp - 0x350]
fmul dword [0x617a70]
fadd dword [ebp - 0x348]
fstp dword [ebp - 0x348]
mov edx, edi
shr edi, 0x1c
shr edx, 0x10
test dx, dx
js 0x587236
movzx edi, di
mov dword [ebp - 0x350], edi
fild dword [ebp - 0x350]
fstp dword [ebp - 0x350]
and edx, 0xfff
je 0x584036
mov dword [ebp - 0x354], edx
fild dword [ebp - 0x354]
fmul dword [0x617a70]
fadd dword [ebp - 0x350]
fstp dword [ebp - 0x350]
mov byte [ebp - 0x258], cl
lea eax, [ebp - 0x2a0]
lea ecx, [ebp - 0x258]
mov dword [esp + 4], ecx
mov ecx, ebx
mov dword [esp], eax
call method.NTR_LCD.build_verts_unsigned_char__unsigned_char_
movzx ecx, byte [ebx + 0x3e588]
movzx esi, byte [ebp - 0x258]
sub esp, 8
cmp cl, 0x25
je 0x587fd9
cmp cl, 0x26
je 0x587f52
cmp cl, 0x27
je 0x588068
movdqu xmm3, xmmword [ebx + 0x46780]
lea esi, [esi + esi*8]
lea ecx, [ebx + esi*8 + 0x46850]
movups xmmword [ecx + 8], xmm3
movdqu xmm4, xmmword [ebx + 0x46790]
movups xmmword [ecx + 0x18], xmm4
movdqu xmm1, xmmword [ebx + 0x467a0]
movups xmmword [ecx + 0x28], xmm1
movdqu xmm7, xmmword [ebx + 0x467b0]
movups xmmword [ecx + 0x38], xmm7
mov eax, dword [ebx + 0x467c4]
mov edi, dword [ebx + 0x467c0]
mov dword [ecx + 0x4c], eax
mov dword [ecx + 0x48], edi
movzx edx, byte [ebx + 0x3ea9f]
mov esi, dword [ebx + 0x406b0]
mov eax, edx
mov dword [ebx + edx*4 + 0x46728], esi
mov esi, dword [ebx]
add eax, 1
mov byte [ebx + 0x3ea9f], al
mov dword [ebp - 0x348], esi
cmp al, byte [ebp - 0x2a0]
jne 0x583c30
movdqu xmm0, xmmword [ebx + 0x466ac]
movdqu xmm2, xmmword [ebx + 0x466bc]
mov byte [ebx + 0x3ea9f], 0
movdqu xmm6, xmmword [ebx + 0x466cc]
movdqu xmm5, xmmword [ebx + 0x466dc]
mov byte [ebx + 0x406a0], 1
movups xmmword [ebx + 0x46664], xmm0
movups xmmword [ebx + 0x46674], xmm2
movups xmmword [ebx + 0x46684], xmm6
movups xmmword [ebx + 0x46694], xmm5
mov edi, dword [ebx + 0x466ec]
mov edx, dword [ebx + 0x466f0]
cmp byte [esi + 0x255], 0
mov dword [ebx + 0x466a4], edi
mov dword [ebx + 0x466a8], edx
je 0x583c30
mov ecx, ebx
call method.NTR_LCD.render_geometry__
jmp case.0x583b3b.13
mov dword [esp], 4
lea ecx, [ebp - 0x330]
call method.gx_matrix.make_identity_unsigned_int_
sub esp, 4
xor esi, esi
mov edi, 0xaaaaaaab
jmp 0x58421e
mov dword [ebp - 0x350], edx
fild dword [ebp - 0x350]
fstp dword [ebp - 0x350]
and eax, 0xfff
je 0x5841d7
mov dword [ebp - 0x348], eax
fild dword [ebp - 0x348]
fmul dword [0x617a70]
fadd dword [ebp - 0x350]
fstp dword [ebp - 0x350]
mov ecx, esi
sar ecx, 2
mov eax, ecx
mul edi
mov eax, edx
and edx, 0xfffffffe
shr eax, 1
add edx, eax
mov eax, esi
sub ecx, edx
mul edi
shr edx, 3
lea ecx, [ecx + edx*4]
mov dword [esp], ecx
lea ecx, [ebp - 0x330]
call method.gx_matrix.operator___unsigned_int_
movss xmm4, dword [ebp - 0x350]
add esi, 4
sub esp, 4
movss dword [eax], xmm4
cmp esi, 0x30
je 0x586cf2
movzx eax, byte [ebx + esi + 0x3e596]
movzx ecx, byte [ebx + esi + 0x3e595]
movzx edx, byte [ebx + esi + 0x3e597]
shl ecx, 0x10
shl eax, 8
or eax, ecx
movzx ecx, byte [ebx + esi + 0x3e594]
or eax, edx
shl ecx, 0x18
or eax, ecx
mov edx, eax
shr edx, 0xc
test eax, eax
jns 0x5841a0
neg edx
and edx, 0x7ffff
mov dword [ebp - 0x350], edx
fild dword [ebp - 0x350]
fchs
fstp dword [ebp - 0x350]
jmp 0x5841b2
mov dword [esp], 4
lea ecx, [ebp - 0x330]
call method.gx_matrix.make_identity_unsigned_int_
sub esp, 4
xor edi, edi
movzx eax, byte [ebx + edi + 0x3e596]
movzx edx, byte [ebx + edi + 0x3e595]
movzx esi, byte [ebx + edi + 0x3e597]
movzx ecx, byte [ebx + edi + 0x3e594]
shl edx, 0x10
shl eax, 8
or eax, edx
shl ecx, 0x18
or eax, esi
or eax, ecx
mov edx, eax
shr edx, 0xc
test eax, eax
js 0x58698a
mov dword [ebp - 0x350], edx
fild dword [ebp - 0x350]
fstp dword [ebp - 0x350]
and eax, 0xfff
je 0x584305
mov dword [ebp - 0x348], eax
fild dword [ebp - 0x348]
fmul dword [0x617a70]
fadd dword [ebp - 0x350]
fstp dword [ebp - 0x350]
mov eax, edi
sar eax, 2
cmp byte [ebx + 0x3e588], 0x1b
je 0x5869ab
add eax, 0xc
lea ecx, [ebp - 0x330]
mov dword [esp], eax
call method.gx_matrix.operator___unsigned_int_
movss xmm0, dword [ebp - 0x350]
sub esp, 4
movss dword [eax], xmm0
add edi, 4
cmp edi, 0xc
jne 0x584292
movzx ecx, byte [ebx + 0x3ea9d]
cmp cl, 2
je 0x587a1a
ja 0x586ad2
test cl, cl
je 0x5872ff
lea edi, [ebx + 0x46780]
lea eax, [ebp - 0x330]
mov dword [esp + 4], edi
lea ecx, [ebp - 0x258]
mov dword [esp], eax
call method.gx_matrix.operator_gx_matrix_const_
movdqu xmm1, xmmword [ebp - 0x258]
movdqu xmm4, xmmword [ebp - 0x248]
sub esp, 8
movdqu xmm0, xmmword [ebp - 0x238]
movdqu xmm2, xmmword [ebp - 0x228]
movups xmmword [ebx + 0x46780], xmm1
movups xmmword [ebx + 0x46790], xmm4
movups xmmword [ebx + 0x467a0], xmm0
movups xmmword [ebx + 0x467b0], xmm2
mov edi, dword [ebp - 0x218]
mov ecx, dword [ebp - 0x214]
mov dword [ebx + 0x467c0], edi
mov dword [ebx + 0x467c4], ecx
lea ecx, [ebp - 0x258]
call method.gx_matrix.gx_matrix__
mov edi, dword [ebx]
mov byte [ebx + 0x406a3], 1
mov dword [ebp - 0x348], edi
jmp 0x583c30
xor edi, edi
jmp 0x584515
mov dword [ebp - 0x350], ecx
fild dword [ebp - 0x350]
fstp dword [ebp - 0x350]
and esi, 0xfff
je 0x584438
mov dword [ebp - 0x348], esi
fild dword [ebp - 0x348]
fmul dword [0x617a70]
fadd dword [ebp - 0x350]
fstp dword [ebp - 0x350]
mov esi, edi
mov eax, edi
lea ecx, [ebp - 0x330]
sar esi, 2
sar eax, 4
and esi, 3
lea edx, [esi + eax*4]
mov dword [esp], edx
call method.gx_matrix.operator___unsigned_int_
movss xmm0, dword [ebp - 0x350]
lea esi, [edi + 4]
sub esp, 4
movss dword [eax], xmm0
movzx ecx, byte [ebx + edi + 0x3e59a]
movzx eax, byte [ebx + edi + 0x3e599]
movzx edx, byte [ebx + edi + 0x3e59b]
movzx edi, byte [ebx + edi + 0x3e598]
shl eax, 0x10
shl ecx, 8
or ecx, eax
shl edi, 0x18
or ecx, edx
or ecx, edi
mov eax, ecx
shr eax, 0xc
test ecx, ecx
js 0x5868e0
mov dword [ebp - 0x350], eax
fild dword [ebp - 0x350]
fstp dword [ebp - 0x350]
and ecx, 0xfff
je 0x5844dc
mov dword [ebp - 0x348], ecx
fild dword [ebp - 0x348]
fmul dword [0x617a70]
fadd dword [ebp - 0x350]
fstp dword [ebp - 0x350]
mov ecx, esi
mov edx, esi
sar ecx, 2
sar edx, 4
and ecx, 3
lea edi, [ecx + edx*4]
lea ecx, [ebp - 0x330]
mov dword [esp], edi
call method.gx_matrix.operator___unsigned_int_
movss xmm2, dword [ebp - 0x350]
sub esp, 4
lea edi, [esi + 4]
movss dword [eax], xmm2
cmp esi, 0x3c
je 0x586a4f
movzx esi, byte [ebx + edi + 0x3e596]
movzx ecx, byte [ebx + edi + 0x3e595]
movzx eax, byte [ebx + edi + 0x3e597]
movzx edx, byte [ebx + edi + 0x3e594]
shl ecx, 0x10
shl esi, 8
or esi, ecx
shl edx, 0x18
or esi, eax
or esi, edx
mov ecx, esi
shr ecx, 0xc
test esi, esi
jns 0x584400
neg ecx
and ecx, 0x7ffff
mov dword [ebp - 0x350], ecx
fild dword [ebp - 0x350]
fchs
fstp dword [ebp - 0x350]
jmp 0x584412
mov eax, dword [ebx + 0x3e594]
xor ecx, ecx
mov edx, eax
mov esi, eax
shr edx, 0x18
bswap esi
and edx, 0x1f
je 0x584595
lea ecx, [edx*8 + 4]
movzx ecx, cl
shl ecx, 0x10
shr si, 5
xor edi, edi
and esi, 0x1f
je 0x5845ad
lea edx, [esi*8 + 4]
movzx edi, dl
shl edi, 8
shr eax, 0x12
and eax, 0x1f
je 0x5845c1
lea eax, [eax*8 + 4]
movzx esi, al
or ecx, esi
or edi, ecx
mov ecx, dword [ebx]
or edi, 0xff000000
cmp byte [ebx + 0x3ea9f], 0
mov dword [ebx + 0x406b0], edi
mov dword [ebp - 0x348], ecx
jne 0x583c30
movd xmm1, edi
pshufd xmm4, xmm1, 0
movups xmmword [ebx + 0x46728], xmm4
jmp 0x583c30
movzx eax, byte [ebx + 0x3e597]
mov esi, dword [ebx]
and eax, 3
mov dword [ebp - 0x348], esi
mov byte [ebx + 0x3ea9d], al
jmp 0x583c30
movzx ecx, byte [ebx + 0x3ea9f]
test cl, cl
je 0x58728d
mov edx, dword [ebx + 0x3e594]
mov byte [ebp - 0x2a0], 0
mov eax, edx
bswap eax
mov edi, eax
shr di, 6
and edi, 0xf
test ah, 2
jne 0x5870e7
movzx esi, di
mov dword [ebp - 0x350], esi
fild dword [ebp - 0x350]
fstp dword [ebp - 0x354]
mov edi, edx
shr edi, 0x18
and di, 0x3f
je 0x584689
movzx esi, di
mov dword [ebp - 0x350], esi
fild dword [ebp - 0x350]
fmul dword [0x617aa4]
fadd dword [ebp - 0x354]
fstp dword [ebp - 0x354]
mov edi, eax
shr edi, 0xa
mov esi, edi
shr si, 6
and esi, 0xf
and edi, 0x200
jne 0x5870c9
movzx edi, si
mov dword [ebp - 0x350], edi
fild dword [ebp - 0x350]
fstp dword [ebp - 0x348]
shr edx, 0x12
and dx, 0x3f
je 0x5846e2
movzx edx, dx
mov dword [ebp - 0x350], edx
fild dword [ebp - 0x350]
fmul dword [0x617aa4]
fadd dword [ebp - 0x348]
fstp dword [ebp - 0x348]
shr eax, 0x14
mov esi, eax
shr si, 6
and esi, 0xf
test ah, 2
je 0x5870af
neg esi
and esi, 7
mov dword [ebp - 0x350], esi
fild dword [ebp - 0x350]
fchs
fstp dword [ebp - 0x350]
and ax, 0x3f
je 0x584737
movzx eax, ax
mov dword [ebp - 0x358], eax
fild dword [ebp - 0x358]
fmul dword [0x617aa4]
fadd dword [ebp - 0x350]
fstp dword [ebp - 0x350]
mov byte [ebp - 0x258], cl
lea edx, [ebp - 0x2a0]
lea ecx, [ebp - 0x258]
mov dword [esp + 4], ecx
mov ecx, ebx
mov dword [esp], edx
call method.NTR_LCD.build_verts_unsigned_char__unsigned_char_
movzx esi, byte [ebp - 0x258]
sub esp, 8
lea edi, [ebx + 0x466ac]
mov ecx, edi
mov dword [esp], esi
call method.gx_matrix.operator___unsigned_int_
movss xmm3, dword [ebp - 0x354]
sub esp, 4
mov ecx, edi
movss dword [eax], xmm3
lea eax, [esi + 4]
mov dword [esp], eax
call method.gx_matrix.operator___unsigned_int_
movss xmm4, dword [ebp - 0x348]
lea ecx, [esi + 8]
sub esp, 4
movss dword [eax], xmm4
mov dword [esp], ecx
mov ecx, edi
call method.gx_matrix.operator___unsigned_int_
movss xmm4, dword [ebp - 0x350]
lea edx, [esi + esi*8]
sub esp, 4
movss xmm7, dword [ebp - 0x348]
movss xmm1, dword [ebp - 0x354]
lea edi, [ebx + edx*8 + 0x46850]
movss dword [eax], xmm4
movdqu xmm0, xmmword [ebx + 0x46780]
movss dword [ebx + 0x4075c], xmm1
movss dword [ebx + 0x40760], xmm7
movss dword [ebx + 0x40764], xmm4
movups xmmword [edi + 8], xmm0
movdqu xmm2, xmmword [ebx + 0x46790]
movups xmmword [edi + 0x18], xmm2
movdqu xmm6, xmmword [ebx + 0x467a0]
movups xmmword [edi + 0x28], xmm6
movdqu xmm5, xmmword [ebx + 0x467b0]
movups xmmword [edi + 0x38], xmm5
mov esi, dword [ebx + 0x467c0]
mov eax, dword [ebx + 0x467c4]
mov dword [edi + 0x48], esi
mov esi, dword [ebx]
mov dword [edi + 0x4c], eax
movzx edx, byte [ebx + 0x3ea9f]
mov ecx, dword [ebx + 0x406b0]
mov dword [ebp - 0x348], esi
mov eax, edx
add eax, 1
mov dword [ebx + edx*4 + 0x46728], ecx
mov byte [ebx + 0x3ea9f], al
cmp al, byte [ebp - 0x2a0]
jne 0x583c30
movdqu xmm3, xmmword [ebx + 0x466ac]
movdqu xmm1, xmmword [ebx + 0x466bc]
mov byte [ebx + 0x3ea9f], 0
movdqu xmm7, xmmword [ebx + 0x466cc]
movdqu xmm4, xmmword [ebx + 0x466dc]
mov byte [ebx + 0x406a0], 1
movups xmmword [ebx + 0x46664], xmm3
movups xmmword [ebx + 0x46674], xmm1
movups xmmword [ebx + 0x46684], xmm7
movups xmmword [ebx + 0x46694], xmm4
jmp 0x58414b
mov dword [esp], 4
lea ecx, [ebp - 0x330]
call method.gx_matrix.make_identity_unsigned_int_
sub esp, 4
xor esi, esi
mov edi, 0xaaaaaaab
jmp 0x58494f
mov dword [ebp - 0x350], eax
fild dword [ebp - 0x350]
fstp dword [ebp - 0x350]
and ecx, 0xfff
je 0x584908
mov dword [ebp - 0x348], ecx
fild dword [ebp - 0x348]
fmul dword [0x617a70]
fadd dword [ebp - 0x350]
fstp dword [ebp - 0x350]
mov ecx, esi
sar ecx, 2
mov eax, ecx
mul edi
mov eax, edx
and edx, 0xfffffffe
shr eax, 1
add edx, eax
mov eax, esi
sub ecx, edx
mul edi
shr edx, 3
lea ecx, [ecx + edx*4]
mov dword [esp], ecx
lea ecx, [ebp - 0x330]
call method.gx_matrix.operator___unsigned_int_
movss xmm6, dword [ebp - 0x350]
add esi, 4
sub esp, 4
movss dword [eax], xmm6
cmp esi, 0x24
je 0x5869d0
movzx ecx, byte [ebx + esi + 0x3e596]
movzx edx, byte [ebx + esi + 0x3e595]
movzx eax, byte [ebx + esi + 0x3e597]
shl edx, 0x10
shl ecx, 8
or ecx, edx
movzx edx, byte [ebx + esi + 0x3e594]
or ecx, eax
shl edx, 0x18
or ecx, edx
mov eax, ecx
shr eax, 0xc
test ecx, ecx
jns 0x5848d0
neg eax
and eax, 0x7ffff
mov dword [ebp - 0x350], eax
fild dword [ebp - 0x350]
fchs
fstp dword [ebp - 0x350]
jmp 0x5848e2
mov edi, dword [ebx + 0x3e594]
bswap edi
mov dword [ebp - 0x348], edi
lea edi, [ebp - 0x2a0]
mov dword [esp + 4], 1
mov ecx, edi
mov dword [esp], 4
call method.gx_matrix.gx_matrix_unsigned_int__unsigned_int_
sub esp, 8
xor esi, esi
mov eax, dword [ebp - 0x348]
lea ecx, [esi + esi*4]
add ecx, ecx
shr eax, cl
mov edx, eax
shr dx, 6
and edx, 0xf
test ah, 2
je 0x586950
neg edx
and edx, 7
mov dword [ebp - 0x350], edx
fild dword [ebp - 0x350]
fchs
fstp dword [ebp - 0x350]
and ax, 0x3f
je 0x584a39
movzx eax, ax
mov dword [ebp - 0x354], eax
fild dword [ebp - 0x354]
fmul dword [0x617aa4]
fadd dword [ebp - 0x350]
fstp dword [ebp - 0x350]
mov dword [esp], esi
mov ecx, edi
call method.gx_matrix.operator___unsigned_int_
movss xmm2, dword [ebp - 0x350]
add esi, 1
sub esp, 4
movss dword [eax], xmm2
cmp esi, 3
jne 0x5849da
lea esi, [ebx + 0x467c8]
mov dword [esp], edi
lea ecx, [ebp - 0x258]
mov dword [esp + 4], esi
call method.gx_matrix.operator_gx_matrix_const_
movzx edx, byte [ebx + 0x3ea9f]
mov eax, dword [ebp - 0x218]
sub esp, 8
movdqu xmm6, xmmword [ebp - 0x258]
movdqu xmm5, xmmword [ebp - 0x248]
lea ecx, [edx + edx*8]
mov edx, dword [ebp - 0x214]
movdqu xmm7, xmmword [ebp - 0x238]
lea esi, [ebx + ecx*8 + 0x46a90]
movdqu xmm3, xmmword [ebp - 0x228]
lea ecx, [ebp - 0x258]
mov dword [esi + 0x48], eax
mov dword [esi + 0x4c], edx
movups xmmword [esi + 8], xmm6
movups xmmword [esi + 0x18], xmm5
movups xmmword [esi + 0x28], xmm7
movups xmmword [esi + 0x38], xmm3
call method.gx_matrix.gx_matrix__
mov ecx, dword [ebx + 0x46bc8]
mov dword [ebx + 0x406b0], ecx
mov ecx, edi
call method.gx_matrix.gx_matrix__
mov edi, dword [ebx]
mov dword [ebp - 0x348], edi
jmp 0x583c30
movzx ecx, byte [ebx + 0x3ea9f]
test cl, cl
je 0x5872a8
mov eax, dword [ebx + 0x3e594]
mov byte [ebp - 0x2a0], 0
bswap eax
test ah, 2
jne 0x5871b5
mov edi, eax
and edi, 0x1ff
mov dword [ebp - 0x350], edi
fild dword [ebp - 0x350]
fmul dword [0x617a70]
fstp dword [ebp - 0x350]
mov esi, eax
shr esi, 0xa
test eax, 0x80000
jne 0x587190
and esi, 0x1ff
mov dword [ebp - 0x348], esi
fild dword [ebp - 0x348]
fmul dword [0x617a70]
fstp dword [ebp - 0x354]
mov edi, eax
shr edi, 0x14
test eax, 0x20000000
je 0x58716d
neg edi
and edi, 0x1ff
mov dword [ebp - 0x348], edi
fild dword [ebp - 0x348]
fmul qword [0x617ab8]
fstp dword [ebp - 0x348]
mov byte [ebp - 0x258], cl
lea eax, [ebp - 0x2a0]
lea ecx, [ebp - 0x258]
mov dword [esp + 4], ecx
mov ecx, ebx
mov dword [esp], eax
call method.NTR_LCD.build_verts_unsigned_char__unsigned_char_
fld dword [ebp - 0x350]
fadd dword [ebx + 0x4075c]
sub esp, 8
lea edi, [ebx + 0x466ac]
movzx esi, byte [ebp - 0x258]
mov ecx, edi
fstp dword [ebp - 0x350]
fld dword [ebp - 0x354]
fadd dword [ebx + 0x40760]
movss xmm3, dword [ebp - 0x350]
movss dword [ebx + 0x4075c], xmm3
fstp dword [ebx + 0x40760]
fld dword [ebp - 0x348]
fadd dword [ebx + 0x40764]
fstp dword [ebx + 0x40764]
mov dword [esp], esi
call method.gx_matrix.operator___unsigned_int_
movss xmm4, dword [ebp - 0x350]
sub esp, 4
lea edx, [esi + 4]
mov ecx, edi
movss dword [eax], xmm4
fld dword [ebx + 0x40760]
fstp dword [ebp - 0x350]
mov dword [esp], edx
call method.gx_matrix.operator___unsigned_int_
movss xmm1, dword [ebp - 0x350]
lea ecx, [esi + 8]
sub esp, 4
movss dword [eax], xmm1
fld dword [ebx + 0x40764]
fstp dword [ebp - 0x350]
mov dword [esp], ecx
mov ecx, edi
call method.gx_matrix.operator___unsigned_int_
movss xmm7, dword [ebp - 0x350]
sub esp, 4
movss dword [eax], xmm7
lea eax, [esi + esi*8]
movdqu xmm5, xmmword [ebx + 0x46780]
lea edi, [ebx + eax*8 + 0x46850]
movups xmmword [edi + 8], xmm5
movdqu xmm0, xmmword [ebx + 0x46790]
movups xmmword [edi + 0x18], xmm0
movdqu xmm2, xmmword [ebx + 0x467a0]
movups xmmword [edi + 0x28], xmm2
movdqu xmm6, xmmword [ebx + 0x467b0]
movups xmmword [edi + 0x38], xmm6
mov esi, dword [ebx + 0x467c0]
mov edx, dword [ebx + 0x467c4]
mov dword [edi + 0x48], esi
mov esi, dword [ebx]
mov dword [edi + 0x4c], edx
movzx edi, byte [ebx + 0x3ea9f]
mov ecx, dword [ebx + 0x406b0]
mov dword [ebp - 0x348], esi
mov eax, edi
add eax, 1
mov dword [ebx + edi*4 + 0x46728], ecx
mov byte [ebx + 0x3ea9f], al
cmp al, byte [ebp - 0x2a0]
jne 0x583c30
movdqu xmm3, xmmword [ebx + 0x466ac]
movdqu xmm4, xmmword [ebx + 0x466bc]
mov byte [ebx + 0x3ea9f], 0
movdqu xmm1, xmmword [ebx + 0x466cc]
movdqu xmm7, xmmword [ebx + 0x466dc]
mov byte [ebx + 0x406a0], 1
movups xmmword [ebx + 0x46664], xmm3
movups xmmword [ebx + 0x46674], xmm4
movups xmmword [ebx + 0x46684], xmm1
movups xmmword [ebx + 0x46694], xmm7
jmp 0x58414b
movzx ecx, byte [ebx + 0x3ea9f]
test cl, cl
je 0x5872c3
movzx edi, byte [ebx + 0x3e594]
movzx edx, byte [ebx + 0x3e595]
mov byte [ebp - 0x2a0], 0
shl edi, 8
mov esi, edi
shr si, 0xc
or dx, di
js 0x5871fa
movzx eax, si
mov dword [ebp - 0x350], eax
fild dword [ebp - 0x350]
fstp dword [ebp - 0x348]
and dx, 0xfff
je 0x584db6
mov word [ebp - 0x350], dx
fild word [ebp - 0x350]
fmul dword [0x617a70]
fadd dword [ebp - 0x348]
fstp dword [ebp - 0x348]
movzx edi, byte [ebx + 0x3e596]
movzx edx, byte [ebx + 0x3e597]
shl edi, 8
mov esi, edi
shr si, 0xc
or dx, di
js 0x5871dc
movzx eax, si
mov dword [ebp - 0x350], eax
fild dword [ebp - 0x350]
fstp dword [ebp - 0x354]
and dx, 0xfff
je 0x584e11
mov word [ebp - 0x350], dx
fild word [ebp - 0x350]
fmul dword [0x617a70]
fadd dword [ebp - 0x354]
fstp dword [ebp - 0x354]
movzx edi, byte [ebx + 0x3e59a]
movzx edx, byte [ebx + 0x3e59b]
shl edi, 8
mov esi, edi
shr si, 0xc
or dx, di
js 0x587218
movzx eax, si
mov dword [ebp - 0x350], eax
fild dword [ebp - 0x350]
fstp dword [ebp - 0x350]
and dx, 0xfff
je 0x584e6c
mov word [ebp - 0x358], dx
fild word [ebp - 0x358]
fmul dword [0x617a70]
fadd dword [ebp - 0x350]
fstp dword [ebp - 0x350]
mov byte [ebp - 0x258], cl
lea edi, [ebp - 0x2a0]
lea ecx, [ebp - 0x258]
mov dword [esp + 4], ecx
mov ecx, ebx
mov dword [esp], edi
call method.NTR_LCD.build_verts_unsigned_char__unsigned_char_
movzx esi, byte [ebp - 0x258]
sub esp, 8
lea edi, [ebx + 0x466ac]
mov ecx, edi
mov dword [esp], esi
call method.gx_matrix.operator___unsigned_int_
movss xmm0, dword [ebp - 0x354]
sub esp, 4
lea edx, [esi + 4]
mov ecx, edi
movss dword [eax], xmm0
mov dword [esp], edx
call method.gx_matrix.operator___unsigned_int_
movss xmm2, dword [ebp - 0x348]
sub esp, 4
mov ecx, edi
movss dword [eax], xmm2
lea eax, [esi + 8]
mov dword [esp], eax
call method.gx_matrix.operator___unsigned_int_
movss xmm7, dword [ebp - 0x350]
lea ecx, [esi + esi*8]
sub esp, 4
movss xmm5, dword [ebp - 0x348]
movss xmm6, dword [ebp - 0x354]
lea edi, [ebx + ecx*8 + 0x46850]
movss dword [eax], xmm7
movdqu xmm3, xmmword [ebx + 0x46780]
movss dword [ebx + 0x4075c], xmm6
movss dword [ebx + 0x40760], xmm5
movss dword [ebx + 0x40764], xmm7
movups xmmword [edi + 8], xmm3
movdqu xmm1, xmmword [ebx + 0x46790]
movups xmmword [edi + 0x18], xmm1
movdqu xmm4, xmmword [ebx + 0x467a0]
movups xmmword [edi + 0x28], xmm4
movdqu xmm0, xmmword [ebx + 0x467b0]
movups xmmword [edi + 0x38], xmm0
mov esi, dword [ebx + 0x467c0]
mov edx, dword [ebx + 0x467c4]
mov dword [edi + 0x48], esi
mov esi, dword [ebx]
mov dword [edi + 0x4c], edx
movzx edi, byte [ebx + 0x3ea9f]
mov ecx, dword [ebx + 0x406b0]
mov dword [ebp - 0x348], esi
mov eax, edi
add eax, 1
mov dword [ebx + edi*4 + 0x46728], ecx
mov byte [ebx + 0x3ea9f], al
cmp al, byte [ebp - 0x2a0]
jne 0x583c30
movdqu xmm2, xmmword [ebx + 0x466ac]
movdqu xmm6, xmmword [ebx + 0x466bc]
mov byte [ebx + 0x3ea9f], 0
movdqu xmm5, xmmword [ebx + 0x466cc]
movdqu xmm7, xmmword [ebx + 0x466dc]
mov byte [ebx + 0x406a0], 1
movups xmmword [ebx + 0x46664], xmm2
movups xmmword [ebx + 0x46674], xmm6
movups xmmword [ebx + 0x46684], xmm5
movups xmmword [ebx + 0x46694], xmm7
jmp 0x58414b
movzx eax, word [ebx + 0x3e596]
rol ax, 8
mov ecx, eax
shr cx, 4
test ax, ax
js 0x586fc0
movzx edi, cx
mov dword [ebp - 0x350], edi
fild dword [ebp - 0x350]
and ax, 0xf
je 0x585033
mov word [ebp - 0x350], ax
fild word [ebp - 0x350]
fmul dword [0x617aa8]
faddp st(1)
fstp dword [ebp - 0x350]
fld dword [ebp - 0x350]
movzx esi, byte [ebx + 0x3ea9f]
fstp dword [ebx + esi*4 + 0x407a0]
movzx eax, word [ebx + 0x3e594]
rol ax, 8
mov edx, eax
shr dx, 4
test ax, ax
js 0x586f9c
movzx ecx, dx
mov dword [ebp - 0x350], ecx
fild dword [ebp - 0x350]
and ax, 0xf
je 0x585091
mov word [ebp - 0x350], ax
fild word [ebp - 0x350]
fmul dword [0x617aa8]
faddp st(1)
fstp dword [ebp - 0x350]
fld dword [ebp - 0x350]
fstp dword [ebx + esi*4 + 0x407b0]
cmp byte [ebx + 0x40785], 1
je 0x5876ae
mov esi, dword [ebx]
mov byte [ebx + 0x406a1], 1
mov dword [ebp - 0x348], esi
jmp 0x583c30
movzx eax, byte [ebx + 0x3ea9d]
cmp al, 2
je 0x587cb5
ja 0x586d75
test al, al
je 0x587d60
mov dword [esp], 4
lea ecx, [ebx + 0x46780]
call method.gx_matrix.make_identity_unsigned_int_
mov edi, dword [ebx]
mov byte [ebx + 0x406a3], 1
sub esp, 4
mov dword [ebp - 0x348], edi
jmp 0x583c30
mov dword [esp + 4], 1
lea esi, [ebp - 0x2e8]
mov dword [esp], 4
mov ecx, esi
call method.gx_matrix.gx_matrix_unsigned_int__unsigned_int_
movzx edi, word [ebx + 0x3e596]
sub esp, 8
rol di, 8
mov edx, edi
shr dx, 0xc
test di, di
js 0x587105
movzx ecx, dx
mov dword [ebp - 0x350], ecx
fild dword [ebp - 0x350]
fld1
and di, 0xfff
je 0x585175
mov word [ebp - 0x350], di
fild word [ebp - 0x350]
fmul dword [0x617a70]
faddp st(2)
fxch st(1)
fstp dword [ebp - 0x350]
fld dword [ebp - 0x350]
fxch st(1)
fmulp st(1)
mov ecx, esi
fstp dword [ebp - 0x350]
mov dword [esp], 0
call method.gx_matrix.operator___unsigned_int_
movss xmm5, dword [ebp - 0x350]
sub esp, 4
movss dword [eax], xmm5
movzx eax, word [ebx + 0x3e594]
rol ax, 8
mov edi, eax
shr di, 0xc
test ax, ax
js 0x586fe4
movzx edx, di
mov dword [ebp - 0x350], edx
fild dword [ebp - 0x350]
fld1
and ax, 0xfff
je 0x5851f0
mov word [ebp - 0x350], ax
fild word [ebp - 0x350]
fmul dword [0x617a70]
faddp st(2)
fxch st(1)
fstp dword [ebp - 0x350]
fld dword [ebp - 0x350]
fxch st(1)
fmulp st(1)
mov ecx, esi
fstp dword [ebp - 0x350]
mov dword [esp], 1
call method.gx_matrix.operator___unsigned_int_
movss xmm0, dword [ebp - 0x350]
sub esp, 4
movss dword [eax], xmm0
movzx ecx, word [ebx + 0x3e59a]
rol cx, 8
mov eax, ecx
shr ax, 0xc
test cx, cx
js 0x587001
movzx edi, ax
mov dword [ebp - 0x350], edi
fild dword [ebp - 0x350]
fld1
and cx, 0xfff
je 0x58526c
mov word [ebp - 0x350], cx
fild word [ebp - 0x350]
fmul dword [0x617a70]
faddp st(2)
fxch st(1)
fstp dword [ebp - 0x350]
fld dword [ebp - 0x350]
fxch st(1)
fmulp st(1)
mov ecx, esi
fstp dword [ebp - 0x350]
mov dword [esp], 2
call method.gx_matrix.operator___unsigned_int_
movss xmm2, dword [ebp - 0x350]
sub esp, 4
mov ecx, esi
movss dword [eax], xmm2
mov dword [esp], 3
call method.gx_matrix.operator___unsigned_int_
sub esp, 4
lea ecx, [ebx + 0x46780]
lea edx, [ebx + 0x46738]
mov dword [eax], 0x3f800000
mov dword [esp], ecx
lea edi, [ebp - 0x2a0]
mov dword [esp + 4], edx
mov ecx, edi
call method.gx_matrix.operator_gx_matrix_const_
sub esp, 8
lea ecx, [ebp - 0x258]
mov dword [esp + 4], edi
mov dword [esp], esi
call method.gx_matrix.operator_gx_matrix_const_
mov eax, dword [ebp - 0x218]
mov edx, dword [ebp - 0x214]
sub esp, 8
lea ecx, [ebp - 0x258]
movdqu xmm6, xmmword [ebp - 0x258]
movdqu xmm1, xmmword [ebp - 0x248]
movdqu xmm3, xmmword [ebp - 0x238]
movdqu xmm4, xmmword [ebp - 0x228]
mov dword [ebp - 0x2a8], eax
mov dword [ebp - 0x2a4], edx
movups xmmword [ebp - 0x2e8], xmm6
movups xmmword [ebp - 0x2d8], xmm1
movups xmmword [ebp - 0x2c8], xmm3
movups xmmword [ebp - 0x2b8], xmm4
call method.gx_matrix.gx_matrix__
mov ecx, edi
call method.gx_matrix.gx_matrix__
mov edi, dword [ebx]
mov dword [esp], 0
mov ecx, esi
call method.gx_matrix.operator___unsigned_int_
fld dword [eax]
sub esp, 4
fnstcw word [ebp - 0x342]
movzx ecx, word [ebp - 0x342]
fld st(0)
fabs
or ch, 0xc
mov word [ebp - 0x344], cx
fld st(0)
fldcw word [ebp - 0x344]
fistp qword [ebp - 0x350]
fldcw word [ebp - 0x342]
mov eax, dword [ebp - 0x350]
fldz
fcompi st(2)
ja 0x586f51
fxch st(1)
fldcw word [ebp - 0x344]
fistp qword [ebp - 0x350]
fldcw word [ebp - 0x342]
shl eax, 0xc
mov edx, dword [ebp - 0x350]
movd xmm7, edx
movq qword [ebp - 0x340], xmm7
fild qword [ebp - 0x340]
fsubp st(1)
fmul dword [0x617a6c]
fldcw word [ebp - 0x344]
fistp qword [ebp - 0x350]
fldcw word [ebp - 0x342]
mov ecx, dword [ebp - 0x350]
mov dword [esp], 0x4000620
or eax, ecx
mov ecx, edi
mov dword [esp + 4], eax
call method.NTR_MMU.write_u32_fast_unsigned_int__unsigned_int_
sub esp, 8
mov edi, dword [ebx]
mov ecx, esi
mov dword [esp], 1
call method.gx_matrix.operator___unsigned_int_
fld dword [eax]
sub esp, 4
fnstcw word [ebp - 0x342]
movzx eax, word [ebp - 0x342]
fld st(0)
fabs
or ah, 0xc
mov word [ebp - 0x344], ax
fld st(0)
fldcw word [ebp - 0x344]
fistp qword [ebp - 0x350]
fldcw word [ebp - 0x342]
mov ecx, dword [ebp - 0x350]
fldz
fcompi st(2)
ja 0x586f06
fxch st(1)
fldcw word [ebp - 0x344]
fistp qword [ebp - 0x350]
fldcw word [ebp - 0x342]
shl ecx, 0xc
mov edx, dword [ebp - 0x350]
movd xmm0, edx
movq qword [ebp - 0x340], xmm0
fild qword [ebp - 0x340]
fsubp st(1)
fmul dword [0x617a6c]
fldcw word [ebp - 0x344]
fistp qword [ebp - 0x350]
fldcw word [ebp - 0x342]
mov eax, dword [ebp - 0x350]
mov dword [esp], 0x4000624
or ecx, eax
mov dword [esp + 4], ecx
mov ecx, edi
call method.NTR_MMU.write_u32_fast_unsigned_int__unsigned_int_
sub esp, 8
mov edi, dword [ebx]
mov ecx, esi
mov dword [esp], 2
call method.gx_matrix.operator___unsigned_int_
fld dword [eax]
sub esp, 4
fnstcw word [ebp - 0x342]
movzx ecx, word [ebp - 0x342]
fld st(0)
fabs
or ch, 0xc
mov word [ebp - 0x344], cx
fld st(0)
fldcw word [ebp - 0x344]
fistp qword [ebp - 0x350]
fldcw word [ebp - 0x342]
mov eax, dword [ebp - 0x350]
fldz
fcompi st(2)
ja 0x586ebb
fxch st(1)
fldcw word [ebp - 0x344]
fistp qword [ebp - 0x350]
fldcw word [ebp - 0x342]
shl eax, 0xc
mov edx, dword [ebp - 0x350]
movd xmm6, edx
movq qword [ebp - 0x340], xmm6
fild qword [ebp - 0x340]
fsubp st(1)
fmul dword [0x617a6c]
fldcw word [ebp - 0x344]
fistp qword [ebp - 0x350]
fldcw word [ebp - 0x342]
mov ecx, dword [ebp - 0x350]
mov dword [esp], 0x4000628
or eax, ecx
mov ecx, edi
mov dword [esp + 4], eax
call method.NTR_MMU.write_u32_fast_unsigned_int__unsigned_int_
sub esp, 8
mov edi, dword [ebx]
mov ecx, esi
mov dword [esp], 3
call method.gx_matrix.operator___unsigned_int_
fld dword [eax]
sub esp, 4
fnstcw word [ebp - 0x342]
movzx eax, word [ebp - 0x342]
fld st(0)
fabs
or ah, 0xc
mov word [ebp - 0x344], ax
fld st(0)
fldcw word [ebp - 0x344]
fistp qword [ebp - 0x350]
fldcw word [ebp - 0x342]
mov ecx, dword [ebp - 0x350]
fldz
fcompi st(2)
ja 0x587122
fxch st(1)
fldcw word [ebp - 0x344]
fistp qword [ebp - 0x350]
fldcw word [ebp - 0x342]
shl ecx, 0xc
mov edx, dword [ebp - 0x350]
movd xmm3, edx
movq qword [ebp - 0x340], xmm3
fild qword [ebp - 0x340]
fsubp st(1)
fmul dword [0x617a6c]
fldcw word [ebp - 0x344]
fistp qword [ebp - 0x350]
fldcw word [ebp - 0x342]
mov eax, dword [ebp - 0x350]
mov dword [esp], 0x400062c
or ecx, eax
mov dword [esp + 4], ecx
mov ecx, edi
call method.NTR_MMU.write_u32_fast_unsigned_int__unsigned_int_
sub esp, 8
mov ecx, esi
mov dword [esp], 0
call method.gx_matrix.operator___unsigned_int_
fld dword [eax]
sub esp, 4
mov ecx, esi
fstp dword [ebx + 0x4075c]
mov dword [esp], 1
call method.gx_matrix.operator___unsigned_int_
fld dword [eax]
sub esp, 4
mov ecx, esi
fstp dword [ebx + 0x40760]
mov dword [esp], 2
call method.gx_matrix.operator___unsigned_int_
fld dword [eax]
and dword [ebx + 0x3e584], 0xfffffffe
mov ecx, esi
sub esp, 4
fstp dword [ebx + 0x40764]
call method.gx_matrix.gx_matrix__
mov esi, dword [ebx]
mov dword [ebp - 0x348], esi
jmp 0x583c30
movzx edi, word [ebx + 0x3e596]
rol di, 8
mov ecx, edi
shr cx, 0xc
test di, di
js 0x586e9e
movzx edx, cx
mov dword [ebp - 0x350], edx
fild dword [ebp - 0x350]
fld1
and di, 0xfff
je 0x5856eb
mov word [ebp - 0x350], di
fild word [ebp - 0x350]
fmul dword [0x617a70]
faddp st(2)
fxch st(1)
fstp dword [ebp - 0x350]
fld dword [ebp - 0x350]
fxch st(1)
fmulp st(1)
movzx eax, word [ebx + 0x3e594]
rol ax, 8
mov esi, eax
fstp dword [ebp - 0x354]
shr si, 0xc
test ax, ax
js 0x587092
movzx edi, si
mov dword [ebp - 0x350], edi
fild dword [ebp - 0x350]
fld1
and ax, 0xfff
je 0x585749
mov word [ebp - 0x350], ax
fild word [ebp - 0x350]
fmul dword [0x617a70]
faddp st(2)
fxch st(1)
fstp dword [ebp - 0x350]
fld dword [ebp - 0x350]
fxch st(1)
fmulp st(1)
movzx ecx, word [ebx + 0x3e59a]
rol cx, 8
mov edx, ecx
fstp dword [ebp - 0x348]
shr dx, 0xc
test cx, cx
js 0x587075
movzx eax, dx
mov dword [ebp - 0x350], eax
fild dword [ebp - 0x350]
fld1
and cx, 0xfff
je 0x5857a8
mov word [ebp - 0x350], cx
fild word [ebp - 0x350]
fmul dword [0x617a70]
faddp st(2)
fxch st(1)
fstp dword [ebp - 0x350]
fld dword [ebp - 0x350]
fxch st(1)
fmulp st(1)
movzx esi, word [ebx + 0x3e598]
rol si, 8
mov edi, esi
fstp dword [ebp - 0x350]
shr di, 0xc
test si, si
js 0x587058
movzx ecx, di
mov dword [ebp - 0x358], ecx
fild dword [ebp - 0x358]
fld1
and si, 0xfff
je 0x585807
mov word [ebp - 0x358], si
fild word [ebp - 0x358]
fmul dword [0x617a70]
faddp st(2)
fxch st(1)
fstp dword [ebp - 0x358]
fld dword [ebp - 0x358]
fxch st(1)
fmulp st(1)
movzx eax, word [ebx + 0x3e59e]
rol ax, 8
mov edx, eax
fstp dword [ebp - 0x358]
shr dx, 0xc
test ax, ax
js 0x58703b
movzx esi, dx
mov dword [ebp - 0x35c], esi
fild dword [ebp - 0x35c]
fld1
and ax, 0xfff
je 0x585865
mov word [ebp - 0x35c], ax
fild word [ebp - 0x35c]
fmul dword [0x617a70]
faddp st(2)
fxch st(1)
fstp dword [ebp - 0x35c]
fld dword [ebp - 0x35c]
fxch st(1)
fmulp st(1)
movzx edi, word [ebx + 0x3e59c]
rol di, 8
mov ecx, edi
fstp dword [ebp - 0x35c]
shr cx, 0xc
test di, di
js 0x58701e
movzx eax, cx
mov dword [ebp - 0x360], eax
fild dword [ebp - 0x360]
fld1
and di, 0xfff
je 0x5858c4
mov word [ebp - 0x360], di
fild word [ebp - 0x360]
fmul dword [0x617a70]
faddp st(2)
fxch st(1)
fstp dword [ebp - 0x360]
fld dword [ebp - 0x360]
fxch st(1)
fmulp st(1)
mov esi, 7
lea edi, [ebp - 0x258]
fstp dword [ebp - 0x360]
lea esi, [esi]
nop
mov ecx, edi
call fcn.005bc210
add edi, 0x48
sub esi, 1
jae 0x5858e0
lea esi, [ebp - 0x258]
mov edi, esi
lea esi, [esi]
nop
mov dword [esp + 4], 1
mov ecx, edi
mov dword [esp], 4
call method.gx_matrix.resize_unsigned_int__unsigned_int_
add edi, 0x48
lea edx, [ebp - 0x18]
sub esp, 8
cmp edi, edx
jne 0x585900
mov dword [esp], 0
lea ecx, [ebp - 0x258]
call method.gx_matrix.operator___unsigned_int_
movss xmm7, dword [ebp - 0x354]
sub esp, 4
lea ecx, [ebp - 0x258]
movss dword [eax], xmm7
mov dword [esp], 1
call method.gx_matrix.operator___unsigned_int_
movss xmm5, dword [ebp - 0x348]
sub esp, 4
lea ecx, [ebp - 0x258]
movss dword [eax], xmm5
mov dword [esp], 2
call method.gx_matrix.operator___unsigned_int_
movss xmm0, dword [ebp - 0x350]
sub esp, 4
lea ecx, [ebp - 0x258]
movss dword [eax], xmm0
mov dword [esp], 3
call method.gx_matrix.operator___unsigned_int_
fld dword [ebp - 0x358]
fadd dword [ebp - 0x354]
sub esp, 4
mov dword [eax], 0x3f800000
lea ecx, [ebp - 0x210]
fstp dword [ebp - 0x358]
mov dword [esp], 0
call method.gx_matrix.operator___unsigned_int_
movss xmm2, dword [ebp - 0x358]
sub esp, 4
lea ecx, [ebp - 0x210]
movss dword [eax], xmm2
mov dword [esp], 1
call method.gx_matrix.operator___unsigned_int_
movss xmm6, dword [ebp - 0x348]
sub esp, 4
lea ecx, [ebp - 0x210]
movss dword [eax], xmm6
mov dword [esp], 2
call method.gx_matrix.operator___unsigned_int_
movss xmm1, dword [ebp - 0x350]
sub esp, 4
lea ecx, [ebp - 0x210]
movss dword [eax], xmm1
mov dword [esp], 3
call method.gx_matrix.operator___unsigned_int_
sub esp, 4
mov dword [eax], 0x3f800000
lea ecx, [ebp - 0x1c8]
mov dword [esp], 0
call method.gx_matrix.operator___unsigned_int_
fld dword [ebp - 0x35c]
fadd dword [ebp - 0x348]
sub esp, 4
lea ecx, [ebp - 0x1c8]
movss xmm3, dword [ebp - 0x358]
movss dword [eax], xmm3
fstp dword [ebp - 0x35c]
mov dword [esp], 1
call method.gx_matrix.operator___unsigned_int_
movss xmm4, dword [ebp - 0x35c]
sub esp, 4
lea ecx, [ebp - 0x1c8]
movss dword [eax], xmm4
mov dword [esp], 2
call method.gx_matrix.operator___unsigned_int_
movss xmm7, dword [ebp - 0x350]
sub esp, 4
lea ecx, [ebp - 0x1c8]
movss dword [eax], xmm7
mov dword [esp], 3
call method.gx_matrix.operator___unsigned_int_
sub esp, 4
mov dword [eax], 0x3f800000
lea ecx, [ebp - 0x180]
mov dword [esp], 0
call method.gx_matrix.operator___unsigned_int_
movss xmm5, dword [ebp - 0x354]
sub esp, 4
lea ecx, [ebp - 0x180]
movss dword [eax], xmm5
mov dword [esp], 1
call method.gx_matrix.operator___unsigned_int_
movss xmm0, dword [ebp - 0x35c]
sub esp, 4
lea ecx, [ebp - 0x180]
movss dword [eax], xmm0
mov dword [esp], 2
call method.gx_matrix.operator___unsigned_int_
movss xmm2, dword [ebp - 0x350]
sub esp, 4
lea ecx, [ebp - 0x180]
movss dword [eax], xmm2
mov dword [esp], 3
call method.gx_matrix.operator___unsigned_int_
sub esp, 4
mov dword [eax], 0x3f800000
lea ecx, [ebp - 0x138]
mov dword [esp], 0
call method.gx_matrix.operator___unsigned_int_
movss xmm6, dword [ebp - 0x354]
sub esp, 4
lea ecx, [ebp - 0x138]
movss dword [eax], xmm6
mov dword [esp], 1
call method.gx_matrix.operator___unsigned_int_
fld dword [ebp - 0x360]
fadd dword [ebp - 0x350]
sub esp, 4
lea ecx, [ebp - 0x138]
movss xmm1, dword [ebp - 0x348]
movss dword [eax], xmm1
fstp dword [ebp - 0x350]
mov dword [esp], 2
call method.gx_matrix.operator___unsigned_int_
movss xmm3, dword [ebp - 0x350]
sub esp, 4
lea ecx, [ebp - 0x138]
movss dword [eax], xmm3
mov dword [esp], 3
call method.gx_matrix.operator___unsigned_int_
sub esp, 4
mov dword [eax], 0x3f800000
lea ecx, [ebp - 0xf0]
mov dword [esp], 0
call method.gx_matrix.operator___unsigned_int_
movss xmm4, dword [ebp - 0x358]
sub esp, 4
lea ecx, [ebp - 0xf0]
movss dword [eax], xmm4
mov dword [esp], 1
call method.gx_matrix.operator___unsigned_int_
movss xmm7, dword [ebp - 0x348]
sub esp, 4
lea ecx, [ebp - 0xf0]
movss dword [eax], xmm7
mov dword [esp], 2
call method.gx_matrix.operator___unsigned_int_
movss xmm5, dword [ebp - 0x350]
sub esp, 4
lea ecx, [ebp - 0xf0]
movss dword [eax], xmm5
mov dword [esp], 3
call method.gx_matrix.operator___unsigned_int_
sub esp, 4
mov dword [eax], 0x3f800000
lea ecx, [ebp - 0xa8]
mov dword [esp], 0
call method.gx_matrix.operator___unsigned_int_
movss xmm0, dword [ebp - 0x358]
sub esp, 4
lea ecx, [ebp - 0xa8]
movss dword [eax], xmm0
mov dword [esp], 1
call method.gx_matrix.operator___unsigned_int_
movss xmm2, dword [ebp - 0x35c]
sub esp, 4
lea ecx, [ebp - 0xa8]
movss dword [eax], xmm2
mov dword [esp], 2
call method.gx_matrix.operator___unsigned_int_
movss xmm6, dword [ebp - 0x350]
sub esp, 4
lea ecx, [ebp - 0xa8]
movss dword [eax], xmm6
mov dword [esp], 3
call method.gx_matrix.operator___unsigned_int_
sub esp, 4
mov dword [eax], 0x3f800000
lea ecx, [ebp - 0x60]
mov dword [esp], 0
call method.gx_matrix.operator___unsigned_int_
movss xmm1, dword [ebp - 0x354]
sub esp, 4
lea ecx, [ebp - 0x60]
movss dword [eax], xmm1
mov dword [esp], 1
call method.gx_matrix.operator___unsigned_int_
movss xmm3, dword [ebp - 0x35c]
sub esp, 4
lea ecx, [ebp - 0x60]
movss dword [eax], xmm3
mov dword [esp], 2
call method.gx_matrix.operator___unsigned_int_
movss xmm4, dword [ebp - 0x350]
sub esp, 4
lea ecx, [ebp - 0x60]
movss dword [eax], xmm4
mov dword [esp], 3
call method.gx_matrix.operator___unsigned_int_
mov dword [eax], 0x3f800000
sub esp, 4
lea ecx, [ebx + 0x46738]
lea eax, [ebx + 0x46780]
mov dword [esp + 4], ecx
lea edi, [ebp - 0x2e8]
mov dword [esp], eax
mov ecx, edi
call method.gx_matrix.operator_gx_matrix_const_
movzx edx, byte [ebx + 0x3ea9a]
movzx ecx, byte [ebx + 0x3ea99]
sub esp, 8
movzx eax, byte [ebx + 0x3ea9b]
sub edx, ecx
mov dword [ebp - 0x35c], edx
movzx edx, byte [ebx + 0x3ea9c]
sub edx, eax
mov dword [ebp - 0x360], edx
mov dword [esp + 4], edi
lea ecx, [ebp - 0x2a0]
mov dword [esp], esi
call method.gx_matrix.operator_gx_matrix_const_
mov ecx, dword [ebp - 0x260]
mov edx, dword [ebp - 0x25c]
sub esp, 8
movdqu xmm7, xmmword [ebp - 0x2a0]
movdqu xmm5, xmmword [ebp - 0x290]
mov dword [esi + 0x40], ecx
movdqu xmm0, xmmword [ebp - 0x280]
lea ecx, [ebp - 0x2a0]
movdqu xmm2, xmmword [ebp - 0x270]
mov dword [esi + 0x44], edx
movups xmmword [esi], xmm7
movups xmmword [esi + 0x10], xmm5
movups xmmword [esi + 0x20], xmm0
movups xmmword [esi + 0x30], xmm2
call method.gx_matrix.gx_matrix__
mov dword [esp], 0
mov ecx, esi
call method.gx_matrix.operator___unsigned_int_
fld dword [eax]
sub esp, 4
mov ecx, esi
fstp dword [ebp - 0x350]
mov dword [esp], 3
call method.gx_matrix.operator___unsigned_int_
movd xmm6, dword [ebp - 0x35c]
fld dword [ebp - 0x350]
sub esp, 4
mov ecx, esi
fadd dword [eax]
movq qword [ebp - 0x340], xmm6
fild qword [ebp - 0x340]
fmulp st(1)
fstp dword [ebp - 0x350]
mov dword [esp], 3
call method.gx_matrix.operator___unsigned_int_
fld dword [eax]
movzx eax, byte [ebx + 0x3ea99]
sub esp, 4
mov dword [ebp - 0x348], eax
fadd st(0)
fild dword [ebp - 0x348]
faddp st(1)
fdivr dword [ebp - 0x350]
fstp dword [esp]
call dbg.roundf
mov ecx, esi
fstp dword [ebp - 0x350]
mov dword [esp], 3
call method.gx_matrix.operator___unsigned_int_
fld dword [eax]
sub esp, 4
mov ecx, esi
fstp dword [ebp - 0x354]
mov dword [esp], 1
call method.gx_matrix.operator___unsigned_int_
fld dword [eax]
sub esp, 4
mov ecx, esi
fstp dword [ebp - 0x358]
mov dword [esp], 3
call method.gx_matrix.operator___unsigned_int_
movzx edx, byte [ebx + 0x3ea99]
fld dword [eax]
sub esp, 4
movzx ecx, byte [ebx + 0x3ea9b]
mov dword [ebp - 0x348], edx
fild dword [ebp - 0x348]
fld dword [ebp - 0x350]
fxch st(1)
fcompi st(1)
ja 0x586900
movzx eax, byte [ebx + 0x3ea9a]
mov dword [ebp - 0x350], eax
fild dword [ebp - 0x350]
fxch st(1)
fcompi st(1)
fstp st(0)
ja 0x586906
movd xmm1, dword [ebp - 0x360]
mov dword [ebp - 0x350], ecx
fild dword [ebp - 0x350]
fld dword [ebp - 0x354]
fsub dword [ebp - 0x358]
movq qword [ebp - 0x340], xmm1
fild qword [ebp - 0x340]
fmulp st(1)
fxch st(2)
fadd st(0)
fadd st(1)
fxch st(1)
fstp dword [ebp - 0x350]
fdivp st(1)
fstp dword [esp]
call dbg.roundf
fld dword [ebp - 0x350]
fcompi st(1)
ja 0x58690a
movzx ecx, byte [ebx + 0x3ea9c]
mov dword [ebp - 0x350], ecx
fild dword [ebp - 0x350]
fxch st(1)
fcompi st(1)
fstp st(0)
ja 0x586910
mov esi, dword [ebx + 0x3e584]
or esi, 2
and esi, 0xfffffffe
mov ecx, edi
lea edi, [ebp - 0x18]
mov dword [ebx + 0x3e584], esi
call method.gx_matrix.gx_matrix__
lea esi, [esi]
sub edi, 0x48
mov ecx, edi
call method.gx_matrix.gx_matrix__
lea eax, [ebp - 0x258]
cmp edi, eax
jne 0x585fa0
jmp case.0x583b3b.13
mov esi, dword [ebx]
movzx eax, byte [ebx + 0x3ea9d]
mov dword [ebp - 0x348], esi
cmp al, 2
ja 0x586d9f
test al, al
jne 0x587379
mov eax, dword [ebx + 0x466f4]
movdqu xmm5, xmmword [eax]
movups xmmword [ebx + 0x46738], xmm5
movdqu xmm6, xmmword [eax + 0x10]
movups xmmword [ebx + 0x46748], xmm6
movdqu xmm7, xmmword [eax + 0x20]
movups xmmword [ebx + 0x46758], xmm7
movdqu xmm1, xmmword [eax + 0x30]
movups xmmword [ebx + 0x46768], xmm1
mov esi, dword [eax + 0x44]
mov eax, dword [eax + 0x40]
mov dword [ebx + 0x4677c], esi
mov dword [ebx + 0x46778], eax
mov byte [ebx + 0x406a3], 1
jmp 0x583c30
mov eax, dword [ebx]
movzx ecx, byte [ebx + 0x3ea9d]
mov dword [ebp - 0x348], eax
cmp cl, 2
ja 0x586c9d
test cl, cl
jne 0x587511
movzx ecx, byte [ebx + 0x46726]
mov edi, dword [ebx + 0x466f4]
cmp cl, 1
je 0x58854b
lea edx, [ecx + ecx*8]
lea eax, [edi + edx*8]
movdqu xmm5, xmmword [eax]
movups xmmword [ebx + 0x46738], xmm5
movdqu xmm6, xmmword [eax + 0x10]
movups xmmword [ebx + 0x46748], xmm6
movdqu xmm7, xmmword [eax + 0x20]
movups xmmword [ebx + 0x46758], xmm7
movdqu xmm1, xmmword [eax + 0x30]
movups xmmword [ebx + 0x46768], xmm1
jmp 0x58600d
mov esi, dword [ebx]
movzx edx, byte [ebx + 0x3ea9d]
mov dword [ebp - 0x348], esi
cmp dl, 2
ja 0x586df3
test dl, dl
jne 0x587441
movzx eax, byte [ebx + 0x46726]
mov esi, dword [ebx + 0x466f4]
test al, al
jne 0x58812e
movdqu xmm3, xmmword [ebx + 0x46738]
mov byte [ebx + 0x46726], 1
movups xmmword [esi], xmm3
movdqu xmm4, xmmword [ebx + 0x46748]
movups xmmword [esi + 0x10], xmm4
movdqu xmm0, xmmword [ebx + 0x46758]
movups xmmword [esi + 0x20], xmm0
movdqu xmm2, xmmword [ebx + 0x46768]
movups xmmword [esi + 0x30], xmm2
mov ecx, dword [ebx + 0x46778]
mov edx, dword [ebx + 0x4677c]
mov dword [esi + 0x40], ecx
mov dword [esi + 0x44], edx
or dword [ebx + 0x3e584], 0x2000
jmp 0x583c30
movzx ecx, byte [ebx + 0x3e594]
movzx eax, byte [ebx + 0x3e595]
movzx edi, byte [ebx + 0x3e596]
movzx edx, byte [ebx + 0x3e597]
movd xmm3, ecx
movd xmm7, eax
mov esi, dword [ebx]
movsd xmm2, qword [0x617ab0]
punpckldq xmm3, xmm7
movd xmm1, edx
movd xmm4, edi
punpckldq xmm4, xmm1
movdqa xmm5, xmm3
unpcklpd xmm2, xmm2
cvtdq2pd xmm0, xmm3
mulpd xmm0, xmm2
punpcklqdq xmm5, xmm4
mov dword [ebp - 0x348], esi
pshufd xmm6, xmm5, 0xee
cvtdq2pd xmm3, xmm6
mulpd xmm3, xmm2
cvtpd2ps xmm4, xmm0
cvtpd2ps xmm1, xmm3
movlhps xmm4, xmm1
movups xmmword [ebx + 0x46bd8], xmm4
jmp 0x583c30
mov edx, dword [ebx + 0x3e594]
lea edi, [ebp - 0x2a0]
mov ecx, edi
mov esi, edx
shr dl, 6
mov byte [ebp - 0x358], dl
bswap esi
mov dword [ebp - 0x348], esi
mov dword [esp + 4], 1
mov dword [esp], 4
call method.gx_matrix.gx_matrix_unsigned_int__unsigned_int_
sub esp, 8
xor esi, esi
mov eax, dword [ebp - 0x348]
lea ecx, [esi + esi*4]
add ecx, ecx
shr eax, cl
mov edx, eax
shr dx, 6
and edx, 0xf
test ah, 2
je 0x586970
neg edx
and edx, 7
mov dword [ebp - 0x350], edx
fild dword [ebp - 0x350]
fchs
fstp dword [ebp - 0x350]
and ax, 0x3f
je 0x58623c
movzx eax, ax
mov dword [ebp - 0x354], eax
fild dword [ebp - 0x354]
fmul dword [0x617aa4]
fadd dword [ebp - 0x350]
fstp dword [ebp - 0x350]
mov dword [esp], esi
mov ecx, edi
call method.gx_matrix.operator___unsigned_int_
movss xmm7, dword [ebp - 0x350]
add esi, 1
sub esp, 4
movss dword [eax], xmm7
cmp esi, 3
jne 0x5861dd
lea esi, [ebx + 0x467c8]
mov dword [esp], edi
lea ecx, [ebp - 0x258]
mov dword [esp + 4], esi
call method.gx_matrix.operator_gx_matrix_const_
movzx edx, byte [ebp - 0x358]
movdqu xmm5, xmmword [ebp - 0x258]
sub esp, 8
movdqu xmm0, xmmword [ebp - 0x248]
movdqu xmm2, xmmword [ebp - 0x238]
lea ecx, [edx + edx*8]
movdqu xmm6, xmmword [ebp - 0x228]
mov eax, dword [ebp - 0x218]
mov edx, dword [ebp - 0x214]
lea esi, [ebx + ecx*8 + 0x46970]
mov dword [esi + 0x48], eax
mov dword [esi + 0x4c], edx
movups xmmword [esi + 8], xmm5
movups xmmword [esi + 0x18], xmm0
movups xmmword [esi + 0x28], xmm2
movups xmmword [esi + 0x38], xmm6
jmp 0x583c13
mov edx, dword [ebx + 0x3e594]
xor edi, edi
mov ecx, edx
mov eax, edx
shr ecx, 0x18
bswap eax
and ecx, 0x1f
je 0x5862f3
lea ecx, [ecx*8 + 4]
movzx edi, cl
shl edi, 0x10
mov dword [ebp - 0x350], 0
mov esi, eax
shr si, 5
and esi, 0x1f
je 0x58631b
lea ecx, [esi*8 + 4]
movzx esi, cl
shl esi, 8
mov dword [ebp - 0x350], esi
mov ecx, edx
shr ecx, 0x12
and ecx, 0x1f
je 0x586331
lea ecx, [ecx*8 + 4]
movzx esi, cl
or edi, esi
mov ecx, dword [ebp - 0x350]
shr edx, 8
shr eax, 0x10
or ecx, edi
or ecx, 0xff000000
mov dword [ebx + 0x46bd0], ecx
xor ecx, ecx
and edx, 0x1f
je 0x58635f
lea edx, [edx*8 + 4]
movzx ecx, dl
shl ecx, 0x10
mov edi, eax
xor esi, esi
shr di, 5
and edi, 0x1f
je 0x586379
lea edx, [edi*8 + 4]
movzx esi, dl
shl esi, 8
shr ax, 0xa
and eax, 0x1f
je 0x58638e
lea eax, [eax*8 + 4]
movzx edi, al
or ecx, edi
or esi, ecx
mov ecx, dword [ebx]
or esi, 0xff000000
mov dword [ebx + 0x46bd4], esi
mov dword [ebp - 0x348], ecx
jmp 0x583c30
mov esi, dword [ebx]
movzx edx, byte [ebx + 0x3ea9d]
mov dword [ebp - 0x348], esi
cmp dl, 2
ja 0x586bde
test dl, dl
jne 0x5875f3
mov edi, dword [ebx + 0x466f4]
movdqu xmm5, xmmword [ebx + 0x46738]
movups xmmword [edi], xmm5
movdqu xmm6, xmmword [ebx + 0x46748]
movups xmmword [edi + 0x10], xmm6
movdqu xmm7, xmmword [ebx + 0x46758]
movups xmmword [edi + 0x20], xmm7
movdqu xmm1, xmmword [ebx + 0x46768]
movups xmmword [edi + 0x30], xmm1
mov esi, dword [ebx + 0x46778]
mov edx, dword [ebx + 0x4677c]
mov dword [edi + 0x40], esi
mov dword [edi + 0x44], edx
jmp 0x583c30
movzx eax, byte [ebx + 0x3e594]
movzx ecx, byte [ebx + 0x3e596]
movzx edx, byte [ebx + 0x3e595]
movzx edi, byte [ebx + 0x3e597]
and eax, 0xbf
and ecx, 0xbf
mov esi, dword [ebx]
shl eax, 8
or eax, ecx
mov dword [ebp - 0x348], esi
shl eax, 8
or eax, edx
shl eax, 8
or eax, edi
mov dword [ebx + 0x3ea99], eax
jmp 0x583c30
mov ecx, dword [ebx]
or byte [ebx + 0x3ea96], 0x80
cmp byte [ebx + 0x3e49e], 0
mov dword [ebp - 0x348], ecx
jne 0x5865eb
mov esi, dword [ecx + 0x70]
cmp esi, dword [ecx + 0x74]
je 0x586485
mov dword [ecx + 0x74], esi
mov edi, dword [ebp - 0x348]
mov eax, dword [edi + 0x78]
mov dword [ebp - 0x350], eax
sub eax, esi
cmp eax, 0x2fffc
jbe 0x5885a9
mov dword [esp], esi
add esi, 0x30000
mov dword [esp + 8], 0x30000
mov dword [esp + 4], 0
call sym._memset
mov dword [edi + 0x74], esi
movzx esi, byte [ebx + 0x3ea95]
mov edx, dword [ebx + 0x450ec]
lea ecx, [esi + esi*2]
lea eax, [edx + ecx*4]
mov edi, dword [eax + 4]
mov eax, dword [eax]
mov edx, edi
sub edx, eax
mov esi, edx
sar esi, 2
mov dword [ebp - 0x354], esi
cmp edi, eax
je 0x5865eb
mov ecx, dword [ebp - 0x348]
mov edi, dword [ecx + 0x70]
cmp edx, 0xc
jbe 0x58650f
lea esi, [eax + 4]
mov ecx, edi
sub ecx, esi
cmp ecx, 8
ja 0x587d77
mov edx, dword [eax]
mov esi, dword [ebp - 0x354]
mov dword [edi], edx
lea ecx, [esi - 1]
mov edx, 1
and ecx, 7
cmp edx, esi
jae 0x5865eb
test ecx, ecx
je 0x586599
cmp ecx, 1
je 0x586586
cmp ecx, 2
je 0x58657d
cmp ecx, 3
je 0x586574
cmp ecx, 4
je 0x58656b
cmp ecx, 5
je 0x586562
cmp ecx, 6
je 0x586559
mov esi, dword [eax + edx*4]
mov dword [edi + edx*4], esi
mov edx, 2
mov ecx, dword [eax + edx*4]
mov dword [edi + edx*4], ecx
add edx, 1
mov esi, dword [eax + edx*4]
mov dword [edi + edx*4], esi
add edx, 1
mov ecx, dword [eax + edx*4]
mov dword [edi + edx*4], ecx
add edx, 1
mov esi, dword [eax + edx*4]
mov dword [edi + edx*4], esi
add edx, 1
mov ecx, dword [eax + edx*4]
mov dword [edi + edx*4], ecx
add edx, 1
mov esi, dword [eax + edx*4]
mov ecx, dword [ebp - 0x354]
mov dword [edi + edx*4], esi
add edx, 1
cmp edx, ecx
jae 0x5865eb
mov esi, dword [eax + edx*4]
lea ecx, [edx + 1]
mov dword [edi + edx*4], esi
mov esi, dword [eax + ecx*4]
mov dword [edi + ecx*4], esi
lea ecx, [edx + 2]
mov esi, dword [eax + ecx*4]
mov dword [edi + ecx*4], esi
lea ecx, [edx + 3]
mov esi, dword [eax + ecx*4]
mov dword [edi + ecx*4], esi
lea ecx, [edx + 4]
mov esi, dword [eax + ecx*4]
mov dword [edi + ecx*4], esi
lea ecx, [edx + 5]
mov esi, dword [eax + ecx*4]
mov dword [edi + ecx*4], esi
lea ecx, [edx + 6]
mov esi, dword [eax + ecx*4]
mov dword [edi + ecx*4], esi
lea ecx, [edx + 7]
add edx, 8
mov esi, dword [eax + ecx*4]
mov dword [edi + ecx*4], esi
mov ecx, dword [ebp - 0x354]
cmp edx, ecx
jb 0x586599
movzx eax, byte [ebx + 0x3e594]
shr al, 1
xor eax, 1
and eax, 1
mov byte [ebx + 0x40771], al
jmp 0x583c30
mov ecx, dword [ebx + 0x3e594]
xor edi, edi
mov edx, ecx
mov esi, ecx
shr edx, 0x18
bswap esi
and edx, 0x1f
je 0x586628
lea eax, [edx*8 + 4]
movzx edi, al
shl edi, 0x10
mov eax, esi
xor edx, edx
shr ax, 5
and eax, 0x1f
je 0x586642
lea edx, [eax*8 + 4]
movzx edx, dl
shl edx, 8
mov eax, ecx
shr eax, 0x12
and eax, 0x1f
je 0x586658
lea eax, [eax*8 + 4]
movzx eax, al
or edi, eax
or edx, edi
mov eax, esi
shr ecx, 8
xor edi, edi
or edx, 0xff000000
shr eax, 0x10
mov dword [ebx + 0x46bc8], edx
and ecx, 0x1f
je 0x586682
lea ecx, [ecx*8 + 4]
movzx edi, cl
shl edi, 0x10
mov dword [ebp - 0x350], 0
mov ecx, eax
shr cx, 5
and ecx, 0x1f
je 0x5866aa
lea ecx, [ecx*8 + 4]
movzx ecx, cl
shl ecx, 8
mov dword [ebp - 0x350], ecx
shr ax, 0xa
and eax, 0x1f
je 0x5866bf
lea eax, [eax*8 + 4]
movzx ecx, al
or edi, ecx
mov eax, dword [ebp - 0x350]
or eax, edi
mov edi, dword [ebx]
or eax, 0xff000000
and esi, 0x8000
mov dword [ebx + 0x46bcc], eax
mov dword [ebp - 0x348], edi
je 0x583c30
mov dword [ebx + 0x406b0], edx
jmp 0x583c30
mov edi, dword [ebx]
mov byte [ebx + 0x406a2], 0
mov dword [ebp - 0x348], edi
jmp 0x583c30
cmp byte [ebx + 0x3ea9f], 0
jne 0x5872de
movzx edx, byte [ebx + 0x3e597]
mov esi, dword [ebx]
mov byte [ebx + 0x406a1], 0
and edx, 3
mov dword [ebp - 0x348], esi
mov byte [ebx + 0x3ea9e], dl
jmp 0x583c30
mov eax, dword [ebx + 0x3e594]
xor esi, esi
mov ecx, eax
mov edx, eax
mov edi, eax
shr cl, 6
shr edx, 0x18
bswap edi
movzx ecx, cl
and edx, 0x1f
je 0x586761
lea edx, [edx*8 + 4]
movzx esi, dl
shl esi, 0x10
shr di, 5
xor edx, edx
and edi, 0x1f
je 0x586779
lea edx, [edi*8 + 4]
movzx edx, dl
shl edx, 8
shr eax, 0x12
and eax, 0x1f
je 0x58678d
lea eax, [eax*8 + 4]
movzx edi, al
or esi, edi
or edx, esi
or edx, 0xff000000
mov dword [ebx + ecx*4 + 0x46bb8], edx
mov ecx, dword [ebx]
mov dword [ebp - 0x348], ecx
jmp 0x583c30
mov eax, dword [ebx + 0x3e594]
mov esi, 8
mov edi, esi
mov edx, eax
bswap edx
lea ecx, [edx*8]
and ecx, 0x7fff8
mov dword [ebx + 0x40774], ecx
mov ecx, eax
shr ecx, 0xc
and ecx, 7
shl edi, cl
mov ecx, edx
shr ecx, 0x17
mov word [ebx + 0x40780], di
mov edi, edx
and ecx, 7
shr edi, 0x11
shl esi, cl
mov ecx, eax
and edi, 1
shr cl, 2
mov word [ebx + 0x40782], si
mov esi, edx
and ecx, 7
shr esi, 0x10
mov byte [ebx + 0x40784], cl
mov ecx, eax
and esi, 1
shr cl, 6
mov byte [ebx + 0x40785], cl
mov ecx, eax
mov eax, edx
shr edx, 0x13
shr eax, 0xa
shr cl, 5
mov byte [ebx + 0x4078a], dl
mov edx, dword [ebx]
and eax, 0x100
and ecx, 1
and byte [ebx + 0x4078a], 1
or eax, edi
mov dword [ebp - 0x348], edx
shl eax, 8
or eax, esi
shl eax, 8
or eax, ecx
mov dword [ebx + 0x40786], eax
jmp 0x583c30
mov eax, dword [ebx + 0x3e594]
mov esi, dword [ebx]
mov ecx, eax
mov edx, eax
mov dword [ebp - 0x348], esi
shr ecx, 0x1c
bswap edx
and ecx, 3
mov byte [ebx + 0x4079a], cl
mov ecx, eax
and eax, 0x3f
shr ecx, 8
mov byte [ebx + 0x40798], al
mov eax, edx
and ecx, 0x1f
shr eax, 0xb
and eax, 1
cmp cl, 0x1f
mov byte [ebx + 0x40799], cl
sete cl
shr edx, 0xe
or eax, ecx
mov byte [ebx + 0x4079c], dl
mov byte [ebx + 0x4079b], al
and byte [ebx + 0x4079c], 1
jmp 0x583c30
mov esi, dword [ebx + 0x3e594]
mov edx, dword [ebx]
bswap esi
and esi, 0x1fff
mov dword [ebp - 0x348], edx
mov dword [ebx + 0x40778], esi
jmp 0x583c30
neg eax
and eax, 0x7ffff
mov dword [ebp - 0x350], eax
fild dword [ebp - 0x350]
fchs
fstp dword [ebp - 0x350]
jmp 0x5844b6
fstp st(0)
fstp st(0)
jmp 0x586910
fstp st(0)
jmp 0x586910
fstp st(0)
lea esi, [esi]
add esi, 0x48
lea edx, [ebp - 0x18]
cmp edx, esi
jne 0x585d8c
mov esi, dword [ebx + 0x3e584]
and esi, 0xfffffffd
jmp 0x585f87
movzx ecx, dx
mov dword [ebp - 0x350], ecx
fild dword [ebp - 0x350]
fstp dword [ebp - 0x350]
jmp 0x583ba9
movzx ecx, dx
mov dword [ebp - 0x350], ecx
fild dword [ebp - 0x350]
fstp dword [ebp - 0x350]
jmp 0x584a12
movzx ecx, dx
mov dword [ebp - 0x350], ecx
fild dword [ebp - 0x350]
fstp dword [ebp - 0x350]
jmp 0x586215
neg edx
and edx, 0x7ffff
mov dword [ebp - 0x350], edx
fild dword [ebp - 0x350]
fchs
fstp dword [ebp - 0x350]
jmp 0x5842e0
lea esi, [eax + eax*4]
lea ecx, [ebp - 0x330]
mov dword [esp], esi
call method.gx_matrix.operator___unsigned_int_
movss xmm2, dword [ebp - 0x350]
sub esp, 4
movss dword [eax], xmm2
jmp 0x584337
movzx eax, byte [ebx + 0x3ea9d]
cmp al, 2
je 0x587885
ja 0x586c33
test al, al
je 0x5879a0
lea ecx, [ebx + 0x46780]
lea edx, [ebp - 0x330]
mov dword [esp + 4], ecx
lea ecx, [ebp - 0x258]
mov dword [esp], edx
call method.gx_matrix.operator_gx_matrix_const_
movdqu xmm5, xmmword [ebp - 0x258]
movdqu xmm7, xmmword [ebp - 0x248]
sub esp, 8
movdqu xmm3, xmmword [ebp - 0x238]
movdqu xmm1, xmmword [ebp - 0x228]
movups xmmword [ebx + 0x46780], xmm5
movups xmmword [ebx + 0x46790], xmm7
movups xmmword [ebx + 0x467a0], xmm3
movups xmmword [ebx + 0x467b0], xmm1
jmp 0x5843be
movzx eax, byte [ebx + 0x3ea9d]
cmp al, 2
je 0x587b33
ja 0x586b68
test al, al
je 0x587bc1
cmp byte [ebx + 0x3e588], 0x16
jne 0x588320
movdqu xmm5, xmmword [ebp - 0x330]
movdqu xmm6, xmmword [ebp - 0x320]
movdqu xmm7, xmmword [ebp - 0x310]
movdqu xmm1, xmmword [ebp - 0x300]
mov ecx, dword [ebp - 0x2f0]
mov edx, dword [ebp - 0x2ec]
movups xmmword [ebx + 0x46780], xmm5
movups xmmword [ebx + 0x46790], xmm6
mov dword [ebx + 0x467c0], ecx
mov dword [ebx + 0x467c4], edx
movups xmmword [ebx + 0x467a0], xmm7
movups xmmword [ebx + 0x467b0], xmm1
jmp 0x5843e1
cmp cl, 3
jne case.0x583b3b.13
lea ecx, [ebp - 0x330]
lea esi, [ebx + 0x46810]
mov dword [esp], ecx
lea ecx, [ebp - 0x258]
mov dword [esp + 4], esi
call method.gx_matrix.operator_gx_matrix_const_
movdqu xmm6, xmmword [ebp - 0x258]
movdqu xmm5, xmmword [ebp - 0x248]
sub esp, 8
movdqu xmm7, xmmword [ebp - 0x238]
movdqu xmm3, xmmword [ebp - 0x228]
movups xmmword [ebx + 0x46810], xmm6
movups xmmword [ebx + 0x46820], xmm5
movups xmmword [ebx + 0x46830], xmm7
movups xmmword [ebx + 0x46840], xmm3
mov esi, dword [ebp - 0x218]
mov edx, dword [ebp - 0x214]
lea ecx, [ebp - 0x258]
mov dword [ebx + 0x46850], esi
mov dword [ebx + 0x46854], edx
call method.gx_matrix.gx_matrix__
mov ecx, dword [ebx]
mov dword [ebp - 0x348], ecx
jmp 0x583c30
cmp al, 3
jne case.0x583b3b.13
cmp byte [ebx + 0x3e588], 0x16
jne 0x5884e9
movdqu xmm5, xmmword [ebp - 0x330]
movdqu xmm6, xmmword [ebp - 0x320]
movdqu xmm7, xmmword [ebp - 0x310]
movdqu xmm1, xmmword [ebp - 0x300]
movups xmmword [ebx + 0x46810], xmm5
movups xmmword [ebx + 0x46820], xmm6
movups xmmword [ebx + 0x46830], xmm7
movups xmmword [ebx + 0x46840], xmm1
mov edi, dword [ebp - 0x2f0]
mov eax, dword [ebp - 0x2ec]
mov esi, dword [ebx]
mov dword [ebx + 0x46850], edi
mov dword [ebx + 0x46854], eax
mov dword [ebp - 0x348], esi
jmp 0x583c30
cmp dl, 3
jne 0x583c30
mov edi, dword [ebx + 0x46718]
movdqu xmm3, xmmword [ebx + 0x46810]
movups xmmword [edi], xmm3
movdqu xmm4, xmmword [ebx + 0x46820]
movups xmmword [edi + 0x10], xmm4
movdqu xmm0, xmmword [ebx + 0x46830]
movups xmmword [edi + 0x20], xmm0
movdqu xmm2, xmmword [ebx + 0x46840]
movups xmmword [edi + 0x30], xmm2
mov ecx, dword [ebx + 0x46850]
mov eax, dword [ebx + 0x46854]
mov dword [edi + 0x40], ecx
mov dword [edi + 0x44], eax
jmp 0x583c30
cmp al, 3
jne case.0x583b3b.13
lea ecx, [ebp - 0x330]
lea edi, [ebx + 0x46810]
mov dword [esp], ecx
lea ecx, [ebp - 0x258]
mov dword [esp + 4], edi
call method.gx_matrix.operator_gx_matrix_const_
movdqu xmm5, xmmword [ebp - 0x258]
movdqu xmm7, xmmword [ebp - 0x248]
sub esp, 8
movdqu xmm3, xmmword [ebp - 0x238]
movdqu xmm1, xmmword [ebp - 0x228]
movups xmmword [ebx + 0x46810], xmm5
movups xmmword [ebx + 0x46820], xmm7
movups xmmword [ebx + 0x46830], xmm3
movups xmmword [ebx + 0x46840], xmm1
jmp 0x586b38
cmp cl, 3
jne 0x583c30
mov edi, dword [ebx + 0x46718]
movdqu xmm3, xmmword [edi]
movups xmmword [ebx + 0x46810], xmm3
movdqu xmm4, xmmword [edi + 0x10]
movups xmmword [ebx + 0x46820], xmm4
movdqu xmm0, xmmword [edi + 0x20]
movups xmmword [ebx + 0x46830], xmm0
movdqu xmm2, xmmword [edi + 0x30]
movups xmmword [ebx + 0x46840], xmm2
mov esi, dword [edi + 0x44]
mov edx, dword [edi + 0x40]
mov dword [ebx + 0x46854], esi
mov dword [ebx + 0x46850], edx
jmp 0x583c30
movzx eax, byte [ebx + 0x3ea9d]
cmp al, 2
je 0x587c27
ja 0x586e48
test al, al
je 0x587cfa
cmp byte [ebx + 0x3e588], 0x17
jne 0x5882be
movdqu xmm3, xmmword [ebp - 0x330]
movdqu xmm4, xmmword [ebp - 0x320]
movdqu xmm5, xmmword [ebp - 0x310]
movdqu xmm6, xmmword [ebp - 0x300]
mov eax, dword [ebp - 0x2f0]
mov edx, dword [ebp - 0x2ec]
movups xmmword [ebx + 0x46780], xmm3
movups xmmword [ebx + 0x46790], xmm4
mov dword [ebx + 0x467c0], eax
mov dword [ebx + 0x467c4], edx
movups xmmword [ebx + 0x467a0], xmm5
movups xmmword [ebx + 0x467b0], xmm6
jmp 0x5843e1
cmp al, 3
jne case.0x583b3b.13
mov dword [esp], 4
lea ecx, [ebx + 0x46810]
call method.gx_matrix.make_identity_unsigned_int_
mov edx, dword [ebx]
sub esp, 4
mov dword [ebp - 0x348], edx
jmp 0x583c30
cmp al, 3
jne 0x583c30
mov ecx, dword [ebx + 0x46718]
movdqu xmm3, xmmword [ecx]
movups xmmword [ebx + 0x46810], xmm3
movdqu xmm4, xmmword [ecx + 0x10]
movups xmmword [ebx + 0x46820], xmm4
movdqu xmm0, xmmword [ecx + 0x20]
movups xmmword [ebx + 0x46830], xmm0
movdqu xmm2, xmmword [ecx + 0x30]
movups xmmword [ebx + 0x46840], xmm2
mov edx, dword [ecx + 0x44]
mov edi, dword [ecx + 0x40]
mov dword [ebx + 0x46854], edx
mov dword [ebx + 0x46850], edi
jmp 0x583c30
cmp dl, 3
jne 0x583c30
mov ecx, dword [ebx + 0x46718]
movdqu xmm5, xmmword [ebx + 0x46810]
movups xmmword [ecx], xmm5
movdqu xmm6, xmmword [ebx + 0x46820]
movups xmmword [ecx + 0x10], xmm6
movdqu xmm7, xmmword [ebx + 0x46830]
movups xmmword [ecx + 0x20], xmm7
movdqu xmm1, xmmword [ebx + 0x46840]
movups xmmword [ecx + 0x30], xmm1
mov eax, dword [ebx + 0x46850]
mov edi, dword [ebx + 0x46854]
mov dword [ecx + 0x40], eax
mov dword [ecx + 0x44], edi
jmp 0x583c30
cmp al, 3
jne case.0x583b3b.13
cmp byte [ebx + 0x3e588], 0x17
jne 0x58825c
movdqu xmm3, xmmword [ebp - 0x330]
movdqu xmm4, xmmword [ebp - 0x320]
movdqu xmm5, xmmword [ebp - 0x310]
movdqu xmm6, xmmword [ebp - 0x300]
movups xmmword [ebx + 0x46810], xmm3
movups xmmword [ebx + 0x46820], xmm4
movups xmmword [ebx + 0x46830], xmm5
movups xmmword [ebx + 0x46840], xmm6
jmp 0x586bb9
sub ecx, 1
not ecx
and ecx, 7
mov dword [ebp - 0x350], ecx
fild dword [ebp - 0x350]
fld1
fchs
jmp 0x5856bf
movd xmm1, eax
movq qword [ebp - 0x340], xmm1
fild qword [ebp - 0x340]
fsubp st(1)
fld1
fchs
fxch st(2)
fucompi st(2)
fstp st(1)
jp 0x586edd
je 0x586ee0
add eax, 1
shl eax, 0xc
fldz
fxch st(1)
neg eax
fucomi st(1)
fstp st(1)
jp 0x586ef5
je 0x585545
fsubr dword [0x617a60]
fmul dword [0x617a6c]
jmp 0x585545
movd xmm2, ecx
movq qword [ebp - 0x340], xmm2
fild qword [ebp - 0x340]
fsubp st(1)
fld1
fchs
fxch st(2)
fucompi st(2)
fstp st(1)
jp 0x586f28
je 0x586f2b
add ecx, 1
shl ecx, 0xc
fldz
fxch st(1)
neg ecx
fucomi st(1)
fstp st(1)
jp 0x586f40
je 0x58548b
fsubr dword [0x617a60]
fmul dword [0x617a6c]
jmp 0x58548b
movd xmm5, eax
movq qword [ebp - 0x340], xmm5
fild qword [ebp - 0x340]
fsubp st(1)
fld1
fchs
fxch st(2)
fucompi st(2)
fstp st(1)
jp 0x586f73
je 0x586f76
add eax, 1
shl eax, 0xc
fldz
fxch st(1)
neg eax
fucomi st(1)
fstp st(1)
jp 0x586f8b
je 0x5853d1
fsubr dword [0x617a60]
fmul dword [0x617a6c]
jmp 0x5853d1
neg edx
and edx, 0xf
mov dword [ebp - 0x350], edx
fild dword [ebp - 0x350]
fchs
fstp dword [ebp - 0x350]
fld dword [ebp - 0x350]
jmp 0x58506a
neg ecx
and ecx, 0xf
mov dword [ebp - 0x350], ecx
fild dword [ebp - 0x350]
fchs
fstp dword [ebp - 0x350]
fld dword [ebp - 0x350]
jmp 0x58500c
sub edi, 1
not edi
and edi, 7
mov dword [ebp - 0x350], edi
fild dword [ebp - 0x350]
fld1
fchs
jmp 0x5851c5
sub eax, 1
not eax
and eax, 7
mov dword [ebp - 0x350], eax
fild dword [ebp - 0x350]
fld1
fchs
jmp 0x585240
sub ecx, 1
not ecx
and ecx, 7
mov dword [ebp - 0x360], ecx
fild dword [ebp - 0x360]
fld1
fchs
jmp 0x585898
sub edx, 1
not edx
and edx, 7
mov dword [ebp - 0x35c], edx
fild dword [ebp - 0x35c]
fld1
fchs
jmp 0x58583a
sub edi, 1
not edi
and edi, 7
mov dword [ebp - 0x358], edi
fild dword [ebp - 0x358]
fld1
fchs
jmp 0x5857db
sub edx, 1
not edx
and edx, 7
mov dword [ebp - 0x350], edx
fild dword [ebp - 0x350]
fld1
fchs
jmp 0x58577c
sub esi, 1
not esi
and esi, 7
mov dword [ebp - 0x350], esi
fild dword [ebp - 0x350]
fld1
fchs
jmp 0x58571e
movzx edi, si
mov dword [ebp - 0x350], edi
fild dword [ebp - 0x350]
fstp dword [ebp - 0x350]
jmp 0x584710
neg esi
and esi, 7
mov dword [ebp - 0x350], esi
fild dword [ebp - 0x350]
fchs
fstp dword [ebp - 0x348]
jmp 0x5846b8
neg edi
and edi, 7
mov dword [ebp - 0x350], edi
fild dword [ebp - 0x350]
fchs
fstp dword [ebp - 0x354]
jmp 0x58465d
sub edx, 1
not edx
and edx, 7
mov dword [ebp - 0x350], edx
fild dword [ebp - 0x350]
fld1
fchs
jmp 0x585149
movd xmm4, ecx
movq qword [ebp - 0x340], xmm4
fild qword [ebp - 0x340]
fsubp st(1)
fld1
fchs
fxch st(2)
fucompi st(2)
fstp st(1)
jp 0x587144
je 0x587147
add ecx, 1
shl ecx, 0xc
fldz
fxch st(1)
neg ecx
fucomi st(1)
fstp st(1)
jp 0x58715c
je 0x5855ff
fsubr dword [0x617a60]
fmul dword [0x617a6c]
jmp 0x5855ff
and edi, 0x1ff
mov dword [ebp - 0x348], edi
fild dword [ebp - 0x348]
fmul dword [0x617a70]
fstp dword [ebp - 0x348]
jmp 0x584b98
neg esi
and esi, 0x1ff
mov dword [ebp - 0x348], esi
fild dword [ebp - 0x348]
fmul qword [0x617ab8]
fstp dword [ebp - 0x354]
jmp 0x584b68
mov edx, eax
neg edx
and edx, 0x1ff
mov dword [ebp - 0x350], edx
fild dword [ebp - 0x350]
fmul qword [0x617ab8]
fstp dword [ebp - 0x350]
jmp 0x584b3a
neg esi
and esi, 7
mov dword [ebp - 0x350], esi
fild dword [ebp - 0x350]
fchs
fstp dword [ebp - 0x354]
jmp 0x584deb
neg esi
and esi, 7
mov dword [ebp - 0x350], esi
fild dword [ebp - 0x350]
fchs
fstp dword [ebp - 0x348]
jmp 0x584d90
neg esi
and esi, 7
mov dword [ebp - 0x350], esi
fild dword [ebp - 0x350]
fchs
fstp dword [ebp - 0x350]
jmp 0x584e46
neg edi
and edi, 7
mov dword [ebp - 0x350], edi
fild dword [ebp - 0x350]
fchs
fstp dword [ebp - 0x350]
jmp 0x584010
neg edx
and edx, 7
mov dword [ebp - 0x350], edx
fild dword [ebp - 0x350]
fchs
fstp dword [ebp - 0x348]
jmp 0x583fc2
mov ecx, ebx
call method.NTR_LCD.poly_push__
test al, al
je case.0x583b3b.13
movzx ecx, byte [ebx + 0x3ea9f]
jmp 0x583f8f
mov ecx, ebx
call method.NTR_LCD.poly_push__
test al, al
je case.0x583b3b.13
movzx ecx, byte [ebx + 0x3ea9f]
jmp 0x584625
mov ecx, ebx
call method.NTR_LCD.poly_push__
test al, al
je case.0x583b3b.13
movzx ecx, byte [ebx + 0x3ea9f]
jmp 0x584b02
mov ecx, ebx
call method.NTR_LCD.poly_push__
test al, al
je case.0x583b3b.13
movzx ecx, byte [ebx + 0x3ea9f]
jmp 0x584d54
mov dword [esp], 4
lea ecx, [ebx + 0x466ac]
call method.gx_matrix.make_identity_unsigned_int_
mov byte [ebx + 0x3ea9f], 0
sub esp, 4
jmp 0x586712
lea esi, [ebx + 0x46738]
lea edi, [ebp - 0x330]
mov dword [esp + 4], esi
lea ecx, [ebp - 0x258]
mov dword [esp], edi
call method.gx_matrix.operator_gx_matrix_const_
movdqu xmm0, xmmword [ebp - 0x258]
movdqu xmm2, xmmword [ebp - 0x248]
sub esp, 8
movdqu xmm7, xmmword [ebp - 0x238]
movdqu xmm1, xmmword [ebp - 0x228]
movups xmmword [ebx + 0x46738], xmm0
movups xmmword [ebx + 0x46748], xmm2
movups xmmword [ebx + 0x46758], xmm7
movups xmmword [ebx + 0x46768], xmm1
mov edi, dword [ebp - 0x218]
mov eax, dword [ebp - 0x214]
mov dword [ebx + 0x46778], edi
mov dword [ebx + 0x4677c], eax
jmp 0x5843d6
movzx eax, byte [ebx + 0x3e597]
and eax, 0x1f
cmp al, 0x1f
je 0x58742e
movzx esi, al
mov edi, dword [ebx + 0x46700]
lea ecx, [esi + esi*8]
mov esi, dword [ebx + 0x4670c]
shl ecx, 3
movdqu xmm5, xmmword [edi + ecx]
movups xmmword [ebx + 0x46780], xmm5
movdqu xmm6, xmmword [edi + ecx + 0x10]
movups xmmword [ebx + 0x46790], xmm6
movdqu xmm7, xmmword [edi + ecx + 0x20]
movups xmmword [ebx + 0x467a0], xmm7
movdqu xmm1, xmmword [edi + ecx + 0x30]
movups xmmword [ebx + 0x467b0], xmm1
mov edx, dword [edi + ecx + 0x44]
mov eax, dword [edi + ecx + 0x40]
mov dword [ebx + 0x467c4], edx
mov dword [ebx + 0x467c0], eax
movdqu xmm3, xmmword [esi + ecx]
movups xmmword [ebx + 0x467c8], xmm3
movdqu xmm4, xmmword [esi + ecx + 0x10]
movups xmmword [ebx + 0x467d8], xmm4
movdqu xmm0, xmmword [esi + ecx + 0x20]
movups xmmword [ebx + 0x467e8], xmm0
movdqu xmm2, xmmword [esi + ecx + 0x30]
movups xmmword [ebx + 0x467f8], xmm2
mov edi, dword [esi + ecx + 0x44]
mov ecx, dword [esi + ecx + 0x40]
mov dword [ebx + 0x4680c], edi
mov dword [ebx + 0x46808], ecx
movzx eax, word [0x617aa0]
mov word [ebx + 0x406a3], ax
jmp 0x583c30
movzx edx, byte [ebx + 0x46724]
mov ecx, dword [ebx + 0x46700]
lea esi, [edx + edx*8]
mov eax, edx
lea edi, [ecx + esi*8]
cmp dl, 0x1d
ja 0x587464
add eax, 1
mov byte [ebx + 0x46724], al
movdqu xmm3, xmmword [ebx + 0x46780]
movups xmmword [edi], xmm3
movdqu xmm4, xmmword [ebx + 0x46790]
movups xmmword [edi + 0x10], xmm4
movdqu xmm0, xmmword [ebx + 0x467a0]
movups xmmword [edi + 0x20], xmm0
movdqu xmm2, xmmword [ebx + 0x467b0]
movups xmmword [edi + 0x30], xmm2
mov eax, dword [ebx + 0x467c0]
mov edx, dword [ebx + 0x467c4]
mov dword [edi + 0x40], eax
mov dword [edi + 0x44], edx
movzx esi, byte [ebx + 0x46725]
mov edi, dword [ebx + 0x4670c]
mov eax, esi
lea ecx, [esi + esi*8]
lea esi, [edi + ecx*8]
cmp al, 0x1d
ja 0x5880e8
movdqu xmm3, xmmword [ebx + 0x467c8]
add eax, 1
mov byte [ebx + 0x46725], al
movups xmmword [esi], xmm3
movdqu xmm4, xmmword [ebx + 0x467d8]
movups xmmword [esi + 0x10], xmm4
movdqu xmm0, xmmword [ebx + 0x467e8]
movups xmmword [esi + 0x20], xmm0
movdqu xmm2, xmmword [ebx + 0x467f8]
movups xmmword [esi + 0x30], xmm2
mov ecx, dword [ebx + 0x46808]
mov edi, dword [ebx + 0x4680c]
mov dword [esi + 0x40], ecx
mov dword [esi + 0x44], edi
jmp 0x583c30
movzx ecx, byte [ebx + 0x3e597]
mov eax, 1
mov edx, ecx
and edx, 0x1f
test dl, dl
cmove edx, eax
mov eax, edx
neg eax
and ecx, 0x20
cmovne eax, edx
add al, byte [ebx + 0x46724]
cmp al, 0x1e
ja 0x58742e
movzx edi, al
movzx ecx, al
mov ch, al
lea esi, [edi + edi*8]
mov eax, dword [ebx + 0x46700]
mov edi, dword [ebx + 0x4670c]
shl esi, 3
mov word [ebx + 0x46724], cx
movdqu xmm5, xmmword [eax + esi]
movups xmmword [ebx + 0x46780], xmm5
movdqu xmm6, xmmword [eax + esi + 0x10]
movups xmmword [ebx + 0x46790], xmm6
movdqu xmm7, xmmword [eax + esi + 0x20]
movups xmmword [ebx + 0x467a0], xmm7
movdqu xmm1, xmmword [eax + esi + 0x30]
movups xmmword [ebx + 0x467b0], xmm1
mov edx, dword [eax + esi + 0x44]
mov ecx, dword [eax + esi + 0x40]
mov dword [ebx + 0x467c4], edx
mov dword [ebx + 0x467c0], ecx
movdqu xmm3, xmmword [edi + esi]
movups xmmword [ebx + 0x467c8], xmm3
movdqu xmm4, xmmword [edi + esi + 0x10]
movups xmmword [ebx + 0x467d8], xmm4
movdqu xmm0, xmmword [edi + esi + 0x20]
movups xmmword [ebx + 0x467e8], xmm0
movdqu xmm2, xmmword [edi + esi + 0x30]
movups xmmword [ebx + 0x467f8], xmm2
mov edx, dword [edi + esi + 0x44]
mov esi, dword [edi + esi + 0x40]
mov dword [ebx + 0x4680c], edx
mov dword [ebx + 0x46808], esi
jmp 0x58742e
movzx edx, byte [ebx + 0x3e597]
and edx, 0x1f
cmp dl, 0x1f
je 0x583c30
movzx esi, dl
mov ecx, dword [ebx + 0x46700]
movdqu xmm5, xmmword [ebx + 0x46780]
lea edi, [esi + esi*8]
mov esi, dword [ebx + 0x4670c]
shl edi, 3
movups xmmword [ecx + edi], xmm5
movdqu xmm6, xmmword [ebx + 0x46790]
movups xmmword [ecx + edi + 0x10], xmm6
movdqu xmm7, xmmword [ebx + 0x467a0]
movups xmmword [ecx + edi + 0x20], xmm7
movdqu xmm1, xmmword [ebx + 0x467b0]
movups xmmword [ecx + edi + 0x30], xmm1
mov eax, dword [ebx + 0x467c0]
mov edx, dword [ebx + 0x467c4]
mov dword [ecx + edi + 0x40], eax
mov dword [ecx + edi + 0x44], edx
movdqu xmm3, xmmword [ebx + 0x467c8]
movups xmmword [esi + edi], xmm3
movdqu xmm4, xmmword [ebx + 0x467d8]
movups xmmword [esi + edi + 0x10], xmm4
movdqu xmm0, xmmword [ebx + 0x467e8]
movups xmmword [esi + edi + 0x20], xmm0
movdqu xmm2, xmmword [ebx + 0x467f8]
movups xmmword [esi + edi + 0x30], xmm2
mov ecx, dword [ebx + 0x46808]
mov eax, dword [ebx + 0x4680c]
mov dword [esi + edi + 0x40], ecx
mov dword [esi + edi + 0x44], eax
jmp 0x583c30
mov dword [esp + 4], 1
lea esi, [ebp - 0x2e8]
mov dword [esp], 4
mov ecx, esi
call method.gx_matrix.gx_matrix_unsigned_int__unsigned_int_
movzx edi, byte [ebx + 0x3ea9f]
sub esp, 8
mov ecx, esi
mov edi, dword [ebx + edi*4 + 0x407a0]
mov dword [esp], 0
call method.gx_matrix.operator___unsigned_int_
mov dword [eax], edi
movzx eax, byte [ebx + 0x3ea9f]
sub esp, 4
mov ecx, esi
mov edi, dword [ebx + eax*4 + 0x407b0]
mov dword [esp], 1
call method.gx_matrix.operator___unsigned_int_
sub esp, 4
mov dword [eax], edi
mov ecx, esi
mov dword [esp], 2
call method.gx_matrix.operator___unsigned_int_
sub esp, 4
mov dword [eax], 0x3d800000
mov ecx, esi
mov dword [esp], 3
call method.gx_matrix.operator___unsigned_int_
sub esp, 4
mov dword [eax], 0x3d800000
lea edi, [ebp - 0x2a0]
mov dword [esp + 4], 4
mov ecx, edi
mov dword [esp], 2
call method.gx_matrix.gx_matrix_unsigned_int__unsigned_int_
fld dword [ebx + 0x46818]
sub esp, 8
lea ecx, [ebp - 0x258]
fstp dword [ebp - 0x298]
fld dword [ebx + 0x4681c]
fstp dword [ebp - 0x294]
fld dword [ebx + 0x46828]
fstp dword [ebp - 0x288]
fld dword [ebx + 0x4682c]
fstp dword [ebp - 0x284]
fld dword [ebx + 0x46838]
fstp dword [ebp - 0x278]
fld dword [ebx + 0x4683c]
fstp dword [ebp - 0x274]
fld dword [ebx + 0x46848]
fstp dword [ebp - 0x268]
fld dword [ebx + 0x4684c]
fstp dword [ebp - 0x264]
mov dword [esp + 4], edi
mov dword [esp], esi
call method.gx_matrix.operator_gx_matrix_const_
mov ecx, dword [ebp - 0x218]
mov edx, dword [ebp - 0x214]
sub esp, 8
movdqu xmm3, xmmword [ebp - 0x258]
movdqu xmm1, xmmword [ebp - 0x248]
mov dword [ebp - 0x2a8], ecx
movdqu xmm4, xmmword [ebp - 0x238]
lea ecx, [ebp - 0x258]
movdqu xmm0, xmmword [ebp - 0x228]
mov dword [ebp - 0x2a4], edx
movups xmmword [ebp - 0x2e8], xmm3
movups xmmword [ebp - 0x2d8], xmm1
movups xmmword [ebp - 0x2c8], xmm4
movups xmmword [ebp - 0x2b8], xmm0
call method.gx_matrix.gx_matrix__
mov dword [esp], 0
mov ecx, esi
call method.gx_matrix.operator___unsigned_int_
fld dword [eax]
movzx eax, byte [ebx + 0x3ea9f]
sub esp, 4
mov ecx, esi
fstp dword [ebx + eax*4 + 0x407a0]
mov dword [esp], 1
call method.gx_matrix.operator___unsigned_int_
fld dword [eax]
movzx ecx, byte [ebx + 0x3ea9f]
sub esp, 4
fstp dword [ebx + ecx*4 + 0x407b0]
mov ecx, edi
call method.gx_matrix.gx_matrix__
mov ecx, esi
call method.gx_matrix.gx_matrix__
jmp 0x5850a5
lea esi, [ebx + 0x46780]
lea edi, [ebp - 0x330]
mov dword [esp + 4], esi
lea ecx, [ebp - 0x258]
mov dword [esp], edi
call method.gx_matrix.operator_gx_matrix_const_
mov ecx, dword [ebp - 0x218]
mov edx, dword [ebp - 0x214]
sub esp, 8
lea esi, [ebp - 0x330]
movdqu xmm5, xmmword [ebp - 0x258]
movdqu xmm7, xmmword [ebp - 0x248]
mov dword [ebx + 0x467c0], ecx
movdqu xmm3, xmmword [ebp - 0x238]
lea ecx, [ebp - 0x258]
movdqu xmm1, xmmword [ebp - 0x228]
mov dword [ebx + 0x467c4], edx
movups xmmword [ebx + 0x46780], xmm5
movups xmmword [ebx + 0x46790], xmm7
movups xmmword [ebx + 0x467a0], xmm3
movups xmmword [ebx + 0x467b0], xmm1
call method.gx_matrix.gx_matrix__
lea eax, [ebx + 0x467c8]
mov dword [esp], esi
lea ecx, [ebp - 0x258]
mov dword [esp + 4], eax
call method.gx_matrix.operator_gx_matrix_const_
movdqu xmm4, xmmword [ebp - 0x258]
movdqu xmm0, xmmword [ebp - 0x248]
sub esp, 8
movdqu xmm2, xmmword [ebp - 0x238]
movdqu xmm6, xmmword [ebp - 0x228]
movups xmmword [ebx + 0x467c8], xmm4
movups xmmword [ebx + 0x467d8], xmm0
movups xmmword [ebx + 0x467e8], xmm2
movups xmmword [ebx + 0x467f8], xmm6
mov ecx, dword [ebp - 0x218]
mov edi, dword [ebp - 0x214]
mov dword [ebx + 0x46808], ecx
lea ecx, [ebp - 0x258]
mov dword [ebx + 0x4680c], edi
call method.gx_matrix.gx_matrix__
movzx esi, word [0x617aa0]
mov ecx, dword [ebx]
mov word [ebx + 0x406a3], si
mov dword [ebp - 0x348], ecx
jmp 0x583c30
lea edx, [ebx + 0x46738]
lea eax, [ebp - 0x330]
mov dword [esp + 4], edx
lea ecx, [ebp - 0x258]
mov dword [esp], eax
call method.gx_matrix.operator_gx_matrix_const_
movdqu xmm4, xmmword [ebp - 0x258]
movdqu xmm0, xmmword [ebp - 0x248]
sub esp, 8
movdqu xmm2, xmmword [ebp - 0x238]
movdqu xmm6, xmmword [ebp - 0x228]
mov esi, dword [ebp - 0x218]
mov edi, dword [ebp - 0x214]
movups xmmword [ebx + 0x46738], xmm4
movups xmmword [ebx + 0x46748], xmm0
mov dword [ebx + 0x46778], esi
mov dword [ebx + 0x4677c], edi
movups xmmword [ebx + 0x46758], xmm2
movups xmmword [ebx + 0x46768], xmm6
jmp 0x5843d6
lea edi, [ebx + 0x46780]
lea edx, [ebp - 0x330]
mov dword [esp + 4], edi
lea ecx, [ebp - 0x258]
mov dword [esp], edx
call method.gx_matrix.operator_gx_matrix_const_
mov eax, dword [ebp - 0x218]
mov esi, dword [ebp - 0x214]
sub esp, 8
lea ecx, [ebp - 0x258]
movdqu xmm6, xmmword [ebp - 0x258]
movdqu xmm5, xmmword [ebp - 0x248]
movdqu xmm7, xmmword [ebp - 0x238]
movdqu xmm3, xmmword [ebp - 0x228]
mov dword [ebx + 0x467c0], eax
mov dword [ebx + 0x467c4], esi
movups xmmword [ebx + 0x46780], xmm6
movups xmmword [ebx + 0x46790], xmm5
movups xmmword [ebx + 0x467a0], xmm7
movups xmmword [ebx + 0x467b0], xmm3
call method.gx_matrix.gx_matrix__
cmp byte [ebx + 0x3e588], 0x1c
jne 0x5843e1
lea ecx, [ebx + 0x467c8]
lea edi, [ebp - 0x330]
mov dword [esp + 4], ecx
lea ecx, [ebp - 0x258]
mov dword [esp], edi
call method.gx_matrix.operator_gx_matrix_const_
mov eax, dword [ebp - 0x218]
mov edx, dword [ebp - 0x214]
sub esp, 8
lea ecx, [ebp - 0x258]
movdqu xmm1, xmmword [ebp - 0x258]
movdqu xmm4, xmmword [ebp - 0x248]
movdqu xmm0, xmmword [ebp - 0x238]
movdqu xmm2, xmmword [ebp - 0x228]
mov dword [ebx + 0x46808], eax
mov dword [ebx + 0x4680c], edx
movups xmmword [ebx + 0x467c8], xmm1
movups xmmword [ebx + 0x467d8], xmm4
movups xmmword [ebx + 0x467e8], xmm0
movups xmmword [ebx + 0x467f8], xmm2
call method.gx_matrix.gx_matrix__
mov byte [ebx + 0x406a4], 1
jmp 0x5843e1
cmp byte [ebx + 0x3e588], 0x16
jne 0x5883a5
movdqu xmm5, xmmword [ebp - 0x330]
movdqu xmm6, xmmword [ebp - 0x320]
movdqu xmm7, xmmword [ebp - 0x310]
movdqu xmm1, xmmword [ebp - 0x300]
mov eax, dword [ebp - 0x2f0]
mov edx, dword [ebp - 0x2ec]
movups xmmword [ebx + 0x46780], xmm5
movups xmmword [ebx + 0x46790], xmm6
mov dword [ebx + 0x467c0], eax
mov dword [ebx + 0x467c4], edx
mov dword [ebx + 0x46808], eax
mov dword [ebx + 0x4680c], edx
movups xmmword [ebx + 0x467a0], xmm7
movups xmmword [ebx + 0x467b0], xmm1
movups xmmword [ebx + 0x467c8], xmm5
movups xmmword [ebx + 0x467d8], xmm6
movups xmmword [ebx + 0x467e8], xmm7
movups xmmword [ebx + 0x467f8], xmm1
jmp 0x587985
cmp byte [ebx + 0x3e588], 0x16
jne 0x588487
movdqu xmm5, xmmword [ebp - 0x330]
movdqu xmm6, xmmword [ebp - 0x320]
movdqu xmm7, xmmword [ebp - 0x310]
movdqu xmm1, xmmword [ebp - 0x300]
mov esi, dword [ebp - 0x2f0]
mov edx, dword [ebp - 0x2ec]
movups xmmword [ebx + 0x46738], xmm5
movups xmmword [ebx + 0x46748], xmm6
mov dword [ebx + 0x46778], esi
mov dword [ebx + 0x4677c], edx
movups xmmword [ebx + 0x46758], xmm7
movups xmmword [ebx + 0x46768], xmm1
jmp 0x5843e1
cmp byte [ebx + 0x3e588], 0x17
jne 0x58817a
movdqu xmm3, xmmword [ebp - 0x330]
movdqu xmm4, xmmword [ebp - 0x320]
movdqu xmm5, xmmword [ebp - 0x310]
movdqu xmm6, xmmword [ebp - 0x300]
mov edi, dword [ebp - 0x2f0]
mov ecx, dword [ebp - 0x2ec]
movups xmmword [ebx + 0x46780], xmm3
movups xmmword [ebx + 0x46790], xmm4
mov dword [ebx + 0x467c0], edi
mov dword [ebx + 0x467c4], ecx
mov dword [ebx + 0x46808], edi
mov dword [ebx + 0x4680c], ecx
movups xmmword [ebx + 0x467a0], xmm5
movups xmmword [ebx + 0x467b0], xmm6
movups xmmword [ebx + 0x467c8], xmm3
movups xmmword [ebx + 0x467d8], xmm4
movups xmmword [ebx + 0x467e8], xmm5
movups xmmword [ebx + 0x467f8], xmm6
jmp 0x587985
mov dword [esp], 4
lea ecx, [ebx + 0x46780]
call method.gx_matrix.make_identity_unsigned_int_
sub esp, 4
lea ecx, [ebx + 0x467c8]
mov dword [esp], 4
call method.gx_matrix.make_identity_unsigned_int_
movzx esi, word [0x617aa0]
mov ecx, dword [ebx]
sub esp, 4
mov word [ebx + 0x406a3], si
mov dword [ebp - 0x348], ecx
jmp 0x583c30
cmp byte [ebx + 0x3e588], 0x17
jne 0x5872ff
movdqu xmm3, xmmword [ebp - 0x330]
movdqu xmm4, xmmword [ebp - 0x320]
movdqu xmm5, xmmword [ebp - 0x310]
movdqu xmm6, xmmword [ebp - 0x300]
mov ecx, dword [ebp - 0x2f0]
mov edx, dword [ebp - 0x2ec]
movups xmmword [ebx + 0x46738], xmm3
movups xmmword [ebx + 0x46748], xmm4
mov dword [ebx + 0x46778], ecx
mov dword [ebx + 0x4677c], edx
movups xmmword [ebx + 0x46758], xmm5
movups xmmword [ebx + 0x46768], xmm6
jmp 0x5843e1
mov dword [esp], 4
lea ecx, [ebx + 0x46738]
call method.gx_matrix.make_identity_unsigned_int_
jmp 0x5850e8
test edx, edx
mov ecx, 1
cmovne ecx, dword [ebp - 0x354]
mov edx, eax
mov dword [ebp - 0x350], edi
mov dword [ebp - 0x35c], ecx
shr ecx, 2
shl ecx, 4
lea esi, [ecx + eax]
sub ecx, 0x10
shr ecx, 4
mov dword [ebp - 0x358], esi
add ecx, 1
and ecx, 7
je 0x5885a2
cmp ecx, 1
je 0x587e6a
cmp ecx, 2
je 0x587e51
cmp ecx, 3
je 0x587e38
cmp ecx, 4
je 0x587e1f
cmp ecx, 5
je 0x587e06
cmp ecx, 6
je 0x587ded
lea ecx, [edi + 0x10]
movdqu xmm3, xmmword [eax]
lea edx, [eax + 0x10]
mov dword [ebp - 0x350], ecx
movups xmmword [edi], xmm3
mov esi, dword [ebp - 0x350]
movdqu xmm4, xmmword [edx]
add edx, 0x10
movups xmmword [esi], xmm4
add esi, 0x10
mov dword [ebp - 0x350], esi
mov ecx, dword [ebp - 0x350]
movdqu xmm7, xmmword [edx]
add edx, 0x10
movups xmmword [ecx], xmm7
add ecx, 0x10
mov dword [ebp - 0x350], ecx
mov esi, dword [ebp - 0x350]
movdqu xmm5, xmmword [edx]
add edx, 0x10
movups xmmword [esi], xmm5
add esi, 0x10
mov dword [ebp - 0x350], esi
mov ecx, dword [ebp - 0x350]
movdqu xmm0, xmmword [edx]
add edx, 0x10
movups xmmword [ecx], xmm0
add ecx, 0x10
mov dword [ebp - 0x350], ecx
mov esi, dword [ebp - 0x350]
movdqu xmm2, xmmword [edx]
add edx, 0x10
movups xmmword [esi], xmm2
add esi, 0x10
mov dword [ebp - 0x350], esi
mov ecx, dword [ebp - 0x350]
movdqu xmm6, xmmword [edx]
add edx, 0x10
mov esi, dword [ebp - 0x358]
movups xmmword [ecx], xmm6
add ecx, 0x10
mov dword [ebp - 0x350], ecx
cmp edx, esi
je 0x587eea
mov esi, dword [ebp - 0x350]
movdqu xmm1, xmmword [edx]
mov ecx, dword [ebp - 0x358]
sub edx, 0xffffff80
sub esi, 0xffffff80
movups xmmword [esi - 0x80], xmm1
movdqu xmm3, xmmword [edx - 0x70]
movups xmmword [esi - 0x70], xmm3
movdqu xmm4, xmmword [edx - 0x60]
movups xmmword [esi - 0x60], xmm4
movdqu xmm7, xmmword [edx - 0x50]
movups xmmword [esi - 0x50], xmm7
movdqu xmm5, xmmword [edx - 0x40]
movups xmmword [esi - 0x40], xmm5
movdqu xmm0, xmmword [edx - 0x30]
movups xmmword [esi - 0x30], xmm0
movdqu xmm2, xmmword [edx - 0x20]
movups xmmword [esi - 0x20], xmm2
movdqu xmm6, xmmword [edx - 0x10]
movups xmmword [esi - 0x10], xmm6
cmp edx, ecx
jne 0x587e93
mov edx, dword [ebp - 0x35c]
test dl, 3
je 0x5865eb
and edx, 0xfffffffc
mov ecx, dword [eax + edx*4]
lea esi, [edx*4]
mov dword [ebp - 0x350], esi
lea esi, [edx + 1]
mov dword [edi + edx*4], ecx
mov ecx, dword [ebp - 0x354]
cmp esi, ecx
jae 0x5865eb
mov ecx, dword [ebp - 0x350]
add edx, 2
mov esi, dword [eax + ecx + 4]
mov dword [edi + ecx + 4], esi
mov ecx, dword [ebp - 0x354]
cmp edx, ecx
jae 0x5865eb
mov edx, dword [ebp - 0x350]
mov eax, dword [eax + edx + 8]
mov dword [edi + edx + 8], eax
jmp 0x5865eb
mov dword [esp], esi
lea edi, [ebx + 0x466ac]
mov ecx, edi
call method.gx_matrix.operator___unsigned_int_
movss xmm4, dword [ebp - 0x348]
sub esp, 4
mov ecx, edi
movss dword [eax], xmm4
fld dword [ebx + 0x40760]
lea eax, [esi + 4]
fstp dword [ebp - 0x354]
mov dword [esp], eax
call method.gx_matrix.operator___unsigned_int_
movss xmm1, dword [ebp - 0x354]
sub esp, 4
lea edx, [esi + 8]
mov ecx, edi
movss dword [eax], xmm1
mov dword [esp], edx
call method.gx_matrix.operator___unsigned_int_
movss xmm7, dword [ebp - 0x350]
movss xmm5, dword [ebp - 0x348]
sub esp, 4
movss dword [eax], xmm7
movzx ecx, byte [ebx + 0x3e588]
movss dword [ebx + 0x4075c], xmm5
movss dword [ebx + 0x40764], xmm7
jmp 0x584079
mov dword [esp], esi
lea edi, [ebx + 0x466ac]
mov ecx, edi
call method.gx_matrix.operator___unsigned_int_
movss xmm5, dword [ebp - 0x348]
sub esp, 4
lea edx, [esi + 4]
mov ecx, edi
movss dword [eax], xmm5
mov dword [esp], edx
call method.gx_matrix.operator___unsigned_int_
movss xmm0, dword [ebp - 0x350]
lea ecx, [esi + 8]
sub esp, 4
movss dword [eax], xmm0
fld dword [ebx + 0x40764]
fstp dword [ebp - 0x354]
mov dword [esp], ecx
mov ecx, edi
call method.gx_matrix.operator___unsigned_int_
movss xmm2, dword [ebp - 0x354]
movss xmm6, dword [ebp - 0x348]
sub esp, 4
movss xmm3, dword [ebp - 0x350]
movss dword [eax], xmm2
movzx ecx, byte [ebx + 0x3e588]
movss dword [ebx + 0x4075c], xmm6
movss dword [ebx + 0x40760], xmm3
jmp 0x584070
fld dword [ebx + 0x4075c]
lea edi, [ebx + 0x466ac]
mov ecx, edi
fstp dword [ebp - 0x354]
mov dword [esp], esi
call method.gx_matrix.operator___unsigned_int_
movss xmm0, dword [ebp - 0x354]
sub esp, 4
mov ecx, edi
movss dword [eax], xmm0
lea eax, [esi + 4]
mov dword [esp], eax
call method.gx_matrix.operator___unsigned_int_
movss xmm2, dword [ebp - 0x348]
sub esp, 4
lea edx, [esi + 8]
mov ecx, edi
movss dword [eax], xmm2
mov dword [esp], edx
call method.gx_matrix.operator___unsigned_int_
movss xmm5, dword [ebp - 0x350]
movss xmm6, dword [ebp - 0x348]
sub esp, 4
movss dword [eax], xmm5
movss dword [ebx + 0x40760], xmm6
movss dword [ebx + 0x40764], xmm5
jmp 0x584082
movdqu xmm5, xmmword [ebx + 0x467c8]
movups xmmword [esi], xmm5
movdqu xmm6, xmmword [ebx + 0x467d8]
movups xmmword [esi + 0x10], xmm6
movdqu xmm7, xmmword [ebx + 0x467e8]
movups xmmword [esi + 0x20], xmm7
movdqu xmm1, xmmword [ebx + 0x467f8]
movups xmmword [esi + 0x30], xmm1
mov eax, dword [ebx + 0x46808]
mov edx, dword [ebx + 0x4680c]
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], edx
jmp 0x583c30
movdqu xmm5, xmmword [ebx + 0x46738]
lea edx, [eax + eax*8]
lea ecx, [esi + edx*8]
movups xmmword [ecx], xmm5
movdqu xmm6, xmmword [ebx + 0x46748]
movups xmmword [ecx + 0x10], xmm6
movdqu xmm7, xmmword [ebx + 0x46758]
movups xmmword [ecx + 0x20], xmm7
movdqu xmm1, xmmword [ebx + 0x46768]
movups xmmword [ecx + 0x30], xmm1
mov edi, dword [ebx + 0x46778]
mov eax, dword [ebx + 0x4677c]
mov dword [ecx + 0x40], edi
mov dword [ecx + 0x44], eax
jmp 0x583c30
lea esi, [ebx + 0x46780]
lea edi, [ebp - 0x330]
mov dword [esp + 4], esi
lea ecx, [ebp - 0x258]
mov dword [esp], edi
call method.gx_matrix.operator_gx_matrix_const_
mov ecx, dword [ebp - 0x218]
mov edx, dword [ebp - 0x214]
sub esp, 8
lea esi, [ebp - 0x330]
movdqu xmm0, xmmword [ebp - 0x258]
movdqu xmm2, xmmword [ebp - 0x248]
mov dword [ebx + 0x467c0], ecx
movdqu xmm6, xmmword [ebp - 0x238]
lea ecx, [ebp - 0x258]
movdqu xmm5, xmmword [ebp - 0x228]
mov dword [ebx + 0x467c4], edx
movups xmmword [ebx + 0x46780], xmm0
movups xmmword [ebx + 0x46790], xmm2
movups xmmword [ebx + 0x467a0], xmm6
movups xmmword [ebx + 0x467b0], xmm5
call method.gx_matrix.gx_matrix__
lea eax, [ebx + 0x467c8]
mov dword [esp], esi
lea ecx, [ebp - 0x258]
mov dword [esp + 4], eax
call method.gx_matrix.operator_gx_matrix_const_
movdqu xmm7, xmmword [ebp - 0x258]
movdqu xmm3, xmmword [ebp - 0x248]
sub esp, 8
movdqu xmm1, xmmword [ebp - 0x238]
movdqu xmm4, xmmword [ebp - 0x228]
movups xmmword [ebx + 0x467c8], xmm7
movups xmmword [ebx + 0x467d8], xmm3
movups xmmword [ebx + 0x467e8], xmm1
movups xmmword [ebx + 0x467f8], xmm4
jmp 0x587962
lea edx, [ebx + 0x46810]
lea eax, [ebp - 0x330]
mov dword [esp + 4], edx
lea ecx, [ebp - 0x258]
mov dword [esp], eax
call method.gx_matrix.operator_gx_matrix_const_
movdqu xmm0, xmmword [ebp - 0x258]
movdqu xmm2, xmmword [ebp - 0x248]
sub esp, 8
movdqu xmm7, xmmword [ebp - 0x238]
movdqu xmm1, xmmword [ebp - 0x228]
movups xmmword [ebx + 0x46810], xmm0
movups xmmword [ebx + 0x46820], xmm2
movups xmmword [ebx + 0x46830], xmm7
movups xmmword [ebx + 0x46840], xmm1
jmp 0x586b38
lea eax, [ebx + 0x46780]
lea esi, [ebp - 0x330]
mov dword [esp + 4], eax
lea ecx, [ebp - 0x258]
mov dword [esp], esi
call method.gx_matrix.operator_gx_matrix_const_
movdqu xmm0, xmmword [ebp - 0x258]
movdqu xmm2, xmmword [ebp - 0x248]
sub esp, 8
movdqu xmm7, xmmword [ebp - 0x238]
movdqu xmm1, xmmword [ebp - 0x228]
movups xmmword [ebx + 0x46780], xmm0
movups xmmword [ebx + 0x46790], xmm2
movups xmmword [ebx + 0x467a0], xmm7
movups xmmword [ebx + 0x467b0], xmm1
jmp 0x5843be
lea ecx, [ebx + 0x46780]
lea edi, [ebp - 0x330]
mov dword [esp + 4], ecx
lea ecx, [ebp - 0x258]
mov dword [esp], edi
call method.gx_matrix.operator_gx_matrix_const_
mov eax, dword [ebp - 0x218]
mov esi, dword [ebp - 0x214]
sub esp, 8
lea ecx, [ebp - 0x258]
movdqu xmm3, xmmword [ebp - 0x258]
movdqu xmm4, xmmword [ebp - 0x248]
movdqu xmm0, xmmword [ebp - 0x238]
movdqu xmm2, xmmword [ebp - 0x228]
mov dword [ebx + 0x467c0], eax
mov dword [ebx + 0x467c4], esi
movups xmmword [ebx + 0x46780], xmm3
movups xmmword [ebx + 0x46790], xmm4
movups xmmword [ebx + 0x467a0], xmm0
movups xmmword [ebx + 0x467b0], xmm2
call method.gx_matrix.gx_matrix__
jmp 0x5843e1
lea ecx, [ebp - 0x330]
lea esi, [ebx + 0x46780]
mov dword [esp], ecx
lea ecx, [ebp - 0x258]
mov dword [esp + 4], esi
call method.gx_matrix.operator_gx_matrix_const_
mov edi, dword [ebp - 0x218]
mov edx, dword [ebp - 0x214]
sub esp, 8
lea ecx, [ebp - 0x258]
movdqu xmm7, xmmword [ebp - 0x258]
movdqu xmm1, xmmword [ebp - 0x248]
lea esi, [ebp - 0x330]
movdqu xmm3, xmmword [ebp - 0x238]
movdqu xmm4, xmmword [ebp - 0x228]
mov dword [ebx + 0x467c0], edi
mov dword [ebx + 0x467c4], edx
movups xmmword [ebx + 0x46780], xmm7
movups xmmword [ebx + 0x46790], xmm1
movups xmmword [ebx + 0x467a0], xmm3
movups xmmword [ebx + 0x467b0], xmm4
call method.gx_matrix.gx_matrix__
lea eax, [ebx + 0x467c8]
mov dword [esp], esi
lea ecx, [ebp - 0x258]
mov dword [esp + 4], eax
call method.gx_matrix.operator_gx_matrix_const_
movdqu xmm5, xmmword [ebp - 0x258]
movdqu xmm6, xmmword [ebp - 0x248]
sub esp, 8
movdqu xmm0, xmmword [ebp - 0x238]
movdqu xmm2, xmmword [ebp - 0x228]
movups xmmword [ebx + 0x467c8], xmm5
movups xmmword [ebx + 0x467d8], xmm6
movups xmmword [ebx + 0x467e8], xmm0
movups xmmword [ebx + 0x467f8], xmm2
jmp 0x587962
lea ecx, [ebp - 0x330]
lea edx, [ebx + 0x46738]
mov dword [esp], ecx
lea ecx, [ebp - 0x258]
mov dword [esp + 4], edx
call method.gx_matrix.operator_gx_matrix_const_
movdqu xmm3, xmmword [ebp - 0x258]
movdqu xmm4, xmmword [ebp - 0x248]
sub esp, 8
movdqu xmm0, xmmword [ebp - 0x238]
movdqu xmm2, xmmword [ebp - 0x228]
movups xmmword [ebx + 0x46738], xmm3
movups xmmword [ebx + 0x46748], xmm4
movups xmmword [ebx + 0x46758], xmm0
movups xmmword [ebx + 0x46768], xmm2
jmp 0x58735c
lea edi, [ebx + 0x46810]
lea eax, [ebp - 0x330]
mov dword [esp + 4], edi
lea ecx, [ebp - 0x258]
mov dword [esp], eax
call method.gx_matrix.operator_gx_matrix_const_
movdqu xmm3, xmmword [ebp - 0x258]
movdqu xmm4, xmmword [ebp - 0x248]
sub esp, 8
movdqu xmm0, xmmword [ebp - 0x238]
movdqu xmm2, xmmword [ebp - 0x228]
movups xmmword [ebx + 0x46810], xmm3
movups xmmword [ebx + 0x46820], xmm4
movups xmmword [ebx + 0x46830], xmm0
movups xmmword [ebx + 0x46840], xmm2
jmp 0x586b38
mov byte [ebx + 0x46726], 0
movdqu xmm3, xmmword [edi]
movups xmmword [ebx + 0x46738], xmm3
movdqu xmm4, xmmword [edi + 0x10]
movups xmmword [ebx + 0x46748], xmm4
movdqu xmm0, xmmword [edi + 0x20]
movups xmmword [ebx + 0x46758], xmm0
movdqu xmm2, xmmword [edi + 0x30]
movups xmmword [ebx + 0x46768], xmm2
mov ecx, dword [edi + 0x44]
mov edi, dword [edi + 0x40]
and dword [ebx + 0x3e584], 0xffffdfff
mov dword [ebx + 0x46778], edi
mov dword [ebx + 0x4677c], ecx
jmp 0x58601f
mov esi, edi
jmp 0x587e93
mov dword [esp], 0x30000
call sym.operator_new_unsigned_int_
xor edx, edx
mov dword [ebp - 0x350], eax
mov edi, eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0x30000
mov dword [esp], eax
call sym._memset
mov ecx, dword [ebp - 0x348]
mov eax, esi
mov edx, dword [ecx + 0x70]
mov ecx, edi
sub eax, edx
lea edi, [edi + eax + 0x30000]
cmp esi, edx
je 0x58868a
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [ebp - 0x354], edx
mov dword [esp], ecx
call sym._memmove
mov edx, dword [ebp - 0x348]
mov ecx, dword [edx + 0x74]
mov edx, dword [ebp - 0x354]
cmp ecx, esi
je 0x588646
sub ecx, esi
mov dword [ebp - 0x358], edx
mov dword [esp + 8], ecx
mov dword [ebp - 0x354], ecx
mov dword [esp], edi
mov dword [esp + 4], esi
call sym._memcpy
mov eax, dword [ebp - 0x354]
mov edx, dword [ebp - 0x358]
add edi, eax
mov esi, dword [ebp - 0x348]
mov ecx, dword [esi + 0x78]
mov dword [ebp - 0x354], ecx
sub ecx, edx
mov dword [esp + 4], ecx
mov dword [esp], edx
call sym.operator_delete_void__unsigned_int_
mov edx, dword [ebp - 0x348]
mov eax, dword [ebp - 0x350]
mov dword [edx + 0x74], edi
mov edi, dword [ebx]
mov dword [edx + 0x70], eax
add eax, 0x30000
mov dword [edx + 0x78], eax
mov dword [ebp - 0x348], edi
jmp 0x5864c2
mov esi, dword [ebp - 0x348]
mov eax, dword [esi + 0x74]
mov esi, eax
sub esi, edx
cmp edx, eax
je 0x5886bb
mov dword [esp + 4], edx
mov dword [esp + 8], esi
mov dword [ebp - 0x354], edx
mov dword [esp], edi
add edi, esi
call sym._memcpy
mov edx, dword [ebp - 0x354]
jmp 0x588646
add edi, esi
test edx, edx
je 0x588663
jmp 0x588646
mov edi, dword [ebx + 0x3e584]
mov ecx, edi
and ecx, 0xc0000000
jmp 0x583eb6