Function at 0x1400275f0
Capabilities:
Link many functions at runtime

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0xf8]
sub rsp, 0x1d0
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm9
movaps xmmword [rax - 0x78], xmm10
movaps xmmword [rax - 0x88], xmm11
mov rax, qword [0x140071058]
xor rax, rsp
mov qword [rbp + 0x60], rax
xor r13d, r13d
mov byte [0x140071f18], r13b
mov byte [0x140071f28], r13b
mov rdx, qword [0x140071d30]
add rdx, qword [0x140071ee0]
mov rcx, qword [0x140071ed0]
call fcn.140028410
mov qword [0x140071f98], rax
test rax, rax
je 0x14002813b
mov rdx, qword [0x140071d10]
add rdx, rax
mov rcx, qword [0x140071ed0]
call fcn.1400284c0
mov dword [0x140071fa0], eax
test eax, eax
je 0x14002813b
mov rdx, qword [0x140071d20]
add rdx, qword [0x140071ee0]
mov rcx, qword [0x140071ed0]
call fcn.140028410
mov qword [0x140071f90], rax
mov edx, dword [0x140071fa0]
shr edx, 9
and edx, 0x3f
shl edx, 3
add rdx, 0x10
add rdx, rax
mov rcx, qword [0x140071ed0]
call fcn.140028410
mov edx, dword [0x140071fa0]
and edx, 0x1ff
imul edx, edx, 0x78
add rdx, rax
mov rcx, qword [0x140071ed0]
call fcn.140028410
mov r14, rax
test rax, rax
je 0x14002813b
mov rsi, qword [0x140071ed0]
mov rdi, qword [0x140071ee0]
add rdi, qword [0x140071d40]
xorps xmm0, xmm0
movups xmmword [rbp + 0x20], xmm0
movups xmmword [rbp + 0x30], xmm0
movups xmmword [rbp + 0x40], xmm0
movups xmmword [rbp + 0x50], xmm0
lea rcx, str.ntdll.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
lea rdx, str.NtReadVirtualMemory
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbx, rax
lea rcx, str.ntdll.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
lea rdx, str.NtWriteVirtualMemory
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x20], r13
lea r9d, [r13 + 0x40]
lea r8, [rbp + 0x20]
mov rdx, rdi
mov rcx, qword [rsi + 8]
call rbx
movaps xmm0, xmmword [rbp + 0x20]
movaps xmmword [0x140071f50], xmm0
movaps xmm1, xmmword [rbp + 0x30]
movaps xmmword [0x140071f60], xmm1
movaps xmm0, xmmword [rbp + 0x40]
movaps xmmword [0x140071f70], xmm0
movaps xmm1, xmmword [rbp + 0x50]
movaps xmmword [0x140071f80], xmm1
mov rdx, qword [0x140071ce0]
add rdx, qword [0x140071f98]
mov rcx, qword [0x140071ed0]
call fcn.1400284c0
mov dword [0x140071f2c], eax
mov rsi, qword [0x140071ed0]
mov rdi, qword [0x140071cd0]
add rdi, r14
xorps xmm9, xmm9
mov qword [rsp + 0x30], r13
mov dword [rsp + 0x38], r13d
lea rcx, str.ntdll.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
lea rdx, str.NtReadVirtualMemory
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbx, rax
lea rcx, str.ntdll.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
lea rdx, str.NtWriteVirtualMemory
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x20], r13
lea r9d, [r13 + 0xc]
lea r8, [rsp + 0x30]
mov rdx, rdi
mov rcx, qword [rsi + 8]
call rbx
movsd xmm0, qword [rsp + 0x30]
movsd qword [0x140071f1c], xmm0
mov eax, dword [rsp + 0x38]
mov dword [0x140071f24], eax
mov rdx, qword [0x140071cb8]
mov rax, qword [0x140071ee0]
add rax, 0xfffffffffffffff8
add rdx, rax
mov rcx, qword [0x140071ed0]
call fcn.140028570
mov byte [0x140071f28], al
mov byte [0x140071f18], 1
xorps xmm1, xmm1
movdqu xmmword [rbp + 8], xmm1
mov qword [rbp + 0x18], r13
lea r12d, [r13 + 1]
mov rdx, qword [0x140071f90]
add rdx, 0x10
mov rcx, qword [0x140071ed0]
call fcn.140028410
mov rcx, rax
test rax, rax
je 0x14002806b
lea r15d, [r13 + 7]
movzx ebx, byte [rsp + 0x3c]
movss xmm11, dword [0x140067800]
movss xmm10, dword [0x140067814]
nop dword [rax]
mov qword [rbp - 0x70], r13
mov qword [rbp - 0x60], r13
mov qword [rbp - 0x58], 0xf
mov byte [rbp - 0x70], 0
xorps xmm0, xmm0
movaps xmmword [rbp - 0x50], xmm0
xorps xmm1, xmm1
movaps xmmword [rbp - 0x40], xmm1
mov dword [rbp - 0x30], 0
mov qword [rbp - 0x20], r13
mov qword [rbp - 0x10], r13
mov qword [rbp - 8], 0xf
mov byte [rbp - 0x20], 0
mov eax, r12d
and eax, 0x1ff
imul edx, eax, 0x78
add rdx, rcx
mov rcx, qword [0x140071ed0]
call fcn.140028410
mov qword [rsp + 0x70], rax
test rax, rax
je 0x140027fad
mov rdx, qword [0x140071ce0]
add rdx, rax
mov rcx, qword [0x140071ed0]
call fcn.1400284c0
mov dword [rsp + 0x78], eax
cmp byte [0x140074a23], 0
je 0x140027974
cmp eax, dword [0x140071f2c]
je 0x140027fad
mov rdx, qword [rsp + 0x70]
add rdx, qword [0x140071d10]
mov rcx, qword [0x140071ed0]
call fcn.1400284c0
mov edi, eax
mov r8d, eax
shr r8d, 9
and r8d, 0x3f
shl r8d, 3
mov rdx, qword [0x140071f90]
add rdx, 0x10
add rdx, r8
mov rcx, qword [0x140071ed0]
call fcn.140028410
test rax, rax
je 0x140027fad
and edi, 0x1ff
imul edx, edi, 0x78
add rdx, rax
mov rcx, qword [0x140071ed0]
call fcn.140028410
mov qword [rbp - 0x80], rax
test rax, rax
je 0x140027fad
mov rdx, qword [0x140071d18]
add rdx, rax
mov rcx, qword [0x140071ed0]
call fcn.1400284c0
mov dword [rbp - 0x78], eax
mov rdx, qword [rbp - 0x80]
add rdx, qword [0x140071d48]
mov rcx, qword [0x140071ed0]
call fcn.1400284c0
mov dword [rbp - 0x74], eax
mov eax, dword [rbp - 0x78]
dec eax
cmp eax, 0x63
ja 0x140027fad
cmp byte [0x140074a23], 0
je 0x140027a40
mov rax, qword [0x140071f98]
cmp qword [rbp - 0x80], rax
je 0x140027fad
mov r8, qword [0x140071d00]
add r8, qword [rsp + 0x70]
lea rdx, [rbp + 0x20]
call fcn.1400281b0
mov rdi, rax
lea rax, [rbp - 0x70]
cmp rax, rdi
je 0x140027ad0
mov rdx, qword [rbp - 0x58]
cmp rdx, 0x10
jb 0x140027a9c
inc rdx
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140027a97
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140028192
call fcn.14002b0b0
mov qword [rbp - 0x60], r13
mov qword [rbp - 0x58], 0xf
mov byte [rbp - 0x70], 0
movups xmm0, xmmword [rdi]
movaps xmmword [rbp - 0x70], xmm0
movups xmm1, xmmword [rdi + 0x10]
movaps xmmword [rbp - 0x60], xmm1
mov qword [rdi + 0x10], r13
mov qword [rdi + 0x18], 0xf
mov byte [rdi], 0
nop word [rax + rax]
mov rdx, qword [rbp + 0x38]
cmp rdx, 0x10
jb 0x140027b0b
inc rdx
mov rcx, qword [rbp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140027b06
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140028192
call fcn.14002b0b0
mov r14, qword [0x140071ed0]
mov rsi, qword [0x140071cd0]
add rsi, qword [rbp - 0x80]
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x38], 0
lea rcx, str.ntdll.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
lea rdx, str.NtReadVirtualMemory
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rdi, rax
lea rcx, str.ntdll.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
lea rdx, str.NtWriteVirtualMemory
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x20], r13
mov r9d, 0xc
lea r8, [rsp + 0x30]
mov rdx, rsi
mov rcx, qword [r14 + 8]
call rdi
movss xmm7, dword [rsp + 0x30]
movss dword [rbp - 0x50], xmm7
movss xmm6, dword [rsp + 0x34]
movss dword [rbp - 0x4c], xmm6
movss xmm3, dword [rsp + 0x38]
movss dword [rbp - 0x48], xmm3
movaps xmm0, xmm3
addss xmm0, xmm11
movss dword [rbp - 0x44], xmm7
movss dword [rbp - 0x40], xmm6
movss dword [rbp - 0x3c], xmm0
movss xmm2, dword [0x140071f20]
movss xmm1, dword [0x140071f1c]
ucomiss xmm7, xmm1
jp 0x140027be9
jne 0x140027be9
ucomiss xmm6, xmm2
jp 0x140027be9
jne 0x140027be9
ucomiss xmm3, dword [0x140071f24]
jp 0x140027be9
je 0x140027fad
movss xmm8, dword [0x140071d94]
ucomiss xmm8, xmm10
jp 0x140027bfa
je 0x140027c31
subss xmm2, xmm6
subss xmm1, xmm7
mulss xmm1, xmm1
mulss xmm2, xmm2
addss xmm1, xmm2
xorps xmm0, xmm0
ucomiss xmm0, xmm1
ja 0x140027c1f
xorps xmm0, xmm0
sqrtss xmm0, xmm1
jmp 0x140027c27
movaps xmm0, xmm1
call fcn.1400529f0
comiss xmm0, xmm8
ja 0x140027fad
ucomiss xmm7, xmm9
jp 0x140027c45
jne 0x140027c45
ucomiss xmm6, xmm9
jp 0x140027c45
je 0x140027fad
cmp byte [0x140074a20], 0
je 0x140027d03
mov rdx, qword [rbp - 0x80]
add rdx, 0x310
mov rcx, qword [0x140071ed0]
call fcn.140028410
lea rdx, [rax + 0x1e0]
mov rcx, qword [0x140071ed0]
call fcn.140028410
mov rsi, rax
mov r14, qword [0x140071ed0]
mov qword [rsp + 0x40], 0
mov dword [rsp + 0x48], 0
lea rcx, str.ntdll.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
lea rdx, str.NtReadVirtualMemory
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rdi, rax
lea rcx, str.ntdll.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
lea rdx, str.NtWriteVirtualMemory
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [rsi + 0xc0]
mov qword [rsp + 0x20], r13
mov r9d, 0xc
lea r8, [rsp + 0x40]
mov rcx, qword [r14 + 8]
call rdi
movsd xmm0, qword [rsp + 0x40]
movsd qword [rbp - 0x38], xmm0
mov eax, dword [rsp + 0x48]
mov dword [rbp - 0x30], eax
cmp byte [0x140074a22], 0
je 0x140027f7a
mov rdx, qword [rbp - 0x80]
add rdx, qword [0x140071cd8]
mov rcx, qword [0x140071ed0]
call fcn.140028570
mov byte [rbp - 0x2c], al
mov rdx, qword [rsp + 0x70]
add rdx, qword [0x140071cc8]
mov rcx, qword [0x140071ed0]
call fcn.140028410
mov rdx, qword [0x140071ce8]
add rdx, rax
mov rcx, qword [0x140071ed0]
call fcn.1400284c0
mov dword [rbp - 0x28], eax
mov r14, qword [0x140071ed0]
mov rsi, qword [0x140071cf0]
add rsi, qword [rbp - 0x80]
mov dword [rbp], 0
lea rcx, str.ntdll.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
lea rdx, str.NtReadVirtualMemory
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rdi, rax
lea rcx, str.ntdll.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
lea rdx, str.NtWriteVirtualMemory
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x20], r13
mov r9d, 4
lea r8, [rbp]
mov rdx, rsi
mov rcx, qword [r14 + 8]
call rdi
movss xmm0, dword [rbp]
movss dword [rbp - 0x24], xmm0
mov rdx, qword [rbp - 0x80]
add rdx, qword [0x140071cc0]
mov rcx, qword [0x140071ed0]
call fcn.140028410
lea rdx, [rax + 0x360]
mov rcx, qword [0x140071ed0]
call fcn.140028410
mov r8, qword [0x140071d08]
add r8, rax
lea rdx, [rbp + 0x20]
call fcn.1400281b0
nop
mov rdi, qword [rbp + 0x30]
mov rsi, r15
cmp rdi, 7
cmovb rsi, rdi
lea rcx, [rbp + 0x20]
cmp qword [rbp + 0x38], 0x10
setae r15b
mov r14, qword [rbp + 0x20]
cmovae rcx, r14
mov r8, rsi
cmp rsi, 7
mov eax, 7
cmova r8, rax
lea rdx, str.weapon_
call fcn.14002d8c0
test eax, eax
jne 0x140027f28
cmp rsi, 7
jae 0x140027e66
mov eax, 0xffffffff
jmp 0x140027e6c
mov eax, r13d
seta al
test eax, eax
jne 0x140027f28
mov qword [rsp + 0x50], r13
mov qword [rsp + 0x60], r13
mov qword [rsp + 0x68], 0xf
cmp rdi, 7
jb 0x14002819e
lea rax, [rdi - 7]
cmp rax, rdi
cmovb rdi, rax
lea r9, [rbp + 0x20]
test r15b, r15b
cmovne r9, r14
add r9, 7
lea rcx, [rsp + 0x50]
cmp rdi, 0xf
ja 0x140027ecd
mov qword [rsp + 0x60], rdi
mov r8, rdi
mov rdx, r9
call fcn.14002cff0
mov byte [rsp + rdi + 0x50], 0
jmp 0x140027ed9
movzx r8d, bl
mov rdx, rdi
call fcn.140003d50
mov rdx, qword [rbp - 8]
cmp rdx, 0x10
jb 0x140027f14
inc rdx
mov rcx, qword [rbp - 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140027f0f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140028198
call fcn.14002b0b0
movups xmm0, xmmword [rsp + 0x50]
movaps xmmword [rbp - 0x20], xmm0
movups xmm1, xmmword [rsp + 0x60]
movaps xmmword [rbp - 0x10], xmm1
jmp 0x140027f39
lea rdx, str.Invalid_Weapon_Name
lea rcx, [rbp - 0x20]
call fcn.140003cd0
nop
mov rdx, qword [rbp + 0x38]
cmp rdx, 0x10
jb 0x140027f74
inc rdx
mov rcx, qword [rbp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140027f6f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400281a4
call fcn.14002b0b0
mov r15d, 7
mov rax, qword [rbp + 0x10]
cmp rax, qword [rbp + 0x18]
je 0x140027f9b
lea rdx, [rsp + 0x70]
mov rcx, rax
call fcn.140028860
add qword [rbp + 0x10], 0x90
jmp 0x140027fad
lea r8, [rsp + 0x70]
mov rdx, rax
lea rcx, [rbp + 8]
call fcn.140028620
nop
mov rdx, qword [rbp - 8]
cmp rdx, 0x10
jb 0x140027fe8
inc rdx
mov rcx, qword [rbp - 0x20]
cmp rdx, 0x1000
mov rax, rcx
jb 0x140027fe3
mov rcx, qword [rcx - 8]
sub rax, rcx
add rdx, 0x27
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140028186
call fcn.14002b0b0
mov rdx, qword [rbp - 0x58]
cmp rdx, 0x10
mov byte [rbp - 0x20], 0
mov qword [rbp - 8], 0xf
mov qword [rbp - 0x10], r13
jb 0x140028033
inc rdx
mov rcx, qword [rbp - 0x70]
cmp rdx, 0x1000
mov rax, rcx
jb 0x14002802e
mov rcx, qword [rcx - 8]
sub rax, rcx
add rdx, 0x27
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140028186
call fcn.14002b0b0
inc r12d
mov edx, r12d
and edx, 0x7fff
shl edx, 3
sar edx, 9
mov rax, qword [0x140071f90]
add rax, 0x10
add rdx, rax
mov rcx, qword [0x140071ed0]
call fcn.140028410
mov rcx, rax
test rax, rax
jne 0x1400278e0
mov rdi, qword [0x140071f40]
mov rbx, qword [0x140071f38]
cmp rbx, rdi
je 0x14002809b
nop
mov rcx, rbx
call fcn.140026870
add rbx, 0x90
cmp rbx, rdi
jne 0x140028080
mov rbx, qword [0x140071f38]
mov qword [0x140071f40], rbx
mov r8, qword [rbp + 0x10]
mov rdx, qword [rbp + 8]
lea rcx, [0x140071f38]
call fcn.1400289b0
nop
mov rbx, qword [rbp + 8]
test rbx, rbx
je 0x14002813b
mov rdi, qword [rbp + 0x10]
cmp rbx, rdi
je 0x1400280e8
nop dword [rax]
mov rcx, rbx
call fcn.140026870
add rbx, 0x90
cmp rbx, rdi
jne 0x1400280d0
mov rbx, qword [rbp + 8]
mov rcx, qword [rbp + 0x18]
sub rcx, rbx
movabs rax, 0xe38e38e38e38e39
imul rcx
sar rdx, 3
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea rdx, [rdx + rdx*8]
shl rdx, 4
mov rax, rbx
cmp rdx, 0x1000
jb 0x140028133
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002818c
mov rcx, rbx
call fcn.14002b0b0
mov rcx, qword [rbp + 0x60]
xor rcx, rsp
call fcn.14002b090
lea r11, [rsp + 0x1d0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.140038c44
nop
call fcn.140038c44
nop
call fcn.140038c44
nop
call fcn.140038c44
int3
call fcn.14000ba50
nop
call fcn.140038c44
int3