Function at 0x18001552c
Capabilities:
Allocate or change rwx memory

Disassembly:
mov dword [rsp + 0x20], r9d
mov dword [rsp + 0x18], r8d
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rsi
push rdi
sub rsp, 0x98
mov ecx, 0x40
call fcn.180019ab4
mov qword [rsp + 0x70], rax
mov edx, 0x40
mov rcx, qword [rsp + 0x70]
call fcn.180019d08
mov qword [0x18005dea8], rax
mov r8d, dword [rsp + 0xb8]
mov rdx, qword [rsp + 0xb0]
lea rcx, [rsp + 0x78]
call fcn.180019c54
lea rcx, [rsp + 0x78]
call fcn.180019dbc
movzx eax, ax
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0xfb
jne 0x1800156bb
lea rcx, [rsp + 0x78]
call fcn.180019c98
mov dword [0x18005487c], eax
movsxd rax, dword [0x18005487c]
mov r9d, 4
mov r8d, 0x1000
mov rdx, rax
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov qword [0x180054880], rax
lea rcx, [rsp + 0x78]
call fcn.180019dbc
movzx eax, ax
mov dword [0x18005de90], eax
lea rcx, [rsp + 0x78]
call fcn.180019dbc
movzx eax, ax
mov dword [0x18005de8c], eax
lea rcx, [rsp + 0x78]
call fcn.180019c98
mov dword [0x18005de94], eax
mov r8d, 0x40
mov rdx, qword [0x18005dea8]
lea rcx, [rsp + 0x78]
call fcn.180019e30
mov dword [0x18005de98], eax
lea rcx, [rsp + 0x78]
call fcn.180019c98
mov dword [0x18005de9c], eax
cmp dword [0x18005de9c], 0
jbe 0x180015660
mov edx, dword [0x18005de9c]
lea rcx, [rsp + 0x78]
call fcn.180019d08
mov qword [0x18005deb0], rax
jmp 0x18001566b
mov qword [0x18005deb0], 0
lea rcx, [rsp + 0x78]
call fcn.180019b40
mov qword [rsp + 0x68], rax
lea rcx, [rsp + 0x78]
call fcn.18000fbe0
mov dword [0x18005dea0], eax
mov eax, dword [0x18005dea0]
mov rdi, qword [0x180054880]
mov rsi, qword [rsp + 0x68]
mov ecx, eax
rep movsb byte [rdi], byte [rsi]
mov eax, dword [0x18005dea0]
mov ecx, dword [0x180054878]
add ecx, eax
mov eax, ecx
mov dword [0x180054878], eax
jmp 0x180015902
cmp dword [rsp + 0x60], 0xfc
jne 0x1800157d2
lea rcx, [rsp + 0x78]
call fcn.180019b40
mov qword [rsp + 0x68], rax
lea rcx, [rsp + 0x78]
call fcn.18000fbe0
mov dword [rsp + 0x64], eax
mov eax, dword [rsp + 0x64]
mov ecx, dword [0x180054878]
mov rdx, qword [0x180054880]
add rdx, rcx
mov rcx, rdx
mov rdi, rcx
mov rsi, qword [rsp + 0x68]
mov ecx, eax
rep movsb byte [rdi], byte [rsi]
mov eax, dword [rsp + 0x64]
mov ecx, dword [0x180054878]
add ecx, eax
mov eax, ecx
mov dword [0x180054878], eax
mov eax, dword [0x18005487c]
cmp dword [0x180054878], eax
jne 0x1800157cd
mov eax, dword [rsp + 0xc8]
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0xc0]
mov dword [rsp + 0x48], eax
mov eax, dword [0x18005de98]
mov dword [rsp + 0x40], eax
mov rax, qword [0x18005dea8]
mov qword [rsp + 0x38], rax
mov eax, dword [0x18005de9c]
mov dword [rsp + 0x30], eax
mov rax, qword [0x18005deb0]
mov qword [rsp + 0x28], rax
mov eax, dword [0x180054878]
mov dword [rsp + 0x20], eax
mov r9, qword [0x180054880]
mov r8d, dword [0x18005de94]
mov edx, dword [0x18005de8c]
mov ecx, dword [0x18005de90]
call fcn.18001590c
mov rcx, qword [rsp + 0x70]
call fcn.180019c24
mov r8d, 0x8000
xor edx, edx
mov rcx, qword [0x180054880]
call qword [sym.imp.KERNEL32.dll_VirtualFree]
mov dword [0x180054878], 0
mov dword [0x18005487c], 0
jmp 0x180015902
cmp dword [rsp + 0x60], 0xff
jne 0x180015902
lea rcx, [rsp + 0x78]
call fcn.180019dbc
movzx eax, ax
mov dword [0x18005de90], eax
lea rcx, [rsp + 0x78]
call fcn.180019dbc
movzx eax, ax
mov dword [0x18005de8c], eax
lea rcx, [rsp + 0x78]
call fcn.180019c98
mov dword [0x18005de94], eax
mov r8d, 0x40
mov rdx, qword [0x18005dea8]
lea rcx, [rsp + 0x78]
call fcn.180019e30
mov dword [0x18005de98], eax
lea rcx, [rsp + 0x78]
call fcn.180019c98
mov dword [0x18005de9c], eax
cmp dword [0x18005de9c], 0
jbe 0x180015865
mov edx, dword [0x18005de9c]
lea rcx, [rsp + 0x78]
call fcn.180019d08
mov qword [0x18005deb0], rax
jmp 0x180015870
mov qword [0x18005deb0], 0
lea rcx, [rsp + 0x78]
call fcn.180019b40
mov qword [rsp + 0x68], rax
lea rcx, [rsp + 0x78]
call fcn.18000fbe0
mov dword [0x18005dea0], eax
mov eax, dword [rsp + 0xc8]
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0xc0]
mov dword [rsp + 0x48], eax
mov eax, dword [0x18005de98]
mov dword [rsp + 0x40], eax
mov rax, qword [0x18005dea8]
mov qword [rsp + 0x38], rax
mov eax, dword [0x18005de9c]
mov dword [rsp + 0x30], eax
mov rax, qword [0x18005deb0]
mov qword [rsp + 0x28], rax
mov eax, dword [0x18005dea0]
mov dword [rsp + 0x20], eax
mov r9, qword [rsp + 0x68]
mov r8d, dword [0x18005de94]
mov edx, dword [0x18005de8c]
mov ecx, dword [0x18005de90]
call fcn.18001590c
mov rcx, qword [rsp + 0x70]
call fcn.180019c24
add rsp, 0x98
pop rdi
pop rsi
ret