Function at 0x1400720d0
Capabilities:
Encrypt data using speck

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 - 0x138]
sub rsp, 0x210
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
movaps xmmword [rax - 0x98], xmm12
movaps xmmword [rax - 0xa8], xmm13
movaps xmmword [rax - 0xb8], xmm14
movaps xmmword [rax - 0xc8], xmm15
mov rax, qword [0x1400e5180]
xor rax, rsp
mov qword [rbp + 0x68], rax
mov rbx, qword [0x1400e94e0]
mov rax, qword [rbx + 0x41b8]
mov byte [rax + 0x101], 1
mov rax, qword [rbx + 0x41b8]
movss xmm1, dword [rax + 0x58]
subss xmm1, dword [rax + 0xcc]
addss xmm1, dword [0x1400ad700]
movss xmm0, dword [rax + 0x5c]
subss xmm0, dword [rax + 0xd0]
addss xmm0, dword [0x1400ad708]
movss dword [rax + 0x148], xmm1
movss dword [rax + 0x14c], xmm0
mov byte [rax + 0x189], 1
mov dword [rsp + 0x44], 0x446d0000
mov dword [rsp + 0x48], 0x43f00000
mov rax, qword [rbx + 0x41b8]
mov byte [rax + 0x101], 1
mov rbx, qword [rbx + 0x41b8]
movsxd rax, dword [rbx + 0x138]
mov r8, qword [rbx + 0x140]
mov r8d, dword [r8 + rax*4 - 4]
xor edx, edx
lea rcx, str.invChild
call fcn.140011ce0
mov edi, eax
mov rdx, qword [rbx]
cmp dword [rdx + 0x420c], eax
jne 0x140072206
lea r8, str.invChild
mov edx, 0xc
mov ecx, eax
call fcn.1400390e0
mov dword [rsp + 0x20], 4
xor r9d, r9d
lea r8, [rsp + 0x44]
mov edx, edi
lea rcx, str.invChild
call fcn.14001ab00
lea rcx, str.Kinetic_Weapon
call fcn.140052100
movss xmm10, dword [0x1400ad768]
movaps xmm1, xmm10
xorps xmm12, xmm12
xorps xmm0, xmm0
call fcn.140025e50
mov rbx, qword [0x1400e94e0]
or dword [rbx + 0x4b48], 1
mov dword [rbx + 0x4b60], 0x42340000
movdqa xmm11, xmmword [0x1400ada50]
mov dword [rbp + 0x50], 7
movups xmm0, xmmword [rbx + 0x3b7c]
movups xmmword [rbp + 0x54], xmm0
lea rcx, [rbx + 0x4c78]
lea rdx, [rbp + 0x50]
call fcn.14003a200
cmp dword [rbx + 0x4c74], 7
je 0x14007229d
movups xmmword [rbx + 0x3b7c], xmm11
movdqa xmm6, xmmword [0x1400ada70]
mov rbx, qword [0x1400e94e0]
mov dword [rbp + 0x50], 8
movups xmm0, xmmword [rbx + 0x3b8c]
movups xmmword [rbp + 0x54], xmm0
lea rcx, [rbx + 0x4c78]
lea rdx, [rbp + 0x50]
call fcn.14003a200
cmp dword [rbx + 0x4c74], 8
je 0x1400722de
movups xmmword [rbx + 0x3b8c], xmm6
mov dword [rsp + 0x44], 0x40800000
mov dword [rsp + 0x48], 0x40000000
lea rdx, [rsp + 0x44]
mov ecx, 0xb
call fcn.140012b90
mov rcx, qword [0x1400e94e0]
mov rax, qword [rcx + 0x41b8]
mov byte [rax + 0x101], 1
mov rax, qword [rcx + 0x41b8]
movss xmm0, dword [rax + 0x58]
subss xmm0, dword [rax + 0xcc]
movss xmm7, dword [0x1400ad718]
addss xmm0, xmm7
movss dword [rax + 0x148], xmm0
mov byte [rax + 0x189], 1
mov qword [rsp + 0x44], 0
mov qword [rsp + 0x38], 0
lea rdi, [0x140072070]
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], 0x101000
lea rax, [rsp + 0x44]
mov qword [rsp + 0x20], rax
mov r9d, 5
lea r8, [0x1400e52f1]
xor edx, edx
lea rcx, str.inventoryInfo.weaponQuantity1
call fcn.140057f30
movzx edx, byte [0x1400e52e7]
mov rax, qword [0x1400e94e0]
mov ecx, dword [rax + 0x4224]
test ecx, ecx
je 0x1400723b0
cmp ecx, dword [rax + 0x4b80]
jne 0x1400723b0
mov al, 1
jmp 0x1400723b2
xor al, al
mov byte [0x1400e52e7], al
test dl, dl
je 0x140072404
test al, al
jne 0x140072404
cmp byte [0x1400e52f1], al
je 0x1400723fd
lea rcx, [0x1400e52f1]
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
mov word [0x1400e9868], ax
mov rcx, qword [0x1400e9860]
add rcx, 0xca24
mov qword [0x1400e9870], rcx
lea rdx, [0x1400e9868]
call fcn.140007ae0
mov byte [0x1400e52e7], 0
movss xmm8, dword [0x1400ad6f8]
movaps xmm1, xmm8
xorps xmm0, xmm0
call fcn.140025e50
lea rcx, str.Kinetic_Model
call fcn.140052100
xorps xmm1, xmm1
movss xmm9, dword [0x1400ad728]
movaps xmm0, xmm9
call fcn.140025e50
mov rdx, qword [0x1400e94e0]
or dword [rdx + 0x4b48], 1
mov dword [rdx + 0x4b60], 0x42340000
mov qword [rsp + 0x44], 0
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], 0x101000
lea rax, [rsp + 0x44]
mov qword [rsp + 0x20], rax
mov r9d, 5
lea r8, [0x1400e5300]
xor edx, edx
lea rcx, str.inventoryInfo.modelQuantity1
call fcn.140057f30
movzx ecx, byte [0x1400e52e8]
mov rbx, qword [0x1400e94e0]
mov eax, dword [rbx + 0x4224]
test eax, eax
je 0x1400724ba
cmp eax, dword [rbx + 0x4b80]
jne 0x1400724ba
mov al, 1
jmp 0x1400724bc
xor al, al
mov byte [0x1400e52e8], al
test cl, cl
je 0x140072515
test al, al
jne 0x140072515
cmp byte [0x1400e5300], al
je 0x14007250e
lea rcx, [0x1400e5300]
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
mov word [0x1400e9878], ax
mov rcx, qword [0x1400e9860]
add rcx, 0xca26
mov qword [0x1400e9880], rcx
lea rdx, [0x1400e9878]
call fcn.140007ae0
mov rbx, qword [0x1400e94e0]
mov byte [0x1400e52e8], 0
mov dword [rbp + 0x50], 0x18
movups xmm0, xmmword [rbx + 0x3c8c]
movups xmmword [rbp + 0x54], xmm0
lea rcx, [rbx + 0x4c78]
lea rdx, [rbp + 0x50]
call fcn.14003a200
cmp dword [rbx + 0x4c74], 0x18
je 0x140072548
movups xmmword [rbx + 0x3c8c], xmm11
mov rbx, qword [0x1400e94e0]
mov dword [rbp + 0x50], 0x19
movups xmm0, xmmword [rbx + 0x3c9c]
movups xmmword [rbp + 0x54], xmm0
lea rcx, [rbx + 0x4c78]
lea rdx, [rbp + 0x50]
call fcn.14003a200
cmp dword [rbx + 0x4c74], 0x19
je 0x140072582
movups xmmword [rbx + 0x3c9c], xmm11
movdqa xmm6, xmmword [0x1400ada70]
mov rbx, qword [0x1400e94e0]
mov dword [rbp + 0x50], 0x1a
movups xmm0, xmmword [rbx + 0x3cac]
movups xmmword [rbp + 0x54], xmm0
lea rcx, [rbx + 0x4c78]
lea rdx, [rbp + 0x50]
call fcn.14003a200
cmp dword [rbx + 0x4c74], 0x1a
je 0x1400725c3
movups xmmword [rbx + 0x3cac], xmm6
mov r8, qword [0x1400e94e0]
cmp dword [0x1400e5248], 0
jne 0x1400725ff
mov rax, qword [r8 + 0x41b8]
cmp byte [rax + 0x104], 0
jne 0x1400725f5
or dword [r8 + 0x4b48], 2
mov word [r8 + 0x4b6c], 0x100
mov dword [0x1400e5248], 0xffffffff
mov rax, qword [r8 + 0x41b8]
mov byte [rax + 0x101], 1
mov rbx, qword [r8 + 0x41b8]
movss xmm6, dword [0x1400ad720]
movss xmm13, dword [0x1400ad72c]
movss xmm14, dword [0x1400ad730]
movss xmm15, dword [0x1400ad738]
cmp byte [rbx + 0x104], 0
jne 0x140072b8c
movsxd rax, dword [rbx + 0x138]
mov r8, qword [rbx + 0x140]
mov r8d, dword [r8 + rax*4 - 4]
xor edx, edx
lea rcx, str.Kinetic_Weapon_Perks
call fcn.140011ce0
mov edi, eax
mov rcx, qword [rbx]
cmp dword [rcx + 0x420c], eax
jne 0x140072685
lea r8, str.Kinetic_Weapon_Perks
mov edx, 0xc
mov ecx, eax
call fcn.1400390e0
xor r9d, r9d
lea r8, str.Kinetic_Weapon_Perks
xor edx, edx
mov ecx, edi
call fcn.14005c090
test al, al
je 0x140072b7e
mov eax, dword [0x1400e524c]
test eax, eax
jne 0x140072b69
mov r14d, 1
mov r15d, r14d
lea r13, [0x1400ad336]
lea r12, str.kinPerkInput
call fcn.140054200
mov esi, 1
nop
movaps xmm1, xmm10
movaps xmm0, xmm12
call fcn.140025e50
cmp r15, 1
jne 0x1400726fe
cmp rsi, r15
jne 0x1400726fe
lea rcx, str.Element
call fcn.140052100
movss xmm0, dword [0x1400ad714]
jmp 0x140072751
lea edx, [r14 - 1]
lea rcx, str.Perk__d
call fcn.140052100
cmp rsi, 1
jne 0x14007271e
movss xmm0, dword [0x1400ad714]
jmp 0x140072751
cmp rsi, 2
jne 0x140072729
movaps xmm0, xmm6
jmp 0x140072751
cmp rsi, 3
jne 0x140072735
movaps xmm0, xmm13
jmp 0x140072751
cmp rsi, 4
jne 0x140072741
movaps xmm0, xmm14
jmp 0x140072751
cmp rsi, 5
jne 0x14007274d
movaps xmm0, xmm15
jmp 0x140072751
movaps xmm0, xmm12
movaps xmm1, xmm10
call fcn.140025e50
mov rdx, qword [0x1400e94e0]
or dword [rdx + 0x4b48], 1
mov dword [rdx + 0x4b60], 0x42500000
lea r9, [rbp + 0x65]
mov r8d, r14d
test r14d, r14d
jns 0x1400727c0
neg r8d
dec r9
mov eax, 0xcccccccd
mul r8d
shr edx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r9], r8b
mov r8d, edx
test edx, edx
jne 0x140072781
dec r9
mov byte [r9], 0x2d
jmp 0x1400727ea
dec r9
mov eax, 0xcccccccd
mul r8d
shr edx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r9], r8b
mov r8d, edx
test edx, edx
jne 0x1400727c0
lea r8, [rbp + 0x65]
mov rdx, r9
lea rcx, [rsp + 0x50]
call fcn.140007ca0
mov r8, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x68]
mov rax, rcx
sub rax, r8
cmp rax, 0xe
jb 0x14007288b
lea rax, [r8 + 0xe]
mov qword [rsp + 0x60], rax
lea rbx, [rsp + 0x50]
cmp rcx, 0xf
cmova rbx, qword [rsp + 0x50]
cmp r13, rbx
jbe 0x140072848
lea rax, [rbx + r8]
cmp r12, rax
ja 0x140072848
cmp rbx, r12
ja 0x140072840
xor edi, edi
jmp 0x14007284d
mov rdi, rbx
sub rdi, r12
jmp 0x14007284d
mov edi, 0xe
inc r8
lea rcx, [rbx + 0xe]
mov rdx, rbx
call sub.VCRUNTIME140.dll_memmove
mov r8, rdi
mov rdx, r12
mov rcx, rbx
call sub.VCRUNTIME140.dll_memcpy
mov r8d, 0xe
sub r8, rdi
lea rdx, [r12 + 0xe]
add rdx, rdi
lea rcx, [rbx + rdi]
call sub.VCRUNTIME140.dll_memcpy
lea rax, [rsp + 0x50]
jmp 0x1400728a8
mov qword [rsp + 0x28], 0xe
mov qword [rsp + 0x20], r12
mov edx, 0xe
lea rcx, [rsp + 0x50]
call fcn.140076690
xorps xmm0, xmm0
movups xmmword [rbp - 0x30], xmm0
xor r9d, r9d
mov qword [rbp - 0x20], r9
mov qword [rbp - 0x18], r9
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x30], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x20], xmm1
mov qword [rax + 0x10], r9
mov qword [rax + 0x18], 0xf
mov byte [rax], r9b
mov rdx, qword [rsp + 0x68]
cmp rdx, 0xf
jbe 0x140072918
inc rdx
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140072910
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140072b5b
call fcn.140096bc0
xor r9d, r9d
mov qword [rsp + 0x60], r9
mov qword [rsp + 0x68], 0xf
mov byte [rsp + 0x50], 0
lea eax, [r14 - 1]
movsxd rbx, eax
mov rcx, qword [0x1400e5318]
mov r8, qword [0x1400e5310]
sub rcx, r8
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, rbx
jbe 0x1400746c7
lea rdi, [rbx + rbx*2]
lea r8, [r8 + rdi*2]
lea rcx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0xf
cmova rcx, qword [rbp - 0x30]
mov qword [rsp + 0x44], 0
mov qword [rsp + 0x38], r9
lea rax, [0x140072070]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0x101000
lea rax, [rsp + 0x44]
mov qword [rsp + 0x20], rax
xor edx, edx
mov r9d, 6
call fcn.140057f30
mov rcx, qword [0x1400e94e0]
mov edx, dword [rcx + 0x4224]
test edx, edx
je 0x1400729d2
cmp edx, dword [rcx + 0x4b80]
jne 0x1400729d2
mov byte [0x1400e52ed], 1
mov edx, dword [rcx + 0x4b88]
mov r10d, edx
and r10d, 0x20
je 0x1400729ea
mov eax, edx
shr eax, 6
test al, 1
jmp 0x140072a11
mov r8d, dword [rcx + 0x4254]
mov r9d, dword [rcx + 0x4b80]
cmp r8d, r9d
jne 0x140072ad5
test r8d, r8d
je 0x140072ad5
cmp dword [rcx + 0x4224], r9d
je 0x140072ad5
cmp byte [rcx + 0x4259], 0
jne 0x140072a3a
cmp dword [rcx + 0x4224], 0
jne 0x140072ad5
cmp byte [rcx + 0x4234], 0
je 0x140072ad5
mov rcx, qword [0x1400e5318]
mov r8, qword [0x1400e5310]
sub rcx, r8
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, rbx
jbe 0x1400746c7
lea rcx, [r8 + rdi*2]
test rcx, rcx
je 0x140072afe
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
mov word [0x1400e98d0], ax
movsxd rcx, r14d
mov rax, qword [0x1400e9860]
add rax, 0xcfba
lea rcx, [rax + rcx*2]
mov qword [0x1400e98c8], rcx
lea rdx, [0x1400e98d0]
call fcn.140007bc0
test al, al
jne 0x140072afe
lea rdx, str.perc_write_err
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140002550
lea rdx, [0x140002730]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
jmp 0x140072afe
test r10d, r10d
je 0x140072ae2
shr edx, 6
test dl, 1
jmp 0x140072afc
mov eax, dword [rcx + 0x4254]
mov edx, dword [rcx + 0x4b80]
cmp eax, edx
jne 0x140072b05
test eax, eax
je 0x140072b05
cmp dword [rcx + 0x4224], edx
je 0x140072b05
mov byte [0x1400e52ed], 0
inc r14d
mov rdx, qword [rbp - 0x18]
cmp rdx, 0xf
jbe 0x140072b3f
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140072b3a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140072b62
call fcn.140096bc0
inc rsi
cmp rsi, 6
jb 0x1400726d0
inc r15
cmp r15, 7
jb 0x1400726c5
jmp 0x140072b79
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov dword [0x1400e5248], eax
mov dword [0x1400e524c], 0
call fcn.14005c9d0
lea rdi, [0x140072070]
mov r8, qword [0x1400e94e0]
mov r13d, 3
mov r9d, r13d
mov eax, dword [r8 + 0x4c78]
cmp eax, r13d
jge 0x140072bb0
mov r9d, eax
test eax, eax
jle 0x140072be9
nop dword [rax + rax]
cdqe
lea rdx, [rax + rax*4]
mov rcx, qword [r8 + 0x4c80]
movsxd rax, dword [rcx + rdx*4 - 0x14]
add rax, rax
movups xmm0, xmmword [rcx + rdx*4 - 0x10]
movups xmmword [r8 + rax*8 + 0x3b0c], xmm0
dec dword [r8 + 0x4c78]
mov eax, dword [r8 + 0x4c78]
dec r9d
test r9d, r9d
jg 0x140072bb0
lea rcx, str.Special_Weapon
call fcn.140052100
movaps xmm1, xmm12
movaps xmm0, xmm7
call fcn.140025e50
mov rdx, qword [0x1400e94e0]
or dword [rdx + 0x4b48], 1
mov dword [rdx + 0x4b60], 0x42340000
mov qword [rsp + 0x44], 0
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], 0x101000
lea rax, [rsp + 0x44]
mov qword [rsp + 0x20], rax
mov r9d, 5
lea r8, [0x1400e52f6]
xor edx, edx
lea rcx, str.inventoryInfo.weaponQuantity2
call fcn.140057f30
movzx edx, byte [0x1400e52e9]
mov rax, qword [0x1400e94e0]
mov ecx, dword [rax + 0x4224]
test ecx, ecx
je 0x140072c81
cmp ecx, dword [rax + 0x4b80]
jne 0x140072c81
mov al, 1
jmp 0x140072c83
xor al, al
mov byte [0x1400e52e9], al
test dl, dl
je 0x140072cd5
test al, al
jne 0x140072cd5
cmp byte [0x1400e52f6], al
je 0x140072cce
lea rcx, [0x1400e52f6]
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
mov word [0x1400e9888], ax
mov rcx, qword [0x1400e9860]
add rcx, 0xca74
mov qword [0x1400e9890], rcx
lea rdx, [0x1400e9888]
call fcn.140007ae0
mov byte [0x1400e52e9], 0
movaps xmm1, xmm8
movaps xmm0, xmm12
call fcn.140025e50
lea rcx, str.Special_Model
call fcn.140052100
movaps xmm1, xmm12
movaps xmm0, xmm9
call fcn.140025e50
mov rdx, qword [0x1400e94e0]
or dword [rdx + 0x4b48], 1
mov dword [rdx + 0x4b60], 0x42340000
mov qword [rsp + 0x44], 0
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], 0x101000
lea rax, [rsp + 0x44]
mov qword [rsp + 0x20], rax
mov r9d, 5
lea r8, [0x1400e5305]
xor edx, edx
lea rcx, str.inventoryInfo.modelQuantity2
call fcn.140057f30
movzx ecx, byte [0x1400e52ea]
mov rbx, qword [0x1400e94e0]
mov eax, dword [rbx + 0x4224]
test eax, eax
je 0x140072d7b
cmp eax, dword [rbx + 0x4b80]
jne 0x140072d7b
mov al, 1
jmp 0x140072d7d
xor al, al
mov byte [0x1400e52ea], al
test cl, cl
je 0x140072dd6
test al, al
jne 0x140072dd6
cmp byte [0x1400e5305], al
je 0x140072dcf
lea rcx, [0x1400e5305]
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
mov word [0x1400e9898], ax
mov rcx, qword [0x1400e9860]
add rcx, 0xca76
mov qword [0x1400e98a0], rcx
lea rdx, [0x1400e9898]
call fcn.140007ae0
mov rbx, qword [0x1400e94e0]
mov byte [0x1400e52ea], 0
mov dword [rbp + 0x50], 0x18
movups xmm0, xmmword [rbx + 0x3c8c]
movups xmmword [rbp + 0x54], xmm0
lea rcx, [rbx + 0x4c78]
lea rdx, [rbp + 0x50]
call fcn.14003a200
cmp dword [rbx + 0x4c74], 0x18
je 0x140072e09
movups xmmword [rbx + 0x3c8c], xmm11
mov rbx, qword [0x1400e94e0]
mov dword [rbp + 0x50], 0x19
movups xmm0, xmmword [rbx + 0x3c9c]
movups xmmword [rbp + 0x54], xmm0
lea rcx, [rbx + 0x4c78]
lea rdx, [rbp + 0x50]
call fcn.14003a200
cmp dword [rbx + 0x4c74], 0x19
je 0x140072e43
movups xmmword [rbx + 0x3c9c], xmm11
movdqa xmm6, xmmword [0x1400ada70]
mov rbx, qword [0x1400e94e0]
mov dword [rbp + 0x50], 0x1a
movups xmm0, xmmword [rbx + 0x3cac]
movups xmmword [rbp + 0x54], xmm0
lea rcx, [rbx + 0x4c78]
lea rdx, [rbp + 0x50]
call fcn.14003a200
cmp dword [rbx + 0x4c74], 0x1a
je 0x140072e84
movups xmmword [rbx + 0x3cac], xmm6
mov r8, qword [0x1400e94e0]
cmp dword [0x1400e5248], 1
jne 0x140072ec0
mov rax, qword [r8 + 0x41b8]
cmp byte [rax + 0x104], 0
jne 0x140072eb6
or dword [r8 + 0x4b48], 2
mov word [r8 + 0x4b6c], 0x100
mov dword [0x1400e5248], 0xffffffff
mov rax, qword [r8 + 0x41b8]
mov byte [rax + 0x101], 1
mov rbx, qword [r8 + 0x41b8]
cmp byte [rbx + 0x104], 0
jne 0x1400734ab
movsxd rax, dword [rbx + 0x138]
mov r8, qword [rbx + 0x140]
mov r8d, dword [r8 + rax*4 - 4]
xor edx, edx
lea rcx, str.Special_Weapon_Perks
call fcn.140011ce0
mov edi, eax
mov rcx, qword [rbx]
cmp dword [rcx + 0x420c], eax
jne 0x140072f23
lea r8, str.Special_Weapon_Perks
mov edx, 0xc
mov ecx, eax
call fcn.1400390e0
xor r9d, r9d
lea r8, str.Special_Weapon_Perks
xor edx, edx
mov ecx, edi
call fcn.14005c090
test al, al
je 0x14007349d
mov eax, dword [0x1400e524c]
cmp eax, 1
jne 0x140073488
mov r14d, eax
mov r15d, r14d
lea rdi, [0x1400ad3a7]
lea r12, str.specPerkInput
movss xmm6, dword [0x1400ad720]
xor ebx, ebx
nop dword [rax + rax]
call fcn.140054200
mov esi, 1
nop word [rax + rax]
mov rax, qword [0x1400e94e0]
mov rcx, qword [rax + 0x41b8]
cmp byte [rcx + 0x104], 0
jne 0x140072fe2
movss xmm1, dword [rax + 0x3a64]
addss xmm1, dword [rcx + 0x150]
movss xmm0, dword [rcx + 0x154]
movss dword [rcx + 0x148], xmm1
movss dword [rcx + 0x14c], xmm0
movsd xmm0, qword [rcx + 0x178]
movsd qword [rcx + 0x170], xmm0
mov eax, dword [rcx + 0x184]
mov dword [rcx + 0x180], eax
mov byte [rcx + 0x188], 1
cmp r15, 1
jne 0x140073003
cmp rsi, r15
jne 0x140073003
lea rcx, str.Element
call fcn.140052100
movss xmm0, dword [0x1400ad714]
jmp 0x140073055
lea edx, [r14 - 1]
lea rcx, str.Perk__d
call fcn.140052100
cmp rsi, 1
jne 0x140073023
movss xmm0, dword [0x1400ad714]
jmp 0x140073055
cmp rsi, 2
jne 0x14007302e
movaps xmm0, xmm6
jmp 0x140073055
cmp rsi, r13
jne 0x140073039
movaps xmm0, xmm13
jmp 0x140073055
cmp rsi, 4
jne 0x140073045
movaps xmm0, xmm14
jmp 0x140073055
cmp rsi, 5
jne 0x140073051
movaps xmm0, xmm15
jmp 0x140073055
movaps xmm0, xmm12
movaps xmm1, xmm10
call fcn.140025e50
mov rdx, qword [0x1400e94e0]
or dword [rdx + 0x4b48], 1
mov dword [rdx + 0x4b60], 0x42500000
lea r9, [rbp + 0x65]
mov r8d, r14d
test r14d, r14d
jns 0x1400730d0
neg r8d
nop word [rax + rax]
dec r9
mov eax, 0xcccccccd
mul r8d
shr edx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r9], r8b
mov r8d, edx
test edx, edx
jne 0x140073090
dec r9
mov byte [r9], 0x2d
jmp 0x1400730fa
dec r9
mov eax, 0xcccccccd
mul r8d
shr edx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r9], r8b
mov r8d, edx
test edx, edx
jne 0x1400730d0
lea r8, [rbp + 0x65]
mov rdx, r9
lea rcx, [rsp + 0x70]
call fcn.140007ca0
mov r8, qword [rbp - 0x80]
mov rcx, qword [rbp - 0x78]
mov rax, rcx
sub rax, r8
cmp rax, 0xf
jb 0x1400731a5
lea rax, [r8 + 0xf]
mov qword [rbp - 0x80], rax
lea rbx, [rsp + 0x70]
cmp rcx, 0xf
cmova rbx, qword [rsp + 0x70]
cmp rdi, rbx
jbe 0x140073159
lea rax, [rbx + r8]
cmp r12, rax
ja 0x140073159
cmp rbx, r12
ja 0x140073151
xor edi, edi
jmp 0x14007315e
mov rdi, rbx
sub rdi, r12
jmp 0x14007315e
mov edi, 0xf
inc r8
lea rcx, [rbx + 0xf]
mov rdx, rbx
call sub.VCRUNTIME140.dll_memmove
mov r8, rdi
mov rdx, r12
mov rcx, rbx
call sub.VCRUNTIME140.dll_memcpy
mov r8d, 0xf
sub r8, rdi
lea rdx, [r12 + 0xf]
add rdx, rdi
lea rcx, [rbx + rdi]
call sub.VCRUNTIME140.dll_memcpy
lea rax, [rsp + 0x70]
lea rdi, [0x1400ad3a7]
xor ebx, ebx
jmp 0x1400731c2
mov qword [rsp + 0x28], 0xf
mov qword [rsp + 0x20], r12
mov edx, 0xf
lea rcx, [rsp + 0x70]
call fcn.140076690
xorps xmm0, xmm0
movups xmmword [rbp - 0x10], xmm0
mov qword [rbp], rbx
mov qword [rbp + 8], rbx
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x10], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
mov rdx, qword [rbp - 0x78]
cmp rdx, 0xf
jbe 0x14007322b
inc rdx
mov rcx, qword [rsp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140073226
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14007347a
call fcn.140096bc0
mov qword [rbp - 0x80], rbx
mov qword [rbp - 0x78], 0xf
mov byte [rsp + 0x70], 0
lea eax, [r14 - 1]
movsxd r8, eax
mov rcx, qword [0x1400e5330]
mov r9, qword [0x1400e5328]
sub rcx, r9
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, r8
jbe 0x1400746cd
lea rax, [r8 + r8*2]
lea r8, [r9 + rax*2]
lea rcx, [rbp - 0x10]
cmp qword [rbp + 8], 0xf
cmova rcx, qword [rbp - 0x10]
mov qword [rsp + 0x44], 0
mov qword [rsp + 0x38], rbx
lea rax, [0x140072070]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0x101000
lea rax, [rsp + 0x44]
mov qword [rsp + 0x20], rax
xor edx, edx
mov r9d, 6
call fcn.140057f30
mov rdx, qword [0x1400e94e0]
mov ecx, dword [rdx + 0x4224]
test ecx, ecx
je 0x1400732e3
cmp ecx, dword [rdx + 0x4b80]
jne 0x1400732e3
mov byte [0x1400e52ee], 1
mov ecx, dword [rdx + 0x4b88]
test cl, 0x20
je 0x1400732f7
mov eax, ecx
shr eax, 6
test al, 1
jmp 0x14007331e
mov r8d, dword [rdx + 0x4254]
mov r9d, dword [rdx + 0x4b80]
cmp r8d, r9d
jne 0x1400733ed
test r8d, r8d
je 0x1400733ed
cmp dword [rdx + 0x4224], r9d
je 0x1400733ed
cmp byte [rdx + 0x4259], 0
jne 0x140073347
cmp dword [rdx + 0x4224], 0
jne 0x1400733ed
cmp byte [rdx + 0x4234], 0
je 0x1400733ed
lea eax, [r14 - 1]
movsxd r8, eax
mov rcx, qword [0x1400e5330]
mov r9, qword [0x1400e5328]
sub rcx, r9
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, r8
jbe 0x1400746cd
lea rax, [r8 + r8*2]
lea rcx, [r9 + rax*2]
test rcx, rcx
je 0x14007341d
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
mov word [0x1400e98e0], ax
movsxd rcx, r14d
mov rax, qword [0x1400e9860]
add rax, 0xcff6
lea rcx, [rax + rcx*2]
mov qword [0x1400e98d8], rcx
lea rdx, [0x1400e98e0]
call fcn.140007bc0
test al, al
jne 0x14007341d
lea rdx, str.perc_write_err
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140002550
lea rdx, [0x140002730]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
jmp 0x14007341d
mov rax, qword [0x1400e94e0]
test cl, 0x20
je 0x140073401
shr ecx, 6
test cl, 1
jmp 0x14007341b
mov ecx, dword [rax + 0x4254]
mov edx, dword [rax + 0x4b80]
cmp ecx, edx
jne 0x140073424
test ecx, ecx
je 0x140073424
cmp dword [rax + 0x4224], edx
je 0x140073424
mov byte [0x1400e52ee], 0
inc r14d
mov rdx, qword [rbp + 8]
cmp rdx, 0xf
jbe 0x14007345e
inc rdx
mov rcx, qword [rbp - 0x10]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140073459
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140073481
call fcn.140096bc0
inc rsi
cmp rsi, 6
jb 0x140072f80
inc r15
cmp r15, 7
jb 0x140072f70
jmp 0x140073498
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov dword [0x1400e5248], eax
mov dword [0x1400e524c], 1
call fcn.14005c9d0
lea rdi, [0x140072070]
mov r8, qword [0x1400e94e0]
mov r9d, r13d
mov eax, dword [r8 + 0x4c78]
cmp eax, r13d
jge 0x1400734c1
mov r9d, eax
test eax, eax
jle 0x1400734fa
cdqe
lea rdx, [rax + rax*4]
mov rcx, qword [r8 + 0x4c80]
movsxd rax, dword [rcx + rdx*4 - 0x14]
add rax, rax
movups xmm1, xmmword [rcx + rdx*4 - 0x10]
movups xmmword [r8 + rax*8 + 0x3b0c], xmm1
dec dword [r8 + 0x4c78]
mov eax, dword [r8 + 0x4c78]
dec r9d
test r9d, r9d
jg 0x1400734c1
lea rcx, str.Heavy_Weapon
call fcn.140052100
movaps xmm1, xmm12
movaps xmm0, xmm7
call fcn.140025e50
mov rdx, qword [0x1400e94e0]
or dword [rdx + 0x4b48], 1
mov dword [rdx + 0x4b60], 0x42340000
mov qword [rsp + 0x44], 0
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], 0x101000
lea rax, [rsp + 0x44]
mov qword [rsp + 0x20], rax
mov r9d, 5
lea r8, [0x1400e52fb]
xor edx, edx
lea rcx, str.inventoryInfo.weaponQuantity3
call fcn.140057f30
movzx edx, byte [0x1400e52eb]
mov rax, qword [0x1400e94e0]
mov ecx, dword [rax + 0x4224]
test ecx, ecx
je 0x140073592
cmp ecx, dword [rax + 0x4b80]
jne 0x140073592
mov al, 1
jmp 0x140073594
xor al, al
mov byte [0x1400e52eb], al
test dl, dl
je 0x1400735e6
test al, al
jne 0x1400735e6
cmp byte [0x1400e52fb], al
je 0x1400735df
lea rcx, [0x1400e52fb]
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
mov word [0x1400e98a8], ax
mov rcx, qword [0x1400e9860]
add rcx, 0xcac4
mov qword [0x1400e98b0], rcx
lea rdx, [0x1400e98a8]
call fcn.140007ae0
mov byte [0x1400e52eb], 0
movaps xmm1, xmm8
movaps xmm0, xmm12
call fcn.140025e50
lea rcx, str.Heavy_Model
call fcn.140052100
movaps xmm1, xmm12
movaps xmm0, xmm9
call fcn.140025e50
mov rdx, qword [0x1400e94e0]
or dword [rdx + 0x4b48], 1
mov dword [rdx + 0x4b60], 0x42340000
mov qword [rsp + 0x44], 0
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], 0x101000
lea rax, [rsp + 0x44]
mov qword [rsp + 0x20], rax
mov r9d, 5
lea r8, [0x1400e530a]
xor edx, edx
lea rcx, str.inventoryInfo.modelQuantity3
call fcn.140057f30
movzx ecx, byte [0x1400e52ec]
mov rbx, qword [0x1400e94e0]
mov eax, dword [rbx + 0x4224]
test eax, eax
je 0x14007368c
cmp eax, dword [rbx + 0x4b80]
jne 0x14007368c
mov al, 1
jmp 0x14007368e
xor al, al
mov byte [0x1400e52ec], al
test cl, cl
je 0x1400736e7
test al, al
jne 0x1400736e7
cmp byte [0x1400e530a], al
je 0x1400736e0
lea rcx, [0x1400e530a]
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
mov word [0x1400e98b8], ax
mov rcx, qword [0x1400e9860]
add rcx, 0xcac6
mov qword [0x1400e98c0], rcx
lea rdx, [0x1400e98b8]
call fcn.140007ae0
mov rbx, qword [0x1400e94e0]
mov byte [0x1400e52ec], 0
mov dword [rbp + 0x50], 0x18
movups xmm0, xmmword [rbx + 0x3c8c]
movups xmmword [rbp + 0x54], xmm0
lea rcx, [rbx + 0x4c78]
lea rdx, [rbp + 0x50]
call fcn.14003a200
cmp dword [rbx + 0x4c74], 0x18
je 0x14007371a
movups xmmword [rbx + 0x3c8c], xmm11
mov rbx, qword [0x1400e94e0]
mov dword [rbp + 0x50], 0x19
movups xmm0, xmmword [rbx + 0x3c9c]
movups xmmword [rbp + 0x54], xmm0
lea rcx, [rbx + 0x4c78]
lea rdx, [rbp + 0x50]
call fcn.14003a200
cmp dword [rbx + 0x4c74], 0x19
je 0x140073754
movups xmmword [rbx + 0x3c9c], xmm11
movdqa xmm6, xmmword [0x1400ada70]
mov rbx, qword [0x1400e94e0]
mov dword [rbp + 0x50], 0x1a
movups xmm0, xmmword [rbx + 0x3cac]
movups xmmword [rbp + 0x54], xmm0
lea rcx, [rbx + 0x4c78]
lea rdx, [rbp + 0x50]
call fcn.14003a200
cmp dword [rbx + 0x4c74], 0x1a
je 0x140073795
movups xmmword [rbx + 0x3cac], xmm6
mov rbx, qword [0x1400e94e0]
cmp dword [0x1400e5248], 2
jne 0x1400737cf
mov rax, qword [rbx + 0x41b8]
cmp byte [rax + 0x104], 0
jne 0x1400737c5
or dword [rbx + 0x4b48], 2
mov word [rbx + 0x4b6c], 0x100
mov dword [0x1400e5248], 0xffffffff
mov rax, qword [rbx + 0x41b8]
mov byte [rax + 0x101], 1
mov rdi, qword [rbx + 0x41b8]
mov r12d, 2
cmp byte [rdi + 0x104], 0
jne 0x140073e22
movsxd rax, dword [rdi + 0x138]
mov r8, qword [rdi + 0x140]
mov r8d, dword [r8 + rax*4 - 4]
xor edx, edx
lea rcx, str.Heavy_Weapon_Perks
call fcn.140011ce0
mov ebx, eax
mov rcx, qword [rdi]
cmp dword [rcx + 0x420c], eax
jne 0x140073838
lea r8, str.Heavy_Weapon_Perks
mov edx, 0xc
mov ecx, eax
call fcn.1400390e0
xor r9d, r9d
lea r8, str.Heavy_Weapon_Perks
xor edx, edx
mov ecx, ebx
call fcn.14005c090
test al, al
je 0x140073e1b
mov eax, dword [0x1400e524c]
cmp eax, r12d
jne 0x140073e09
mov r14d, 1
mov r15d, r14d
lea rdi, str.heavyPerkInput
xor ebx, ebx
call fcn.140054200
mov esi, 1
nop
mov rax, qword [0x1400e94e0]
mov rcx, qword [rax + 0x41b8]
cmp byte [rcx + 0x104], 0
jne 0x1400738e2
movss xmm1, dword [rax + 0x3a64]
addss xmm1, dword [rcx + 0x150]
movss xmm0, dword [rcx + 0x154]
movss dword [rcx + 0x148], xmm1
movss dword [rcx + 0x14c], xmm0
movsd xmm0, qword [rcx + 0x178]
movsd qword [rcx + 0x170], xmm0
mov eax, dword [rcx + 0x184]
mov dword [rcx + 0x180], eax
mov byte [rcx + 0x188], 1
cmp r15, 1
jne 0x1400738fb
cmp rsi, r15
jne 0x1400738fb
lea rcx, str.Element
call fcn.140052100
jmp 0x140073915
lea edx, [r14 - 1]
lea rcx, str.Perk__d
call fcn.140052100
cmp rsi, 1
jne 0x140073997
mov rax, qword [0x1400e94e0]
mov rcx, qword [rax + 0x41b8]
cmp byte [rcx + 0x104], 0
jne 0x1400739d6
movss xmm1, dword [rcx + 0x58]
subss xmm1, dword [rcx + 0xcc]
addss xmm1, dword [0x1400ad714]
addss xmm1, xmm12
addss xmm1, dword [rcx + 0x194]
addss xmm1, dword [rcx + 0x190]
movss xmm0, dword [rcx + 0x154]
movss dword [rcx + 0x148], xmm1
movss dword [rcx + 0x14c], xmm0
movsd xmm0, qword [rcx + 0x178]
movsd qword [rcx + 0x170], xmm0
mov eax, dword [rcx + 0x184]
mov dword [rcx + 0x180], eax
mov byte [rcx + 0x188], 1
jmp 0x1400739d6
cmp rsi, r12
jne 0x1400739a6
movss xmm0, dword [0x1400ad720]
jmp 0x1400739cd
cmp rsi, r13
jne 0x1400739b1
movaps xmm0, xmm13
jmp 0x1400739cd
cmp rsi, 4
jne 0x1400739bd
movaps xmm0, xmm14
jmp 0x1400739cd
cmp rsi, 5
jne 0x1400739c9
movaps xmm0, xmm15
jmp 0x1400739cd
movaps xmm0, xmm12
movaps xmm1, xmm10
call fcn.140025e50
mov rax, qword [0x1400e94e0]
or dword [rax + 0x4b48], 1
mov dword [rax + 0x4b60], 0x42500000
lea r9, [rbp + 0x65]
mov r8d, r14d
test r14d, r14d
jns 0x140073a40
neg r8d
nop dword [rax]
dec r9
mov eax, 0xcccccccd
mul r8d
shr edx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r9], r8b
mov r8d, edx
test edx, edx
jne 0x140073a00
dec r9
mov byte [r9], 0x2d
jmp 0x140073a6a
dec r9
mov eax, 0xcccccccd
mul r8d
shr edx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r9], r8b
mov r8d, edx
test edx, edx
jne 0x140073a40
lea r8, [rbp + 0x65]
mov rdx, r9
lea rcx, [rbp - 0x70]
call fcn.140007ca0
mov r8, qword [rbp - 0x60]
mov rcx, qword [rbp - 0x58]
mov rax, rcx
sub rax, r8
cmp rax, 0x10
jb 0x140073b29
lea rax, [r8 + 0x10]
mov qword [rbp - 0x60], rax
lea rbx, [rbp - 0x70]
cmp rcx, 0xf
cmova rbx, qword [rbp - 0x70]
lea rax, [0x1400ad430]
cmp rax, rbx
jbe 0x140073ad4
lea rax, [rbx + r8]
cmp rdi, rax
ja 0x140073ad4
cmp rbx, rdi
ja 0x140073ac5
xor edi, edi
jmp 0x140073ad9
mov rdi, rbx
lea rax, str.heavyPerkInput
sub rdi, rax
jmp 0x140073ad9
mov edi, 0x10
inc r8
lea rcx, [rbx + 0x10]
mov rdx, rbx
call sub.VCRUNTIME140.dll_memmove
mov r8, rdi
lea rdx, str.heavyPerkInput
mov rcx, rbx
call sub.VCRUNTIME140.dll_memcpy
mov r8d, 0x10
sub r8, rdi
lea rdx, str.heavyPerkInput
add rdx, 0x10
add rdx, rdi
lea rcx, [rbx + rdi]
call sub.VCRUNTIME140.dll_memcpy
lea rax, [rbp - 0x70]
lea rdi, str.heavyPerkInput
xor ebx, ebx
jmp 0x140073b45
mov qword [rsp + 0x28], 0x10
mov qword [rsp + 0x20], rdi
mov edx, 0x10
lea rcx, [rbp - 0x70]
call fcn.140076690
xorps xmm0, xmm0
movups xmmword [rbp + 0x10], xmm0
mov qword [rbp + 0x20], rbx
mov qword [rbp + 0x28], rbx
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x10], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x20], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
mov rdx, qword [rbp - 0x58]
cmp rdx, 0xf
jbe 0x140073bad
inc rdx
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140073ba8
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140073dfb
call fcn.140096bc0
mov qword [rbp - 0x60], rbx
mov qword [rbp - 0x58], 0xf
mov byte [rbp - 0x70], 0
lea eax, [r14 - 1]
movsxd r8, eax
mov rcx, qword [0x1400e5348]
mov r9, qword [0x1400e5340]
sub rcx, r9
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, r8
jbe 0x1400746d3
lea rax, [r8 + r8*2]
lea r8, [r9 + rax*2]
lea rcx, [rbp + 0x10]
cmp qword [rbp + 0x28], 0xf
cmova rcx, qword [rbp + 0x10]
mov qword [rsp + 0x44], 0
mov qword [rsp + 0x38], rbx
lea rax, [0x140072070]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0x101000
lea rax, [rsp + 0x44]
mov qword [rsp + 0x20], rax
xor edx, edx
mov r9d, 6
call fcn.140057f30
mov rdx, qword [0x1400e94e0]
mov ecx, dword [rdx + 0x4224]
test ecx, ecx
je 0x140073c64
cmp ecx, dword [rdx + 0x4b80]
jne 0x140073c64
mov byte [0x1400e52ef], 1
mov ecx, dword [rdx + 0x4b88]
test cl, 0x20
je 0x140073c78
mov eax, ecx
shr eax, 6
test al, 1
jmp 0x140073c9f
mov r8d, dword [rdx + 0x4254]
mov r9d, dword [rdx + 0x4b80]
cmp r8d, r9d
jne 0x140073d6e
test r8d, r8d
je 0x140073d6e
cmp dword [rdx + 0x4224], r9d
je 0x140073d6e
cmp byte [rdx + 0x4259], 0
jne 0x140073cc8
cmp dword [rdx + 0x4224], 0
jne 0x140073d6e
cmp byte [rdx + 0x4234], 0
je 0x140073d6e
lea eax, [r14 - 1]
movsxd r8, eax
mov rcx, qword [0x1400e5348]
mov r9, qword [0x1400e5340]
sub rcx, r9
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, r8
jbe 0x1400746d3
lea rax, [r8 + r8*2]
lea rcx, [r9 + rax*2]
test rcx, rcx
je 0x140073d9e
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
mov word [0x1400e98f0], ax
movsxd rcx, r14d
mov rax, qword [0x1400e9860]
add rax, 0xd032
lea rcx, [rax + rcx*2]
mov qword [0x1400e98e8], rcx
lea rdx, [0x1400e98f0]
call fcn.140007bc0
test al, al
jne 0x140073d9e
lea rdx, str.perc_write_err
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140002550
lea rdx, [0x140002730]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
jmp 0x140073d9e
mov rax, qword [0x1400e94e0]
test cl, 0x20
je 0x140073d82
shr ecx, 6
test cl, 1
jmp 0x140073d9c
mov ecx, dword [rax + 0x4254]
mov edx, dword [rax + 0x4b80]
cmp ecx, edx
jne 0x140073da5
test ecx, ecx
je 0x140073da5
cmp dword [rax + 0x4224], edx
je 0x140073da5
mov byte [0x1400e52ef], 0
inc r14d
mov rdx, qword [rbp + 0x28]
cmp rdx, 0xf
jbe 0x140073ddf
inc rdx
mov rcx, qword [rbp + 0x10]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140073dda
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140073e02
call fcn.140096bc0
inc rsi
cmp rsi, 6
jb 0x140073880
inc r15
cmp r15, 7
jb 0x140073874
jmp 0x140073e16
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov dword [0x1400e5248], eax
mov dword [0x1400e524c], r12d
call fcn.14005c9d0
mov rbx, qword [0x1400e94e0]
mov r8d, r13d
mov eax, dword [rbx + 0x4c78]
cmp eax, r13d
jge 0x140073e40
mov r8d, eax
test eax, eax
jle 0x140073e76
nop word [rax + rax]
cdqe
lea rdx, [rax + rax*4]
mov rcx, qword [rbx + 0x4c80]
movsxd rax, dword [rcx + rdx*4 - 0x14]
add rax, rax
movups xmm0, xmmword [rcx + rdx*4 - 0x10]
movups xmmword [rbx + rax*8 + 0x3b0c], xmm0
dec dword [rbx + 0x4c78]
mov eax, dword [rbx + 0x4c78]
dec r8d
test r8d, r8d
jg 0x140073e40
mov dword [rbp + 0x50], 0x18
movups xmm0, xmmword [rbx + 0x3c8c]
movups xmmword [rbp + 0x54], xmm0
lea rcx, [rbx + 0x4c78]
lea rdx, [rbp + 0x50]
call fcn.14003a200
cmp dword [rbx + 0x4c74], 0x18
je 0x140073ea9
movups xmmword [rbx + 0x3c8c], xmm11
mov rbx, qword [0x1400e94e0]
mov dword [rbp + 0x50], 0x19
movups xmm0, xmmword [rbx + 0x3c9c]
movups xmmword [rbp + 0x54], xmm0
lea rcx, [rbx + 0x4c78]
lea rdx, [rbp + 0x50]
call fcn.14003a200
cmp dword [rbx + 0x4c74], 0x19
je 0x140073ee3
movups xmmword [rbx + 0x3c9c], xmm11
movdqa xmm6, xmmword [0x1400ada70]
mov rbx, qword [0x1400e94e0]
mov dword [rbp + 0x50], 0x1a
movups xmm0, xmmword [rbx + 0x3cac]
movups xmmword [rbp + 0x54], xmm0
lea rcx, [rbx + 0x4c78]
lea rdx, [rbp + 0x50]
call fcn.14003a200
cmp dword [rbx + 0x4c74], 0x1a
je 0x140073f24
movups xmmword [rbx + 0x3cac], xmm6
mov rbx, qword [0x1400e94e0]
cmp dword [0x1400e5248], r13d
jne 0x140073f5e
mov rax, qword [rbx + 0x41b8]
cmp byte [rax + 0x104], 0
jne 0x140073f54
or dword [rbx + 0x4b48], r12d
mov word [rbx + 0x4b6c], 0x100
mov dword [0x1400e5248], 0xffffffff
mov rax, qword [rbx + 0x41b8]
mov byte [rax + 0x101], 1
mov rdi, qword [rbx + 0x41b8]
cmp byte [rdi + 0x104], 0
jne 0x1400745af
movsxd rax, dword [rdi + 0x138]
mov r8, qword [rdi + 0x140]
mov r8d, dword [r8 + rax*4 - 4]
xor edx, edx
lea rcx, str.Armor_Perks
call fcn.140011ce0
mov ebx, eax
mov rcx, qword [rdi]
cmp dword [rcx + 0x420c], eax
jne 0x140073fc1
lea r8, str.Armor_Perks
mov edx, 0xc
mov ecx, eax
call fcn.1400390e0
xor r9d, r9d
lea r8, str.Armor_Perks
xor edx, edx
mov ecx, ebx
call fcn.14005c090
test al, al
je 0x1400745a8
mov eax, dword [0x1400e524c]
cmp eax, r13d
jne 0x140074596
mov esi, 1
mov r15d, esi
lea rdi, str.armorPerkInput
xor ebx, ebx
nop dword [rax]
call fcn.140054200
mov r14d, 1
nop dword [rax + rax]
mov rax, qword [0x1400e94e0]
mov rcx, qword [rax + 0x41b8]
cmp byte [rcx + 0x104], 0
jne 0x140074072
movss xmm1, dword [rax + 0x3a64]
addss xmm1, dword [rcx + 0x150]
movss xmm0, dword [rcx + 0x154]
movss dword [rcx + 0x148], xmm1
movss dword [rcx + 0x14c], xmm0
movsd xmm0, qword [rcx + 0x178]
movsd qword [rcx + 0x170], xmm0
mov eax, dword [rcx + 0x184]
mov dword [rcx + 0x180], eax
mov byte [rcx + 0x188], 1
mov edx, esi
lea rcx, str.Perk__d
call fcn.140052100
mov rdx, qword [0x1400e94e0]
cmp r14, 1
jne 0x1400740b8
mov rcx, qword [rdx + 0x41b8]
cmp byte [rcx + 0x104], 0
jne 0x140074168
movss xmm1, dword [rcx + 0x58]
subss xmm1, dword [rcx + 0xcc]
addss xmm1, dword [0x1400ad714]
jmp 0x1400740e6
cmp r14, r12
jne 0x140074138
mov rcx, qword [rdx + 0x41b8]
cmp byte [rcx + 0x104], 0
jne 0x140074168
movss xmm1, dword [rcx + 0x58]
subss xmm1, dword [rcx + 0xcc]
addss xmm1, dword [0x1400ad720]
addss xmm1, xmm12
addss xmm1, dword [rcx + 0x194]
addss xmm1, dword [rcx + 0x190]
movss xmm0, dword [rcx + 0x154]
movss dword [rcx + 0x148], xmm1
movss dword [rcx + 0x14c], xmm0
movsd xmm0, qword [rcx + 0x178]
movsd qword [rcx + 0x170], xmm0
mov eax, dword [rcx + 0x184]
mov dword [rcx + 0x180], eax
mov byte [rcx + 0x188], 1
jmp 0x140074168
cmp r14, r13
jne 0x140074143
movaps xmm0, xmm13
jmp 0x14007415f
cmp r14, 4
jne 0x14007414f
movaps xmm0, xmm14
jmp 0x14007415f
cmp r14, 5
jne 0x14007415b
movaps xmm0, xmm15
jmp 0x14007415f
movaps xmm0, xmm12
movaps xmm1, xmm10
call fcn.140025e50
or dword [rdx + 0x4b48], 1
mov dword [rdx + 0x4b60], 0x42500000
lea r9, [rbp + 0x65]
mov r8d, esi
test esi, esi
jns 0x1400741d0
neg r8d
nop word [rax + rax]
dec r9
mov eax, 0xcccccccd
mul r8d
shr edx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r9], r8b
mov r8d, edx
test edx, edx
jne 0x140074190
dec r9
mov byte [r9], 0x2d
jmp 0x1400741fa
dec r9
mov eax, 0xcccccccd
mul r8d
shr edx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r9], r8b
mov r8d, edx
test edx, edx
jne 0x1400741d0
lea r8, [rbp + 0x65]
mov rdx, r9
lea rcx, [rbp - 0x50]
call fcn.140007ca0
mov r8, qword [rbp - 0x40]
mov rcx, qword [rbp - 0x38]
mov rax, rcx
sub rax, r8
cmp rax, 0x10
jb 0x1400742b9
lea rax, [r8 + 0x10]
mov qword [rbp - 0x40], rax
lea rbx, [rbp - 0x50]
cmp rcx, 0xf
cmova rbx, qword [rbp - 0x50]
lea rax, [0x1400ad460]
cmp rax, rbx
jbe 0x140074264
lea rax, [rbx + r8]
cmp rdi, rax
ja 0x140074264
cmp rbx, rdi
ja 0x140074255
xor edi, edi
jmp 0x140074269
mov rdi, rbx
lea rax, str.armorPerkInput
sub rdi, rax
jmp 0x140074269
mov edi, 0x10
inc r8
lea rcx, [rbx + 0x10]
mov rdx, rbx
call sub.VCRUNTIME140.dll_memmove
mov r8, rdi
lea rdx, str.armorPerkInput
mov rcx, rbx
call sub.VCRUNTIME140.dll_memcpy
mov r8d, 0x10
sub r8, rdi
lea rdx, str.armorPerkInput
add rdx, 0x10
add rdx, rdi
lea rcx, [rbx + rdi]
call sub.VCRUNTIME140.dll_memcpy
lea rax, [rbp - 0x50]
lea rdi, str.armorPerkInput
xor ebx, ebx
jmp 0x1400742d5
mov qword [rsp + 0x28], 0x10
mov qword [rsp + 0x20], rdi
mov edx, 0x10
lea rcx, [rbp - 0x50]
call fcn.140076690
xorps xmm0, xmm0
movups xmmword [rbp + 0x30], xmm0
mov qword [rbp + 0x40], rbx
mov qword [rbp + 0x48], rbx
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x30], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x40], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
mov rdx, qword [rbp - 0x38]
cmp rdx, 0xf
jbe 0x14007433d
inc rdx
mov rcx, qword [rbp - 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140074338
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140074588
call fcn.140096bc0
mov qword [rbp - 0x40], rbx
mov qword [rbp - 0x38], 0xf
mov byte [rbp - 0x50], 0
lea eax, [rsi - 1]
movsxd r8, eax
mov rcx, qword [0x1400e5360]
mov r9, qword [0x1400e5358]
sub rcx, r9
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, r8
jbe 0x1400746c1
lea rax, [r8 + r8*2]
lea r8, [r9 + rax*2]
lea rcx, [rbp + 0x30]
cmp qword [rbp + 0x48], 0xf
cmova rcx, qword [rbp + 0x30]
mov qword [rsp + 0x44], 0
mov qword [rsp + 0x38], rbx
lea rax, [0x140072070]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0x101000
lea rax, [rsp + 0x44]
mov qword [rsp + 0x20], rax
xor edx, edx
mov r9d, 6
call fcn.140057f30
mov rdx, qword [0x1400e94e0]
mov ecx, dword [rdx + 0x4224]
test ecx, ecx
je 0x1400743f3
cmp ecx, dword [rdx + 0x4b80]
jne 0x1400743f3
mov byte [0x1400e52f0], 1
mov ecx, dword [rdx + 0x4b88]
test cl, 0x20
je 0x140074407
mov eax, ecx
shr eax, 6
test al, 1
jmp 0x14007442e
mov r8d, dword [rdx + 0x4254]
mov r9d, dword [rdx + 0x4b80]
cmp r8d, r9d
jne 0x1400744fc
test r8d, r8d
je 0x1400744fc
cmp dword [rdx + 0x4224], r9d
je 0x1400744fc
cmp byte [rdx + 0x4259], 0
jne 0x140074457
cmp dword [rdx + 0x4224], 0
jne 0x1400744fc
cmp byte [rdx + 0x4234], 0
je 0x1400744fc
lea eax, [rsi - 1]
movsxd r8, eax
mov rcx, qword [0x1400e5360]
mov r9, qword [0x1400e5358]
sub rcx, r9
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, r8
jbe 0x1400746c1
lea rax, [r8 + r8*2]
lea rcx, [r9 + rax*2]
test rcx, rcx
je 0x14007452c
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
mov word [0x1400e9900], ax
movsxd rcx, esi
mov rax, qword [0x1400e9860]
add rax, 0xceac
lea rcx, [rax + rcx*2]
mov qword [0x1400e98f8], rcx
lea rdx, [0x1400e9900]
call fcn.140007bc0
test al, al
jne 0x14007452c
lea rdx, str.perc_write_err
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140002550
lea rdx, [0x140002730]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
jmp 0x14007452c
mov rax, qword [0x1400e94e0]
test cl, 0x20
je 0x140074510
shr ecx, 6
test cl, 1
jmp 0x14007452a
mov ecx, dword [rax + 0x4254]
mov edx, dword [rax + 0x4b80]
cmp ecx, edx
jne 0x140074533
test ecx, ecx
je 0x140074533
cmp dword [rax + 0x4224], edx
je 0x140074533
mov byte [0x1400e52f0], 0
inc esi
mov rdx, qword [rbp + 0x48]
cmp rdx, 0xf
jbe 0x14007456c
inc rdx
mov rcx, qword [rbp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140074567
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14007458f
call fcn.140096bc0
inc r14
cmp r14, 6
jb 0x140074010
inc r15
cmp r15, 0x15
jb 0x140074000
jmp 0x1400745a3
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov dword [0x1400e5248], eax
mov dword [0x1400e524c], r13d
call fcn.14005c9d0
mov rbx, qword [0x1400e94e0]
mov eax, dword [rbx + 0x4c78]
cmp eax, r13d
jge 0x1400745c1
mov r13d, eax
test eax, eax
jle 0x1400745f8
cdqe
lea r8, [rax + rax*4]
mov rdx, qword [rbx + 0x4c80]
movsxd rax, dword [rdx + r8*4 - 0x14]
add rax, rax
movups xmm0, xmmword [rdx + r8*4 - 0x10]
movups xmmword [rbx + rax*8 + 0x3b0c], xmm0
dec dword [rbx + 0x4c78]
mov eax, dword [rbx + 0x4c78]
dec r13d
test r13d, r13d
jg 0x1400745c1
mov ecx, 1
call fcn.140012c20
mov eax, dword [rbx + 0x4c78]
cmp eax, r12d
jge 0x140074620
mov r12d, eax
test eax, eax
jle 0x140074656
nop dword [rax]
nop dword [rax + rax]
cdqe
lea rdx, [rax + rax*4]
mov rcx, qword [rbx + 0x4c80]
movsxd rax, dword [rcx + rdx*4 - 0x14]
add rax, rax
movups xmm0, xmmword [rcx + rdx*4 - 0x10]
movups xmmword [rbx + rax*8 + 0x3b0c], xmm0
dec dword [rbx + 0x4c78]
mov eax, dword [rbx + 0x4c78]
dec r12d
test r12d, r12d
jg 0x140074620
call fcn.14001ae90
nop
mov rcx, qword [rbp + 0x68]
xor rcx, rsp
call fcn.140096ba0
lea r11, [rsp + 0x210]
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]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
movaps xmm14, xmmword [r11 - 0x90]
movaps xmm15, xmmword [r11 - 0xa0]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.140002500
int3
call fcn.140002500
int3
call fcn.140002500
int3
call fcn.140002500
int3