Function at 0x140008880
Capabilities:
Access peb ldr_data

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rbp
push rdi
push r14
mov rbp, rsp
sub rsp, 0x80
mov rax, qword gs:[0x58]
mov rdi, rcx
mov ecx, 8
mov rsi, rdx
movaps xmmword [rsp + 0x70], xmm6
movaps xmmword [rsp + 0x60], xmm7
mov rax, qword [rax]
mov eax, dword [rcx + rax]
cmp dword [0x140083e90], eax
jg 0x140008d2f
movss xmm1, dword [0x140083c1c]
comiss xmm1, dword [0x1400797cc]
jb 0x1400088e5
mov dword [0x140083c1c], 0x3f800000
jmp 0x1400088f7
xorps xmm0, xmm0
comiss xmm0, xmm1
jbe 0x1400088f7
mov dword [0x140083c1c], 0
mov rbx, qword [0x140083c30]
lea rdx, [rbp - 0x40]
mov rax, qword [0x140083e98]
mov dword [rbp - 0x40], 2
movss xmm1, dword [rbx + 0x38f8]
lea rcx, [rbx + 0x4a50]
movss xmm6, dword [rax + 8]
movss xmm7, dword [rax + 0xc]
movss xmm0, dword [rbx + 0x38fc]
divss xmm6, dword [0x1400798c8]
divss xmm7, dword [0x1400798b8]
movss dword [rbp - 0x3c], xmm1
movss dword [rbp - 0x38], xmm0
call fcn.140030860
mov rax, qword [0x140083e98]
lea rcx, str.PSXSense
xor r14d, r14d
xor edx, edx
mov qword [rbx + 0x38f8], r14
mov r8d, 0x2003
movss xmm0, dword [rax + 8]
movss xmm1, dword [rax + 0xc]
mov rax, qword [0x140083c30]
or dword [rax + 0x49c8], 3
movss dword [rax + 0x49e8], xmm0
movss dword [rax + 0x49ec], xmm1
mov dword [rax + 0x49d0], 1
mov qword [rax + 0x49d8], r14
mov qword [rax + 0x49e0], r14
mov dword [rax + 0x49cc], 1
call fcn.1400234b0
lea rdx, [rbp + 0x20]
mov dword [rbp + 0x20], 0x42b40000
lea rcx, str.RAINBOW
mov dword [rbp + 0x24], 0x41a00000
call fcn.140046ce0
test al, al
je 0x1400089eb
cmp byte [rdi + 4], r14b
sete al
mov byte [rdi + 4], al
mov rbx, qword [0x140083c30]
mov ecx, 1
call fcn.140019c60
mov dword [rbx + 0x39d4], 0x3f800000
lea rcx, [rbx + 0x4a40]
mov dword [rbx + 0x39d8], 0x3f800000
lea rdx, [rbp - 0x40]
mov dword [rbx + 0x39dc], 0x3f800000
mov dword [rbx + 0x39e0], 0x3f800000
mov dword [rbx + 0x39f4], 0x3da7ef9e
mov dword [rbx + 0x39f8], 0x3db020c5
mov dword [rbx + 0x39fc], 0x3db851ec
mov dword [rbx + 0x3a00], 0x3f800000
mov dword [rbx + 0x3a04], 0x3da7ef9e
mov dword [rbx + 0x3a08], 0x3db020c5
mov dword [rbx + 0x3a0c], 0x3dcccccd
mov dword [rbx + 0x3a10], 0x3f800000
mov dword [rbx + 0x3a14], 0x3da7ef9e
mov dword [rbx + 0x3a18], 0x3db020c5
mov dword [rbx + 0x3a1c], 0x3dcccccd
mov dword [rbx + 0x3a20], 0x3f800000
movups xmm0, xmmword [rbx + 0x3b24]
mov dword [rbp - 0x40], 0x15
movups xmmword [rbp - 0x3c], xmm0
call fcn.140030920
cmp dword [rbx + 0x4a3c], 0x15
je 0x140008aef
mov dword [rbx + 0x3b24], 0x3da7ef9e
mov dword [rbx + 0x3b28], 0x3db020c5
mov dword [rbx + 0x3b2c], 0x3dcccccd
mov dword [rbx + 0x3b30], 0x3f800000
mov rbx, qword [0x140083c30]
lea rdx, [rbp - 0x40]
mov dword [rbp - 0x40], 0x17
movups xmm0, xmmword [rbx + 0x3b44]
lea rcx, [rbx + 0x4a40]
movups xmmword [rbp - 0x3c], xmm0
call fcn.140030920
cmp dword [rbx + 0x4a3c], 0x17
je 0x140008b49
mov dword [rbx + 0x3b44], 0x3e3d70a4
mov dword [rbx + 0x3b48], 0x3e3e76c9
mov dword [rbx + 0x3b4c], 0x3e9a9fbe
mov dword [rbx + 0x3b50], 0x3f800000
mov rbx, qword [0x140083c30]
lea rdx, [rbp - 0x40]
mov dword [rbp - 0x40], 0x16
movups xmm0, xmmword [rbx + 0x3b34]
lea rcx, [rbx + 0x4a40]
movups xmmword [rbp - 0x3c], xmm0
call fcn.140030920
cmp dword [rbx + 0x4a3c], 0x16
je 0x140008ba3
mov dword [rbx + 0x3b34], 0x3e3d70a4
mov dword [rbx + 0x3b38], 0x3e3e76c9
mov dword [rbx + 0x3b3c], 0x3e9a9fbe
mov dword [rbx + 0x3b40], 0x3f800000
mov eax, dword [rsi + 0x40]
lea r8, [rdi + 0x5c]
mov qword [rbp + 0x20], rax
lea rdx, [rdi + 5]
mov rax, qword [0x140083e98]
movss xmm0, dword [rax + 8]
movss xmm1, dword [rax + 0xc]
lea rax, [rbp + 0x20]
subss xmm0, dword [0x1400798a0]
subss xmm1, dword [0x140079878]
mov qword [rsp + 0x20], rax
unpcklps xmm0, xmm1
movq rcx, xmm0
call fcn.140008d70
mov rax, qword [0x140083e98]
movaps xmm3, xmm7
mov qword [rsp + 0x28], rsi
movaps xmm2, xmm6
mov qword [rsp + 0x20], rdi
movss xmm1, dword [rax + 0xc]
movss xmm0, dword [rax + 8]
call fcn.140009310
cmp byte [0x140083c20], r14b
je 0x140008cab
xor r8d, r8d
lea rdx, [0x140083c20]
lea rcx, str.Rumble_Test2
call fcn.1400234b0
test al, al
je 0x140008cab
lea rax, [rbp + 0x20]
mov dword [rbp + 0x20], 0xff
lea r9, [rbp + 0x28]
mov qword [rsp + 0x20], rax
lea r8, [0x140083c00]
mov dword [rbp + 0x28], r14d
lea rcx, str.Right_Motor
call fcn.140048640
lea rax, [rbp + 0x20]
mov dword [rbp + 0x20], 0xff
lea r9, [rbp + 0x28]
mov qword [rsp + 0x20], rax
lea r8, [0x140083e60]
mov dword [rbp + 0x28], r14d
lea rcx, str.Left_Motor
call fcn.140048640
movzx eax, byte [0x140083c00]
mov byte [0x140083c38], al
movzx eax, byte [0x140083e60]
mov byte [0x140083c39], al
call fcn.140025ae0
mov r8, qword [0x140083c30]
mov r9d, 3
mov eax, dword [r8 + 0x4a40]
cmp eax, r9d
jge 0x140008cd0
mov r9d, eax
test eax, eax
jle 0x140008d09
nop dword [rax + rax]
mov rcx, qword [r8 + 0x4a48]
dec r9d
cdqe
lea rdx, [rax + rax*4]
movsxd rax, dword [rcx + rdx*4 - 0x14]
movups xmm0, xmmword [rcx + rdx*4 - 0x10]
add rax, rax
movups xmmword [r8 + rax*8 + 0x39d4], xmm0
dec dword [r8 + 0x4a40]
mov eax, dword [r8 + 0x4a40]
test r9d, r9d
jg 0x140008cd0
movaps xmm6, xmmword [rsp + 0x70]
lea r11, [rsp + 0x80]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
movaps xmm7, xmmword [rsp + 0x60]
mov rsp, r11
pop r14
pop rdi
pop rbp
jmp fcn.140025ae0
lea rcx, [0x140083e90]
call fcn.14004ea18
cmp dword [0x140083e90], 0xffffffff
jne 0x1400088c8
mov rax, qword [0x140083c30]
lea rcx, [0x140083e90]
add rax, 8
mov qword [0x140083e98], rax
call fcn.14004e9ac
jmp 0x1400088c8