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

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x120
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
mov rax, qword [0x180063010]
xor rax, rsp
mov qword [rsp + 0xe8], rax
mov qword [rsp + 0x80], rcx
xor r12d, r12d
mov dword [rsp + 0x20], r12d
cmp byte [0x1800633e9], r12b
je 0x180040544
mov rax, qword [0x180063d90]
mov rdx, qword [str.Assembly_CSharp]
mov rcx, qword [0x180063d50]
call rax
mov r9, qword [0x180063db8]
lea r8, str.StaticUnityMethods
lea rdx, [0x18004e7b8]
mov rcx, qword [rax]
call r9
mov r9, qword [0x180063dc0]
xor r8d, r8d
lea rdx, str.get_IsPlaying
mov rcx, qword [rax + 0x78]
call r9
mov rcx, qword [rax]
call rcx
test al, al
je 0x180040544
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rsp + 0xd0], xmm0
mov qword [rsp + 0xe0], rax
lea rdx, [0x180063f90]
lea rcx, [rsp + 0xd0]
call fcn.18004a8c0
nop
mov rcx, qword [rsp + 0xd0]
cmp rcx, qword [rsp + 0xd8]
jne 0x180040580
test rcx, rcx
je 0x180040544
mov rdx, qword [rsp + 0xe0]
sub rdx, rcx
and rdx, 0xfffffffffffffff0
mov rax, rcx
cmp rdx, 0x1000
jb 0x18004053f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180040af3
call fcn.18004b624
mov rcx, qword [rsp + 0xe8]
xor rcx, rsp
call fcn.18004b240
lea r11, [rsp + 0x120]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
mov rax, qword [0x180063d90]
lea rdx, str.UnityEngine.CoreModule
mov rcx, qword [0x180063d50]
call rax
mov r9, qword [0x180063db8]
lea r8, str.Camera
lea rdx, str.UnityEngine
mov rcx, qword [rax]
call r9
mov r9, qword [0x180063dc0]
xor r8d, r8d
lea rdx, str.get_main
mov rcx, qword [rax + 0x78]
call r9
mov rcx, qword [rax]
call rcx
mov r13, rax
test rax, rax
jne 0x1800405e4
mov rcx, qword [rsp + 0xd0]
jmp 0x180040506
mov r15, qword [rsp + 0xd0]
mov rax, qword [rsp + 0xd8]
mov qword [rsp + 0x28], rax
movss xmm8, dword [0x180059f60]
movss xmm7, dword [0x180059f6c]
nop word [rax + rax]
cmp r15, rax
je 0x180040aaa
mov r14, qword [r15]
test r14, r14
je 0x180040aa1
mov rax, qword [0x180063d90]
mov rdx, qword [str.Assembly_CSharp]
mov rcx, qword [0x180063d50]
call rax
mov r9, qword [0x180063db8]
lea r8, str.ItemPickupBase
lea rdx, str.InventorySystem.Items.Pickups
mov rcx, qword [rax]
call r9
mov r9, qword [0x180063dc0]
xor r8d, r8d
lea rdx, str.get_Position
mov rcx, qword [rax + 0x78]
call r9
mov rax, qword [rax]
mov rdx, r14
lea rcx, [rsp + 0x3c]
call rax
mov rax, qword [0x180063d90]
lea rdx, str.UnityEngine.CoreModule
mov rcx, qword [0x180063d50]
call rax
mov r9, qword [0x180063db8]
lea r8, str.Camera
lea rdx, str.UnityEngine
mov rcx, qword [rax]
call r9
mov r9, qword [0x180063dc0]
xor r8d, r8d
lea rdx, str.get_transform
mov rcx, qword [rax + 0x78]
call r9
mov rax, qword [rax]
mov rcx, r13
call rax
mov rbx, rax
mov r8, qword [0x180063d90]
lea rdx, str.UnityEngine.CoreModule
mov rcx, qword [0x180063d50]
call r8
mov r9, qword [0x180063db8]
lea r8, str.Transform
lea rdx, str.UnityEngine
mov rcx, qword [rax]
call r9
mov r9, qword [0x180063dc0]
xor r8d, r8d
lea rdx, str.get_position
mov rcx, qword [rax + 0x78]
call r9
mov rax, qword [rax]
mov rdx, rbx
lea rcx, [rsp + 0x30]
call rax
movss xmm1, dword [rsp + 0x34]
subss xmm1, dword [rsp + 0x40]
movss xmm2, dword [rsp + 0x30]
subss xmm2, dword [rsp + 0x3c]
movss xmm0, dword [rsp + 0x38]
subss xmm0, dword [rsp + 0x44]
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm2, xmm1
mulss xmm0, xmm0
addss xmm2, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm2
ja 0x180040772
xorps xmm0, xmm0
sqrtss xmm0, xmm2
jmp 0x18004077a
movaps xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
cvttss2si esi, xmm0
cmp esi, dword [0x180063424]
jg 0x180040a9c
movzx ecx, byte [r15 + 8]
call fcn.18003e530
mov rdi, rax
test rax, rax
je 0x180040a9c
mov rax, qword [0x180063da0]
mov rcx, rdi
call rax
mov rbx, rax
mov rax, qword [0x180063db0]
mov rcx, rbx
call rax
test al, al
je 0x1800407c7
mov rax, qword [rbx + 0x60]
mov rbx, qword [rax + 0x18]
mov rax, qword [0x180063d98]
lea rdx, str.Category
mov rcx, qword [rbx + 0x78]
call rax
lea r8, [rsp + 0xc8]
mov rdx, rax
mov rcx, rdi
call qword [0x180063d40]
movzx eax, byte [rsp + 0xc8]
dec eax
cmp eax, 8
ja case.0x180040811.3
cdqe
lea rdx, [0x180000000]
mov ecx, dword [rdx + rax*4 + 0x40afc]
add rcx, rdx
jmp rcx
movzx eax, byte [0x180063401]
jmp 0x180040850
movzx eax, byte [0x180063403]
jmp 0x180040850
movzx eax, byte [0x180063402]
jmp 0x180040850
movzx eax, byte [0x180063404]
jmp 0x180040850
movzx eax, byte [0x180063405]
jmp 0x180040850
movzx eax, byte [0x180063406]
jmp 0x180040850
movzx eax, byte [0x180063407]
test al, al
je 0x180040a9c
mov rax, qword [0x180063da0]
mov rcx, rdi
call rax
mov rbx, rax
mov rax, qword [0x180063db0]
mov rcx, rbx
call rax
test al, al
je 0x18004087f
mov rax, qword [rbx + 0x60]
mov rbx, qword [rax + 0x18]
mov rax, qword [0x180063d98]
lea rdx, str.Icon
mov rcx, qword [rbx + 0x78]
call rax
lea r8, [rsp + 0xc0]
mov rdx, rax
mov rcx, rdi
call qword [0x180063d40]
mov rbx, qword [rsp + 0xc0]
test rbx, rbx
je 0x180040a9c
mov qword [rsp + 0x20], 0
mov rax, qword [0x180063d90]
mov rdx, qword [str.Assembly_CSharp]
mov rcx, qword [0x180063d50]
call rax
mov r9, qword [0x180063db8]
lea r8, str.ItemPickupBase
lea rdx, str.InventorySystem.Items.Pickups
mov rcx, qword [rax]
call r9
mov r9, qword [0x180063dc0]
xor r8d, r8d
lea rdx, str.get_Position
mov rcx, qword [rax + 0x78]
call r9
mov rax, qword [rax]
mov rdx, r14
lea rcx, [rsp + 0x88]
call rax
movsd xmm0, qword [rsp + 0x88]
movsd qword [rsp + 0xa0], xmm0
mov eax, dword [rsp + 0x90]
mov dword [rsp + 0xa8], eax
lea r8, [rsp + 0xa0]
lea rdx, [rsp + 0x20]
mov rcx, r13
call fcn.18003e330
test al, al
je 0x180040a9c
movss xmm6, dword [rsp + 0x24]
subss xmm6, xmm8
movss xmm0, dword [rsp + 0x20]
movss dword [rsp + 0x50], xmm0
movss dword [rsp + 0x54], xmm6
mov dword [rsp + 0x58], 0x42700000
mov dword [rsp + 0x5c], 0x41a00000
mov rax, qword [0x180063d90]
mov rdx, qword [str.UnityEngine.CoreModule]
mov rcx, qword [0x180063d50]
call rax
mov r9, qword [0x180063db8]
lea r8, str.Graphics
lea rdx, str.UnityEngine
mov rcx, qword [rax]
call r9
mov r9, qword [0x180063dc0]
mov r8d, 2
lea rdx, str.DrawTexture
mov rcx, qword [rax + 0x78]
call r9
mov rax, qword [rax]
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0xb0], xmm0
mov rdx, rbx
lea rcx, [rsp + 0xb0]
call rax
addss xmm6, xmm7
movss dword [rsp + 0x24], xmm6
mov edx, esi
lea rcx, [rsp + 0x60]
call fcn.18004a9a0
or r12d, 1
lea r9, [rsp + 0x60]
cmp qword [rsp + 0x78], 0x10
cmovae r9, qword [rsp + 0x60]
movaps xmm0, xmmword [0x18005a420]
movaps xmmword [rsp + 0xb0], xmm0
lea r8, [rsp + 0xb0]
mov rdx, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x80]
call fcn.18003ec30
nop
mov rdx, qword [rsp + 0x78]
cmp rdx, 0x10
jb 0x180040a85
inc rdx
mov rcx, qword [rsp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180040a80
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180040a80
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.18004b624
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x78], 0xf
mov byte [rsp + 0x60], 0
mov rax, qword [rsp + 0x28]
add r15, 0x10
jmp 0x180040610
mov rcx, qword [rsp + 0xd0]
test rcx, rcx
je 0x180040544
mov rdx, qword [rsp + 0xe0]
sub rdx, rcx
and rdx, 0xfffffffffffffff0
mov rax, rcx
cmp rdx, 0x1000
jb 0x18004053f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18004053f
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3