Function at 0x54aa80
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5cbbfb
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
mov eax, dword [0x623ec0]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x28], esi
mov dword [esi], vtable.TreeNode.0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov byte [esi + 0x14], 0
mov dword [esi + 0x18], 0xffffffff
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
mov dword [ebp - 4], 0
mov ecx, dword [ebp + 0x14]
mov dword [esi], vtable.TMFireEffect.0
mov dword [esi + 0x24], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0x30], 0
mov dword [esi + 0x34], 0
mov dword [esi + 0x38], 0
mov dword [esi + 0x3c], 0
mov dword [esi + 0x40], 0
mov dword [esi + 0x44], 0
mov dword [0x9c25a8], 0x32
test ecx, ecx
je 0x54acaf
movq xmm0, qword [ebp + 8]
mov eax, dword [ebp + 0x10]
movq qword [esi + 0x24], xmm0
mov dword [esi + 0x2c], eax
mov dword [esi + 0x1c], 0
mov dword [esi + 0x50], 0
mov dword [esi + 0x58], 0x3f800000
movss xmm2, dword [ecx + 0x30]
addss xmm2, dword [0x604dc4]
movss xmm1, dword [ecx + 0x28]
movss xmm0, dword [ecx + 0x2c]
movss dword [esi + 0x30], xmm1
movaps xmm3, xmm0
movss dword [esi + 0x34], xmm2
movss dword [esi + 0x38], xmm0
movss xmm0, dword [esi + 0x30]
subss xmm0, dword [esi + 0x24]
movss xmm4, dword [esi + 0x34]
movss dword [esi + 0x3c], xmm0
subss xmm4, dword [esi + 0x28]
movss dword [esi + 0x40], xmm4
subss xmm3, dword [esi + 0x2c]
movss dword [esi + 0x44], xmm3
movss xmm3, dword [esi + 0x3c]
movss xmm2, dword [esi + 0x40]
movaps xmm0, xmm3
movss xmm1, dword [esi + 0x44]
mulss xmm0, xmm3
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm0, xmm2
movss dword [ebp - 0x24], xmm3
addss xmm0, xmm1
call fcn.00445ac0
movss xmm1, dword [esi + 0x44]
lea eax, [ebp - 0x20]
movss xmm2, dword [ebp - 0x24]
movss dword [esi + 0x58], xmm0
movss xmm0, dword [esi + 0x40]
push eax
push eax
mov dword [esi + 0x54], 0x2a
movss dword [ebp - 0x20], xmm2
movss dword [ebp - 0x1c], xmm0
movss dword [ebp - 0x18], xmm1
call fcn.004014c3
movq xmm0, qword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
movq qword [esi + 0x3c], xmm0
movss xmm0, dword [esi + 0x58]
mulss xmm0, dword [0x60529c]
mov dword [esi + 0x44], eax
subss xmm0, dword [0x6050bc]
call fcn.005bdc60
mov ecx, dword [0x9c25b4]
mov dword [esi + 0x4c], eax
mov eax, dword [ecx]
call dword [eax + 8]
mov dword [esi + 0x48], eax
mov eax, dword [esi + 0x4c]
cmp eax, 0x9c4
jbe 0x54ac76
mov dword [esi + 0x4c], 0x9c4
jmp 0x54ac81
test eax, eax
jne 0x54ac81
mov dword [esi + 0x4c], 1
mov ecx, dword [0x9c25cc]
test ecx, ecx
je 0x54acaf
push 0x4d
call fcn.004a8da0
mov edi, eax
test edi, edi
je 0x54acaf
mov ecx, edi
call fcn.004a85c0
test eax, eax
jne 0x54acaf
sub esp, 0xc
push eax
push ecx
mov ecx, edi
call fcn.004a86c0
mov dword [ebp - 4], 0xffffffff
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0046676f
mov esp, ebp
pop ebp
ret 0x14