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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x148
push esi
push edi
mov edi, ecx
mov eax, dword [edi]
mov eax, dword [eax + 0x34]
call eax
test byte [edi + 0xb8], 1
mov dl, al
je 0x53d72c
mov ecx, dword [edi + 0x134]
test ecx, ecx
je 0x53d725
call fcn.00516a20
test al, al
je 0x53d72c
mov byte [esp + 0x17], 1
jmp 0x53d739
mov byte [esp + 0x17], 0
test dl, dl
je 0x53e473
mov eax, dword [edi]
mov ecx, edi
mov eax, dword [eax + 0x40]
call eax
mov esi, dword [edi + 0x70]
mov dword [esp + 0x2c], eax
test byte [esi + 0xd4], 2
je 0x53d893
test dword [edi + 0x20c], 0x1100
jne 0x53d893
movss xmm2, dword [edi + 0x1fc]
xorps xmm0, xmm0
mulss xmm2, dword [0x7398c0]
movss xmm1, dword [edi + 0x1f8]
mulss xmm1, dword [0x7398c0]
movups xmm5, xmmword [eax + 0x30]
movups xmm3, xmmword [eax + 0x10]
movups xmm4, xmmword [eax]
mulps xmm5, xmm0
shufps xmm1, xmm1, 0
shufps xmm2, xmm2, 0
movups xmmword [esp + 0x60], xmm1
movups xmm1, xmmword [eax + 0x20]
movups xmmword [esp + 0x50], xmm2
movups xmm0, xmmword [esp + 0x50]
xorps xmm2, xmm2
mulps xmm3, xmm0
movups xmm0, xmmword [esp + 0x60]
mulps xmm1, xmm2
mulps xmm4, xmm0
addps xmm5, xmm1
addps xmm3, xmm4
addps xmm5, xmm3
movaps xmm1, xmm5
movaps xmm0, xmm5
shufps xmm1, xmm5, 0x55
mulss xmm0, xmm5
mulss xmm1, xmm1
shufps xmm5, xmm5, 0xaa
mulss xmm5, xmm5
addss xmm1, xmm0
xorps xmm0, xmm0
addss xmm1, xmm5
cvtss2sd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x53d804
sqrtsd xmm0, xmm0
jmp 0x53d809
call fcn.006d5e50
movss xmm4, dword [edi + 0x204]
lea ecx, [esi + 0xbb0]
mov esi, dword [esp + 0x2c]
lea eax, [esp + 0x50]
xorps xmm5, xmm5
shufps xmm4, xmm4, 0
cvtsd2ss xmm5, xmm0
push eax
movups xmm0, xmmword [esi + 0x10]
movups xmm1, xmmword [esi]
movups xmm3, xmmword [esi + 0x20]
mulps xmm4, xmm0
movss xmm0, dword [edi + 0x200]
movups xmm2, xmmword [esi + 0x30]
shufps xmm0, xmm0, 0
mulps xmm0, xmm1
addps xmm4, xmm0
movss xmm0, dword [edi + 0x208]
shufps xmm0, xmm0, 0
mulps xmm0, xmm3
addps xmm4, xmm0
addps xmm4, xmm2
movaps xmm2, xmm5
movaps xmm0, xmm4
movss dword [esp + 0x54], xmm4
shufps xmm0, xmm4, 0x55
shufps xmm4, xmm4, 0xaa
movss dword [esp + 0x58], xmm0
movss dword [esp + 0x5c], xmm4
call fcn.0053afb0
test al, al
jne 0x53e473
jmp 0x53d897
mov esi, dword [esp + 0x2c]
mov eax, dword [edi + 0x20c]
mov ecx, edi
shr eax, 4
and eax, 0xffffff01
mov dword [esp + 0x48], eax
mov eax, dword [edi]
mov eax, dword [eax + 0x8c]
call eax
test al, al
jne 0x53d8cc
mov eax, dword [edi + 0x228]
test eax, eax
je 0x53d8c8
cmp eax, 0x1f
jne 0x53d8cc
xor dl, dl
jmp 0x53d8ce
mov dl, 1
mov ecx, dword [edi + 0x20c]
mov eax, ecx
shr eax, 1
shr ecx, 5
and eax, 0xffffff01
and cl, 1
mov dword [esp + 0x4c], eax
mov dword [esp + 0x1c], ecx
je 0x53d900
mov eax, dword [edi + 0x144]
mov byte [esp + 0x15], 1
cmp eax, dword [edi + 0x148]
jne 0x53d905
mov byte [esp + 0x15], 0
test dl, dl
je 0x53d962
cmp byte [esp + 0x4c], 0
je 0x53d92d
mov eax, dword [edi + 0x228]
test eax, eax
je 0x53d91f
cmp eax, 0x1f
jne 0x53d92d
mov eax, dword [edi + 0x144]
cmp eax, dword [edi + 0x148]
je 0x53d962
mov eax, dword [edi + 0x134]
test eax, eax
je 0x53d944
mov al, byte [eax + 0xb8]
shr al, 2
test al, 1
jne 0x53d962
mov ecx, dword [edi + 0x70]
add ecx, 0x29b8
push str._rt_FullFrameBuffer
call fcn.0052d1b0
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 4]
mov ecx, dword [esp + 0x1c]
cmp dword [edi + 0x21c], 0
jg 0x53dbf7
mov eax, dword [edi + 0x20c]
shr eax, 4
test al, 1
jne 0x53dbf7
cmp byte [esp + 0x17], 0
je 0x53e460
test cl, cl
je 0x53d99c
cmp byte [esp + 0x15], 0
je 0x53e460
jmp 0x53d9a7
cmp byte [esp + 0x15], 0
je 0x53db1d
mov eax, dword [edi + 0x70]
push 1
push 1
mov ecx, dword [eax + 0x28dc]
mov eax, dword [ecx]
call dword [eax + 0x6c]
mov eax, dword [edi + 0x70]
push 0
mov ecx, dword [eax + 0x28dc]
mov eax, dword [ecx]
call dword [eax + 0x58]
mov ecx, dword [edi + 0x70]
push esi
push 0
mov eax, dword [ecx + 8]
movups xmm0, xmmword [eax]
movaps xmmword [esp + 0x68], xmm0
movups xmm0, xmmword [eax + 0x10]
movaps xmmword [esp + 0x58], xmm0
movups xmm0, xmmword [eax + 0x20]
movaps xmmword [esp + 0x78], xmm0
movups xmm0, xmmword [eax + 0x30]
mov eax, dword [ecx + 4]
movaps xmmword [esp + 0x88], xmm0
movups xmm0, xmmword [eax]
movaps xmmword [esp + 0x98], xmm0
movups xmm0, xmmword [eax + 0x10]
movaps xmmword [esp + 0xa8], xmm0
movups xmm0, xmmword [eax + 0x20]
movaps xmmword [esp + 0xb8], xmm0
movups xmm0, xmmword [eax + 0x30]
mov eax, dword [ecx]
mov ecx, edi
movaps xmmword [esp + 0xc8], xmm0
movups xmm0, xmmword [eax]
movaps xmmword [esp + 0xd8], xmm0
movups xmm0, xmmword [eax + 0x10]
movaps xmmword [esp + 0xe8], xmm0
movups xmm0, xmmword [eax + 0x20]
movaps xmmword [esp + 0xf8], xmm0
movups xmm0, xmmword [eax + 0x30]
movaps xmmword [esp + 0x108], xmm0
call fcn.00540380
mov eax, dword [edi + 0x70]
movaps xmm0, xmmword [esp + 0x60]
push 0
push 1
mov eax, dword [eax + 8]
movups xmmword [eax], xmm0
movaps xmm0, xmmword [esp + 0x58]
movups xmmword [eax + 0x10], xmm0
movaps xmm0, xmmword [esp + 0x78]
movups xmmword [eax + 0x20], xmm0
movaps xmm0, xmmword [esp + 0x88]
movups xmmword [eax + 0x30], xmm0
mov eax, dword [edi + 0x70]
movaps xmm0, xmmword [esp + 0x98]
mov eax, dword [eax + 4]
movups xmmword [eax], xmm0
movaps xmm0, xmmword [esp + 0xa8]
movups xmmword [eax + 0x10], xmm0
movaps xmm0, xmmword [esp + 0xb8]
movups xmmword [eax + 0x20], xmm0
movaps xmm0, xmmword [esp + 0xc8]
movups xmmword [eax + 0x30], xmm0
mov eax, dword [edi + 0x70]
movaps xmm0, xmmword [esp + 0xd8]
mov eax, dword [eax]
movups xmmword [eax], xmm0
movaps xmm0, xmmword [esp + 0xe8]
movups xmmword [eax + 0x10], xmm0
movaps xmm0, xmmword [esp + 0xf8]
movups xmmword [eax + 0x20], xmm0
movaps xmm0, xmmword [esp + 0x108]
movups xmmword [eax + 0x30], xmm0
mov eax, dword [edi + 0x70]
mov ecx, dword [eax + 0x28dc]
mov eax, dword [ecx]
call dword [eax + 0x6c]
mov eax, dword [edi + 0x70]
mov ecx, dword [eax + 0x28dc]
mov edx, dword [ecx]
push dword [eax + 0x15c]
call dword [edx + 0x58]
mov eax, dword [edi + 0x70]
mov ecx, dword [eax]
mov byte [eax + 0x161], 1
lea edx, [ecx + 0x40]
mov dword [eax], edx
movups xmm0, xmmword [ecx]
movups xmmword [edx], xmm0
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [edx + 0x10], xmm0
movups xmm0, xmmword [ecx + 0x20]
movups xmmword [edx + 0x20], xmm0
movups xmm0, xmmword [ecx + 0x30]
mov ecx, edi
movups xmmword [edx + 0x30], xmm0
mov eax, dword [edi + 0x70]
mov edx, dword [edi]
push dword [eax]
call dword [edx + 0x54]
mov edx, dword [edi + 0x70]
lea ecx, [esp + 0x110]
push esi
mov edx, dword [edx]
call fcn.00449900
add esp, 4
movups xmm0, xmmword [eax]
movups xmm1, xmmword [eax + 0x10]
movups xmm2, xmmword [eax + 0x20]
movups xmm3, xmmword [eax + 0x30]
mov eax, dword [edi + 0x70]
mov eax, dword [eax]
movups xmmword [eax], xmm0
movups xmmword [eax + 0x10], xmm1
movups xmmword [eax + 0x20], xmm2
movups xmmword [eax + 0x30], xmm3
mov al, byte [edi + 0xb8]
shr al, 7
test al, 1
je 0x53dbb5
mov ecx, dword [edi + 0x70]
call fcn.0052d370
mov ecx, dword [edi + 0x70]
call fcn.00511d90
mov ecx, dword [edi + 0x70]
call fcn.0053b0e0
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x78]
mov al, byte [edi + 0xb8]
shr al, 7
test al, 1
je 0x53dbe5
mov eax, dword [edi + 0x70]
add dword [eax + 4], 0xffffffc0
mov byte [eax + 0x161], 1
mov eax, dword [edi + 0x70]
add dword [eax + 8], 0xffffffc0
mov byte [eax + 0x161], 1
mov eax, dword [edi + 0x70]
add dword [eax], 0xffffffc0
mov byte [eax + 0x161], 1
jmp 0x53e460
mov eax, dword [edi + 0x70]
push 1
push 1
mov ecx, dword [eax]
mov byte [eax + 0x161], 1
lea edx, [ecx + 0x40]
mov dword [eax], edx
movups xmm0, xmmword [ecx]
movups xmmword [edx], xmm0
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [edx + 0x10], xmm0
movups xmm0, xmmword [ecx + 0x20]
movups xmmword [edx + 0x20], xmm0
movups xmm0, xmmword [ecx + 0x30]
movups xmmword [edx + 0x30], xmm0
mov eax, dword [edi + 0x70]
mov ecx, dword [eax + 4]
mov byte [eax + 0x161], 1
lea edx, [ecx + 0x40]
mov dword [eax + 4], edx
movups xmm0, xmmword [ecx]
movups xmmword [edx], xmm0
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [edx + 0x10], xmm0
movups xmm0, xmmword [ecx + 0x20]
movups xmmword [edx + 0x20], xmm0
movups xmm0, xmmword [ecx + 0x30]
movups xmmword [edx + 0x30], xmm0
mov eax, dword [edi + 0x70]
mov ecx, dword [eax + 8]
mov byte [eax + 0x161], 1
lea edx, [ecx + 0x40]
mov dword [eax + 8], edx
movups xmm0, xmmword [ecx]
movups xmmword [edx], xmm0
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [edx + 0x10], xmm0
movups xmm0, xmmword [ecx + 0x20]
movups xmmword [edx + 0x20], xmm0
movups xmm0, xmmword [ecx + 0x30]
movups xmmword [edx + 0x30], xmm0
mov eax, dword [edi + 0x70]
mov ecx, dword [eax + 0x28dc]
mov eax, dword [ecx]
call dword [eax + 0x6c]
mov eax, dword [edi + 0x70]
push 0
mov ecx, dword [eax + 0x28dc]
mov eax, dword [ecx]
call dword [eax + 0x58]
mov ecx, dword [edi + 0x21c]
cmp byte [esp + 0x48], 0
lea eax, [ecx - 1]
cmove ecx, eax
mov esi, ecx
mov dword [esp + 0x44], ecx
and esi, 0x80000001
jns 0x53dcce
dec esi
or esi, 0xfffffffe
inc esi
mov eax, dword [edi + 0x70]
mov dword [esp + 0x18], esi
mov ecx, dword [eax]
mov byte [eax + 0x161], 1
lea edx, [ecx + 0x40]
mov dword [eax], edx
movups xmm0, xmmword [ecx]
movups xmmword [edx], xmm0
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [edx + 0x10], xmm0
movups xmm0, xmmword [ecx + 0x20]
movups xmmword [edx + 0x20], xmm0
movups xmm0, xmmword [ecx + 0x30]
mov ecx, dword [esp + 0x2c]
movups xmmword [edx + 0x30], xmm0
mov eax, dword [edi + 0x70]
movups xmm0, xmmword [ecx]
mov eax, dword [eax]
movups xmmword [eax], xmm0
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [ecx + 0x20]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [ecx + 0x30]
movups xmmword [eax + 0x30], xmm0
mov eax, dword [edi + 0x70]
movups xmm0, xmmword [ecx]
mov dword [esp + 0x34], eax
movups xmmword [edi + 0x280], xmm0
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [edi + 0x290], xmm0
movups xmm0, xmmword [ecx + 0x20]
movups xmmword [edi + 0x2a0], xmm0
movups xmm0, xmmword [ecx + 0x30]
movups xmmword [edi + 0x2b0], xmm0
cmp byte [eax + 0x161], 0
je 0x53dd72
mov ecx, eax
call fcn.004a5e00
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x2c]
movups xmm0, xmmword [eax + 0x870]
push ecx
push esi
movups xmmword [edi + 0x240], xmm0
mov ecx, edi
movups xmm0, xmmword [eax + 0x880]
movups xmmword [edi + 0x250], xmm0
movups xmm0, xmmword [eax + 0x890]
movups xmmword [edi + 0x260], xmm0
movups xmm0, xmmword [eax + 0x8a0]
mov eax, dword [edi + 0x70]
movups xmmword [edi + 0x270], xmm0
add dword [eax], 0xffffffc0
mov byte [eax + 0x161], 1
call fcn.00540380
cmp byte [esp + 0x1c], 0
je 0x53de29
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], 0x3f800000
push eax
lea ecx, [esp + 0x114]
call fcn.00449760
movups xmm0, xmmword [eax]
movups xmm1, xmmword [eax + 0x10]
movups xmm2, xmmword [eax + 0x20]
movups xmm3, xmmword [eax + 0x30]
mov eax, dword [edi + 0x70]
mov eax, dword [eax]
movups xmmword [eax], xmm0
movups xmmword [eax + 0x10], xmm1
movups xmmword [eax + 0x20], xmm2
movups xmmword [eax + 0x30], xmm3
mov eax, dword [edi + 0x70]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
movups xmm0, xmmword [ecx]
movups xmmword [eax], xmm0
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [ecx + 0x20]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [ecx + 0x30]
movups xmmword [eax + 0x30], xmm0
mov eax, dword [edi + 0x70]
sub esp, 0x18
mov ecx, dword [eax + 0x28dc]
mov dword [esp + 0x14], 0x447a0000
mov dword [esp + 0x10], 0xc47a0000
mov dword [esp + 0xc], 0x3f800000
mov edx, dword [ecx]
mov dword [esp + 8], 0xbf800000
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0xbf800000
push dword [eax + 8]
call dword [edx + 0xc]
mov eax, dword [edi + 0x70]
xor edx, edx
xor ecx, ecx
mov dword [esp + 0x24], edx
mov byte [esp + 0x15], dl
mov dword [esp + 0x1c], ecx
mov byte [eax + 0x161], 1
xor eax, eax
mov dword [esp + 0x30], eax
or eax, 0xffffffff
mov dword [esp + 0x40], eax
mov eax, dword [edi + 0x214]
sub eax, dword [edi + 0x210]
sar eax, 2
mov dword [esp + 0x28], eax
test eax, eax
jle 0x53e0a3
nop
mov eax, dword [edi + 0x210]
mov esi, dword [eax + ecx*4]
test byte [esi + 0x98], 1
je 0x53e08a
mov eax, dword [esi + 0x74]
xor ecx, ecx
cmp dword [esp + 0x18], ecx
mov dword [esp + 0x38], eax
mov eax, dword [esi + 0x78]
sete cl
sub eax, dword [esp + 0x38]
sar eax, 2
imul eax, eax, 0xb6db6db7
mov byte [esp + 0x16], 0
mov dword [esp + 0x20], ecx
mov dword [esp + 0x3c], 0
test eax, eax
je 0x53e08a
mov dword [esp + 0x34], 0
cmp byte [esp + 0x48], 0
jne 0x53df18
cmp edx, dword [esp + 0x44]
je 0x53e026
cmp byte [esp + 0x16], 0
jne 0x53df79
cmp byte [esp + 0x15], 0
mov byte [esp + 0x16], 1
jne 0x53df61
mov eax, dword [esi + 0x98]
shr eax, 1
test al, 1
je 0x53df5c
mov ecx, dword [edi + 0x70]
add ecx, 0x29b8
push str._rt_FullFrameBuffer
call fcn.0052d1b0
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 4]
mov ecx, dword [esp + 0x20]
mov byte [esp + 0x15], 1
jmp 0x53df61
mov byte [esp + 0x15], 0
mov ecx, dword [edi + ecx*4 + 0x1e4]
mov eax, dword [ecx + 4]
add dword [eax + 0xc], 4
mov eax, dword [eax + 0xc]
mov dword [eax], ecx
mov eax, dword [ecx]
call dword [eax + 0x24]
push 0
push dword [esp + 0x1c]
mov ecx, edi
push dword [esp + 0x44]
push esi
call fcn.0053fdb0
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
mov eax, dword [edx + ecx + 0xc]
mov edx, dword [esp + 0x24]
shr eax, 1
test al, 1
je 0x53dff4
inc edx
mov dword [esp + 0x24], edx
cmp edx, dword [esp + 0x44]
jge 0x53dff4
mov eax, dword [esp + 0x20]
mov eax, dword [edi + eax*4 + 0x1e4]
mov eax, dword [eax + 4]
add dword [eax + 0xc], 0xfffffffc
xor eax, eax
cmp dword [esp + 0x18], eax
setne al
mov dword [esp + 0x20], eax
mov ecx, dword [edi + eax*4 + 0x1e4]
mov eax, dword [ecx + 4]
add dword [eax + 0xc], 4
mov eax, dword [eax + 0xc]
mov dword [eax], ecx
mov eax, dword [ecx]
call dword [eax + 0x24]
mov edx, dword [esp + 0x24]
xor eax, eax
cmp dword [esp + 0x18], eax
sete al
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0x74]
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x34], 0x1c
inc ecx
mov dword [esp + 0x38], eax
mov eax, dword [esi + 0x78]
sub eax, dword [esp + 0x38]
sar eax, 2
imul eax, eax, 0xb6db6db7
mov dword [esp + 0x3c], ecx
cmp ecx, eax
mov ecx, dword [esp + 0x20]
jae 0x53e032
jmp 0x53df07
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x30], esi
mov dword [esp + 0x40], eax
cmp byte [esp + 0x16], 0
je 0x53e08a
mov esi, dword [edi + ecx*4 + 0x1e4]
inc edx
mov dword [esp + 0x24], edx
mov eax, dword [esi + 4]
add dword [eax + 0xc], 0xfffffffc
cmp edx, dword [esp + 0x44]
jl 0x53e082
mov eax, dword [esi + 4]
mov eax, dword [eax + 0xc]
mov ecx, dword [eax]
test ecx, ecx
je 0x53e073
mov eax, dword [ecx]
call dword [eax + 0x24]
mov ecx, dword [esp + 0x20]
mov esi, ecx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x18], esi
jmp 0x53e08e
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x28]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov esi, ecx
mov dword [esp + 0x18], esi
jmp 0x53e08e
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
inc eax
mov ecx, eax
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x28]
jl 0x53deb0
mov eax, dword [edi + 0x70]
add dword [eax + 8], 0xffffffc0
mov byte [eax + 0x161], 1
mov eax, dword [edi + 0x70]
add dword [eax + 4], 0xffffffc0
mov byte [eax + 0x161], 1
mov eax, dword [edi + 0x70]
add dword [eax], 0xffffffc0
cmp byte [esp + 0x17], 0
mov byte [eax + 0x161], 1
je 0x53e43a
cmp byte [esp + 0x4c], 0
mov eax, dword [edi + 0x70]
mov ecx, dword [eax + 8]
mov byte [eax + 0x161], 1
lea edx, [ecx + 0x40]
mov dword [eax + 8], edx
movups xmm0, xmmword [ecx]
movups xmmword [edx], xmm0
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [edx + 0x10], xmm0
movups xmm0, xmmword [ecx + 0x20]
movups xmmword [edx + 0x20], xmm0
movups xmm0, xmmword [ecx + 0x30]
movups xmmword [edx + 0x30], xmm0
mov eax, dword [edi + 0x70]
mov ecx, dword [eax + 4]
mov byte [eax + 0x161], 1
lea edx, [ecx + 0x40]
mov dword [eax + 4], edx
movups xmm0, xmmword [ecx]
movups xmmword [edx], xmm0
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [edx + 0x10], xmm0
movups xmm0, xmmword [ecx + 0x20]
movups xmmword [edx + 0x20], xmm0
movups xmm0, xmmword [ecx + 0x30]
movups xmmword [edx + 0x30], xmm0
mov eax, dword [edi + 0x70]
mov ecx, dword [eax]
mov byte [eax + 0x161], 1
lea edx, [ecx + 0x40]
mov dword [eax], edx
movups xmm0, xmmword [ecx]
movups xmmword [edx], xmm0
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [edx + 0x10], xmm0
movups xmm0, xmmword [ecx + 0x20]
movups xmmword [edx + 0x20], xmm0
movups xmm0, xmmword [ecx + 0x30]
movups xmmword [edx + 0x30], xmm0
mov edx, dword [edi + 0x70]
jne 0x53e1d4
mov eax, dword [edi]
mov ecx, edi
push dword [edx]
call dword [eax + 0x54]
mov edx, dword [edi + 0x70]
lea ecx, [esp + 0x110]
push dword [esp + 0x2c]
mov edx, dword [edx]
call fcn.00449900
add esp, 4
movups xmm0, xmmword [eax]
movups xmm1, xmmword [eax + 0x10]
movups xmm2, xmmword [eax + 0x20]
movups xmm3, xmmword [eax + 0x30]
mov eax, dword [edi + 0x70]
mov eax, dword [eax]
movups xmmword [eax], xmm0
movups xmmword [eax + 0x10], xmm1
movups xmmword [eax + 0x20], xmm2
movups xmmword [eax + 0x30], xmm3
mov al, byte [edi + 0xb8]
shr al, 7
test al, 1
je 0x53e2be
mov ecx, dword [edi + 0x70]
call fcn.0053b0e0
jmp 0x53e2be
mov eax, dword [edx + 4]
mov byte [edx + 0x161], 1
mov dword [esp + 0x28], 0x3f800000
lea ecx, [eax + 0x40]
mov dword [edx + 4], ecx
movups xmm0, xmmword [eax]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [ecx + 0x10], xmm0
movups xmm0, xmmword [eax + 0x20]
movups xmmword [ecx + 0x20], xmm0
movups xmm0, xmmword [eax + 0x30]
lea eax, [esp + 0x28]
push eax
movups xmmword [ecx + 0x30], xmm0
lea ecx, [esp + 0x114]
call fcn.00449760
lea ecx, [esp + 0x110]
mov dword [esp + 0x28], 0x3f800000
movups xmm0, xmmword [eax]
movups xmm1, xmmword [eax + 0x10]
movups xmm2, xmmword [eax + 0x20]
movups xmm3, xmmword [eax + 0x30]
mov eax, dword [edi + 0x70]
mov eax, dword [eax]
movups xmmword [eax], xmm0
movups xmmword [eax + 0x10], xmm1
movups xmmword [eax + 0x20], xmm2
movups xmmword [eax + 0x30], xmm3
lea eax, [esp + 0x28]
push eax
call fcn.00449760
sub esp, 0x18
movups xmm0, xmmword [eax]
mov dword [esp + 0x14], 0x3f800000
movups xmm1, xmmword [eax + 0x10]
mov dword [esp + 0x10], 0xbf800000
movups xmm2, xmmword [eax + 0x20]
mov dword [esp + 0xc], 0x3f800000
movups xmm3, xmmword [eax + 0x30]
mov eax, dword [edi + 0x70]
mov dword [esp + 8], 0xbf800000
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0xbf800000
mov eax, dword [eax + 4]
movups xmmword [eax], xmm0
movups xmmword [eax + 0x10], xmm1
movups xmmword [eax + 0x20], xmm2
movups xmmword [eax + 0x30], xmm3
mov eax, dword [edi + 0x70]
mov ecx, dword [eax + 0x28dc]
push dword [eax + 8]
mov edx, dword [ecx]
call dword [edx + 0xc]
cmp byte [esp + 0x48], 0
je 0x53e39a
mov eax, dword [edi + 0x70]
push 0
push 1
mov ecx, dword [eax + 0x28dc]
mov eax, dword [ecx]
call dword [eax + 0x6c]
mov eax, dword [edi + 0x70]
mov ecx, dword [eax + 0x28dc]
push dword [eax + 0x15c]
mov edx, dword [ecx]
call dword [edx + 0x58]
mov eax, dword [edi + 0x70]
mov dword [eax + 0xe4], 0x3f800000
mov eax, dword [edi + 0x70]
mov dword [eax + 0xe0], 0x3f800000
mov eax, dword [edi + 0x70]
mov dword [eax + 0xdc], 0x3f800000
mov eax, dword [edi + 0x70]
mov dword [eax + 0xd8], 0x3f800000
mov eax, dword [edi + esi*4 + 0x1e4]
mov ecx, dword [edi + 0x1e0]
mov eax, dword [eax + 0x18]
mov dword [ecx + 0x74], eax
mov ecx, edi
mov eax, dword [edi]
call dword [eax + 0x80]
mov ecx, dword [edi + 0x1e0]
call fcn.004f99a0
cmp dword [edi + 0x228], 0x1f
mov eax, dword [edi + 0x70]
mov ecx, dword [eax + 0x28dc]
mov dword [esp + 0x28], ecx
mov eax, dword [ecx]
jne 0x53e36d
push 2
call dword [eax + 0x84]
jmp 0x53e386
mov esi, dword [eax + 0x84]
mov ecx, edi
mov eax, dword [edi]
mov eax, dword [eax + 0x90]
call eax
mov ecx, dword [esp + 0x28]
push eax
call esi
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x7c]
mov ecx, dword [edi + 0x1e0]
call fcn.004fa700
jmp 0x53e3fc
mov edx, dword [esp + 0x30]
test edx, edx
je 0x53e3fc
cmp byte [esp + 0x15], 0
jne 0x53e3b9
mov edx, dword [edi + 0x70]
mov ecx, dword [esp + 0x30]
call fcn.0053b7d0
mov edx, dword [esp + 0x30]
mov eax, dword [edx + 0x78]
sub eax, dword [edx + 0x74]
mov ecx, dword [esp + 0x40]
sar eax, 2
imul eax, eax, 0xb6db6db7
cmp ecx, eax
jae 0x53e3fc
push 1
push esi
push ecx
push edx
mov ecx, edi
call fcn.0053fdb0
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x40]
inc ecx
mov dword [esp + 0x40], ecx
mov eax, dword [edx + 0x78]
sub eax, dword [edx + 0x74]
sar eax, 2
imul eax, eax, 0xb6db6db7
cmp ecx, eax
jb 0x53e3d0
cmp byte [esp + 0x4c], 0
je 0x53e411
mov eax, dword [edi + 0x70]
add dword [eax + 4], 0xffffffc0
mov byte [eax + 0x161], 1
mov eax, dword [edi + 0x70]
add dword [eax], 0xffffffc0
mov byte [eax + 0x161], 1
mov eax, dword [edi + 0x70]
add dword [eax + 4], 0xffffffc0
mov byte [eax + 0x161], 1
mov eax, dword [edi + 0x70]
add dword [eax + 8], 0xffffffc0
mov byte [eax + 0x161], 1
mov eax, dword [edi + 0x70]
push 0
push 1
mov ecx, dword [eax + 0x28dc]
mov eax, dword [ecx]
call dword [eax + 0x6c]
mov eax, dword [edi + 0x70]
mov ecx, dword [eax + 0x28dc]
push dword [eax + 0x15c]
mov edx, dword [ecx]
call dword [edx + 0x58]
mov eax, dword [edi + 0x70]
push 0
mov ecx, dword [eax + 0x28dc]
mov eax, dword [ecx]
call dword [eax + 0x84]
pop edi
pop esi
mov esp, ebp
pop ebp
ret