Function at 0x140017de0
Capabilities:
Allocate or change rwx memory

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xe0
mov qword [rbp - 0x59], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x1400a8650]
xor rax, rsp
mov qword [rbp + 0x2f], rax
mov r14, rcx
mov qword [rbp - 0x61], rcx
mov qword [rbp + 7], 0xf
mov qword [rbp - 1], 0
mov byte [rbp - 0x11], 0
mov r8d, 6
lea rdx, str.iMoney
lea rcx, [rbp - 0x11]
call fcn.14000c8c0
nop
mov rdi, qword [r14]
mov rsi, qword [rdi + 8]
mov rbx, rdi
mov r13, qword [rbp + 7]
mov r15, qword [rbp - 1]
mov r12, qword [rbp - 0x11]
cmp byte [rsi + 0x19], 0
jne 0x140017ed9
nop word [rax + rax]
lea rcx, [rsi + 0x20]
lea rdx, [rbp - 0x11]
cmp r13, 0x10
cmovae rdx, r12
mov r14, qword [rcx + 0x10]
cmp qword [rcx + 0x18], 0x10
jb 0x140017e8e
mov rcx, qword [rcx]
mov r8, r15
cmp r14, r15
cmovb r8, r14
test r8, r8
jne 0x140017ea1
xor eax, eax
jmp 0x140017ea6
call fcn.140050ee0
cdqe
test rax, rax
jne 0x140017ebf
cmp r14, r15
jae 0x140017eb7
or eax, 0xffffffff
jmp 0x140017ebf
xor eax, eax
cmp r14, r15
setne al
test eax, eax
jns 0x140017ec9
mov rsi, qword [rsi + 0x10]
jmp 0x140017ecf
mov rbx, rsi
mov rsi, qword [rsi]
cmp byte [rsi + 0x19], 0
je 0x140017e70
mov r14, qword [rbp - 0x61]
cmp rbx, rdi
je 0x140017f31
lea rdx, [rbx + 0x20]
mov rdi, qword [rdx + 0x10]
cmp qword [rdx + 0x18], 0x10
jb 0x140017ef0
mov rdx, qword [rdx]
lea rcx, [rbp - 0x11]
cmp r13, 0x10
cmovae rcx, r12
mov r8, rdi
cmp r15, rdi
cmovb r8, r15
test r8, r8
jne 0x140017f0f
xor eax, eax
jmp 0x140017f14
call fcn.140050ee0
cdqe
test rax, rax
jne 0x140017f2d
cmp r15, rdi
jae 0x140017f25
or eax, 0xffffffff
jmp 0x140017f2d
xor eax, eax
cmp r15, rdi
setne al
test eax, eax
jns 0x140017f65
lea rax, [rbp - 0x11]
mov qword [rbp - 0x69], rax
lea r8, [rbp - 0x69]
mov rcx, r14
call fcn.14001c2c0
lea r9, [rax + 0x20]
mov qword [rsp + 0x20], rax
mov r8, rbx
lea rdx, [rbp - 0x69]
mov rcx, r14
call fcn.14001c010
mov rbx, qword [rbp - 0x69]
mov r13, qword [rbp + 7]
lea r12, [rbx + 0x40]
cmp byte [r12 + 0x40], 0
je 0x140017f78
mov bl, 1
jmp 0x140018564
xor esi, esi
mov qword [r12 + 8], rsi
mov dword [r12], esi
mov dword [r12 + 4], 2
mov word [r12 + 0x44], 0x100
mov byte [r12 + 0x41], 1
mov byte [r12 + 0x43], 1
mov qword [rbp + 0x27], 0xf
mov qword [rbp + 0x1f], rsi
mov byte [rbp + 0xf], sil
mov r8d, 0x85
lea rdx, str.83_3D_F9_01_00_00_01_75_0E_C7_80_GameMoney_7F_96_98_00_31_D2_EB_10_83_3D_E6_01_00_00_00_74_07_0F_AF_15_DD_01_00_00_48_63_88_GameMoney
lea rcx, [rbp + 0xf]
call fcn.14000c8c0
nop
mov qword [rbp - 0x19], 0xf
mov qword [rbp - 0x21], rsi
mov byte [rbp - 0x31], sil
lea r8d, [rsi + 0x12]
lea rdx, str.48_63_88_GameMoney
lea rcx, [rbp - 0x31]
call fcn.14000c8c0
nop
mov qword [rbp - 0x39], 0xf
mov qword [rbp - 0x41], rsi
mov byte [rbp - 0x51], sil
lea r8d, [rsi + 0x18]
lea rdx, str.48_63_88_GameMoney_03_CA
lea rcx, [rbp - 0x51]
call fcn.14000c8c0
nop
mov dword [r12], esi
lea rcx, [r12 + 0x48]
lea rax, [rbp - 0x51]
cmp rcx, rax
je 0x140018033
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rbp - 0x51]
call fcn.14000c550
lea rcx, [r12 + 0x68]
lea rax, [rbp - 0x31]
cmp rcx, rax
je 0x140018051
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rbp - 0x31]
call fcn.14000c550
lea rcx, [r12 + 0x88]
lea rax, [rbp + 0xf]
cmp rcx, rax
je 0x140018073
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rbp + 0xf]
call fcn.14000c550
nop
cmp qword [rbp - 0x39], 0x10
jb 0x140018083
mov rcx, qword [rbp - 0x51]
call fcn.140046688
mov qword [rbp - 0x39], 0xf
mov qword [rbp - 0x41], rsi
mov byte [rbp - 0x51], 0
cmp qword [rbp - 0x19], 0x10
jb 0x1400180a3
mov rcx, qword [rbp - 0x31]
call fcn.140046688
mov qword [rbp - 0x19], 0xf
mov qword [rbp - 0x21], rsi
mov byte [rbp - 0x31], 0
cmp qword [rbp + 0x27], 0x10
jb 0x1400180c3
mov rcx, qword [rbp + 0xf]
call fcn.140046688
lea r8, str.StateRecorder
lea rdx, str.GameMoney
mov rcx, r12
call fcn.14000daa0
mov qword [rbp - 0x19], 0xf
mov qword [rbp - 0x21], rsi
mov byte [rbp - 0x31], 0
mov r8d, 0xe
lea rdx, str.LootController
lea rcx, [rbp - 0x31]
call fcn.14000c8c0
nop
lea rdx, [rbp - 0x31]
lea rcx, [r14 + 0x2b0]
call fcn.1400037f0
mov rdi, rax
cmp qword [rbp - 0x19], 0x10
jb 0x140018123
mov rcx, qword [rbp - 0x31]
call fcn.140046688
mov qword [rbp - 0x19], 0xf
mov qword [rbp - 0x21], rsi
mov byte [rbp - 0x31], 0
test rdi, rdi
je 0x1400181aa
lea rcx, [r14 + 0x2b0]
call fcn.140002e00
mov rbx, qword [rdi + 0x58]
mov rdi, qword [rdi + 0x60]
cmp rbx, rdi
je 0x1400181aa
mov rdx, qword [rbx]
cmp qword [rdx + 0x18], 0x10
jb 0x14001815e
mov rdx, qword [rdx]
mov rcx, qword [0x1400b2270]
call fcn.140002c80
test rax, rax
je 0x140018189
mov qword [r12 + 0x18], rax
mov rdx, rax
call fcn.140002f10
movsxd rcx, eax
add rcx, qword [r12 + 0x18]
mov qword [r12 + 0x20], rcx
xor r8d, r8d
mov rdx, r12
lea rcx, [r14 + 0xa0]
call fcn.14001e4a0
test al, al
jne 0x1400181a8
add rbx, 8
cmp rbx, rdi
jne 0x140018151
xor esi, esi
mov rdx, qword [r12 + 8]
lea rcx, [r14 + 0xa0]
mov rax, qword [rcx + 0x28]
test rax, rax
jne 0x1400181c7
mov rax, rsi
jmp 0x14001824d
mov r10, qword [rax + 0x80]
test r10, r10
jne 0x140018211
lea r8, [0x1400b2400]
cmp qword [0x1400b2418], 8
cmovae r8, qword [0x1400b2400]
lea rdx, [0x1400b25c0]
cmp qword [0x1400b25d8], 8
cmovae rdx, qword [0x1400b25c0]
xor r9d, r9d
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
mov rax, rsi
jmp 0x14001824d
mov r8d, 0x800
cmp rdx, 0x10
jne 0x140018228
mov rdx, qword [rax + 0x48]
call fcn.14001e280
jmp 0x14001824d
test rdx, rdx
je 0x140018234
call fcn.14001e280
jmp 0x14001824d
mov dword [rsp + 0x20], 0x40
xor edx, edx
mov r9d, 0x3000
mov rcx, r10
call qword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov qword [r12 + 0x10], rax
mov qword [rbp - 0x39], 0xf
mov qword [rbp - 0x41], rsi
mov byte [rbp - 0x51], 0
mov r8d, 1
lea rdx, [0x140091dd0]
lea rcx, [rbp - 0x51]
call fcn.14000c8c0
nop
mov rdi, qword [r14]
mov rsi, qword [rdi + 8]
mov rbx, rdi
mov r13, qword [rbp - 0x39]
mov r15, qword [rbp - 0x41]
mov rax, qword [rbp - 0x51]
cmp byte [rsi + 0x19], 0
jne 0x14001830d
nop word [rax + rax]
lea rcx, [rsi + 0x20]
lea rdx, [rbp - 0x51]
cmp r13, 0x10
cmovae rdx, rax
mov r14, qword [rcx + 0x10]
cmp qword [rcx + 0x18], 0x10
jb 0x1400182be
mov rcx, qword [rcx]
mov r8, r15
cmp r14, r15
cmovb r8, r14
test r8, r8
jne 0x1400182d1
xor eax, eax
jmp 0x1400182d6
call fcn.140050ee0
cdqe
test rax, rax
jne 0x1400182ef
cmp r14, r15
jae 0x1400182e7
or eax, 0xffffffff
jmp 0x1400182ef
xor eax, eax
cmp r14, r15
setne al
test eax, eax
jns 0x1400182f9
mov rsi, qword [rsi + 0x10]
jmp 0x1400182ff
mov rbx, rsi
mov rsi, qword [rsi]
cmp byte [rsi + 0x19], 0
mov rax, qword [rbp - 0x51]
je 0x1400182a0
mov r14, qword [rbp - 0x61]
cmp rbx, rdi
je 0x140018365
lea rdx, [rbx + 0x20]
mov rdi, qword [rdx + 0x10]
cmp qword [rdx + 0x18], 0x10
jb 0x140018324
mov rdx, qword [rdx]
lea rcx, [rbp - 0x51]
cmp r13, 0x10
cmovae rcx, rax
mov r8, rdi
cmp r15, rdi
cmovb r8, r15
test r8, r8
jne 0x140018343
xor eax, eax
jmp 0x140018348
call fcn.140050ee0
cdqe
test rax, rax
jne 0x140018361
cmp r15, rdi
jae 0x140018359
or eax, 0xffffffff
jmp 0x140018361
xor eax, eax
cmp r15, rdi
setne al
test eax, eax
jns 0x140018395
lea rax, [rbp - 0x51]
mov qword [rbp - 0x69], rax
lea r8, [rbp - 0x69]
mov rcx, r14
call fcn.14001bf90
lea r9, [rax + 0x20]
mov qword [rsp + 0x20], rax
mov r8, rbx
lea rdx, [rbp - 0x69]
mov rcx, r14
call fcn.14001c010
mov rbx, qword [rbp - 0x69]
mov rax, qword [r12 + 0x10]
add rax, 0x200
mov qword [rbx + 0x48], rax
mov qword [rbx + 0x70], 1
xor edi, edi
mov byte [rbx + 0x84], 1
mov byte [rbx + 0x82], dil
mov dword [rbx + 0x40], 2
cmp qword [rbp - 0x39], 0x10
jb 0x1400183d3
mov rcx, qword [rbp - 0x51]
call fcn.140046688
mov qword [rbp - 0x39], 0xf
mov qword [rbp - 0x41], rdi
mov byte [rbp - 0x51], 0
mov r8d, 4
lea rdx, str.MTP1
lea rcx, [rbp - 0x51]
call fcn.14000c8c0
nop
mov rdi, qword [r14]
mov rsi, qword [rdi + 8]
mov rbx, rdi
mov r13, qword [rbp - 0x39]
mov r15, qword [rbp - 0x41]
mov rax, qword [rbp - 0x51]
cmp byte [rsi + 0x19], 0
jne 0x14001848d
nop word [rax + rax]
lea rcx, [rsi + 0x20]
lea rdx, [rbp - 0x51]
cmp r13, 0x10
cmovae rdx, rax
mov r14, qword [rcx + 0x10]
cmp qword [rcx + 0x18], 0x10
jb 0x14001843e
mov rcx, qword [rcx]
mov r8, r15
cmp r14, r15
cmovb r8, r14
test r8, r8
jne 0x140018451
xor eax, eax
jmp 0x140018456
call fcn.140050ee0
cdqe
test rax, rax
jne 0x14001846f
cmp r14, r15
jae 0x140018467
or eax, 0xffffffff
jmp 0x14001846f
xor eax, eax
cmp r14, r15
setne al
test eax, eax
jns 0x140018479
mov rsi, qword [rsi + 0x10]
jmp 0x14001847f
mov rbx, rsi
mov rsi, qword [rsi]
cmp byte [rsi + 0x19], 0
mov rax, qword [rbp - 0x51]
je 0x140018420
mov r14, qword [rbp - 0x61]
cmp rbx, rdi
je 0x1400184e5
lea rdx, [rbx + 0x20]
mov rdi, qword [rdx + 0x10]
cmp qword [rdx + 0x18], 0x10
jb 0x1400184a4
mov rdx, qword [rdx]
lea rcx, [rbp - 0x51]
cmp r13, 0x10
cmovae rcx, rax
mov r8, rdi
cmp r15, rdi
cmovb r8, r15
test r8, r8
jne 0x1400184c3
xor eax, eax
jmp 0x1400184c8
call fcn.140050ee0
cdqe
test rax, rax
jne 0x1400184e1
cmp r15, rdi
jae 0x1400184d9
or eax, 0xffffffff
jmp 0x1400184e1
xor eax, eax
cmp r15, rdi
setne al
test eax, eax
jns 0x140018515
lea rax, [rbp - 0x51]
mov qword [rbp - 0x69], rax
lea r8, [rbp - 0x69]
mov rcx, r14
call fcn.14001bf90
lea r9, [rax + 0x20]
mov qword [rsp + 0x20], rax
mov r8, rbx
lea rdx, [rbp - 0x69]
mov rcx, r14
call fcn.14001c010
mov rbx, qword [rbp - 0x69]
mov rax, qword [r12 + 0x10]
add rax, 0x204
mov qword [rbx + 0x48], rax
mov qword [rbx + 0x70], 1
mov byte [rbx + 0x84], 1
mov byte [rbx + 0x82], 0
mov dword [rbx + 0x40], 2
cmp qword [rbp - 0x39], 0x10
jb 0x140018551
mov rcx, qword [rbp - 0x51]
call fcn.140046688
lea rdx, [rbp - 0x11]
mov rcx, r14
call fcn.1400192a0
movzx ebx, al
mov r13, qword [rbp + 7]
cmp r13, 0x10
jb 0x140018573
mov rcx, qword [rbp - 0x11]
call fcn.140046688
movzx eax, bl
mov rcx, qword [rbp + 0x2f]
xor rcx, rsp
call fcn.1400466a0
lea r11, [rsp + 0xe0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret