Function at 0x43e1d0
Capabilities:
Allocate or change rwx memory

Disassembly:
push rbp
sub rsp, 0xa0
mov rbp, rsp
mov qword [rbp + 0x28], rbp
mov qword [rbp + 0xb0], rcx
mov qword [rbp + 0xb8], rdx
mov qword [rbp + 0xc0], r8
mov qword [rbp + 0xc8], r9
mov qword [rbp + 0x88], 0
mov qword [rbp + 0x98], 0
mov qword [rbp + 0x90], 0
lea rcx, [rbp + 0x50]
mov edx, 0x38
call fcn.00421ad0
mov rax, qword [rbp + 0xd8]
mov qword [rbp + 0x50], rax
mov eax, dword [rbp + 0xe8]
mov dword [rbp + 0x58], eax
mov rax, qword [rbp + 0xe0]
mov qword [rbp + 0x68], rax
mov eax, dword [rbp + 0xf0]
mov dword [rbp + 0x70], eax
mov qword [rbp + 0x78], 0
mov qword [rbp + 0x60], 0
cmp qword [rbp + 0xf8], 0
je 0x43e27a
mov rax, qword [rbp + 0xf8]
mov dword [rax], 0xffffffff
mov rcx, rbp
lea rdx, [rbp + 0x50]
call fcn.0043c0c0
mov rcx, rbp
lea rdx, [rbp + 0x50]
call fcn.0043c450
mov ecx, 0x16e8
call fcn.004088f0
mov qword [rbp + 0x48], rax
mov rcx, qword [rbp + 0x48]
mov edx, 0x16e8
call fcn.00421ad0
nop
mov rax, qword [rbp + 0x48]
mov qword [rbp + 0x80], rax
mov rax, qword [rbp + 0x48]
lea rcx, [rbp + 0x50]
mov qword [rax], rcx
mov rax, qword [rbp + 0x48]
mov dword [rax + 0x24], 0x8000
mov rax, qword [rbp + 0x48]
mov rcx, qword [rbp + 0x48]
mov ecx, dword [rcx + 0x24]
sub ecx, 1
mov dword [rax + 0x2c], ecx
mov rax, qword [rbp + 0x48]
mov dword [rax + 0x58], 0xf
mov rax, qword [rbp + 0x48]
mov edx, 1
mov rcx, qword [rbp + 0x48]
movzx rcx, byte [rcx + 0x58]
shl edx, cl
mov dword [rax + 0x54], edx
mov rax, qword [rbp + 0x48]
mov rcx, qword [rbp + 0x48]
mov ecx, dword [rcx + 0x54]
sub ecx, 1
mov dword [rax + 0x5c], ecx
mov rcx, qword [rbp + 0x48]
mov rax, qword [rbp + 0x48]
mov eax, dword [rax + 0x58]
add eax, 2
mov r8d, 3
xor edx, edx
div r8d
mov dword [rcx + 0x60], eax
mov rax, qword [rbp + 0x48]
mov ecx, dword [rax + 0x24]
add ecx, ecx
mov ecx, ecx
call fcn.004088f0
mov rcx, qword [rbp + 0x48]
mov qword [rcx + 0x30], rax
mov rax, qword [rbp + 0x48]
mov ecx, dword [rax + 0x24]
add ecx, ecx
mov ecx, ecx
call fcn.004088f0
mov rcx, qword [rbp + 0x48]
mov qword [rcx + 0x40], rax
mov rax, qword [rbp + 0x48]
mov ecx, dword [rax + 0x54]
add ecx, ecx
mov ecx, ecx
call fcn.004088f0
mov rcx, qword [rbp + 0x48]
mov qword [rcx + 0x48], rax
mov rax, qword [rbp + 0x48]
mov dword [rax + 0x16b8], 0x4000
xor rcx, rcx
mov rax, qword [rbp + 0x48]
mov edx, dword [rax + 0x16b8]
add edx, edx
add edx, edx
mov edx, edx
mov r8d, 0x1000
mov r9d, 0x40
call sub.kernel32.dll_VirtualAlloc
mov qword [rbp + 0x40], rax
mov rax, qword [rbp + 0x48]
mov rcx, qword [rbp + 0x40]
mov qword [rax + 8], rcx
mov rax, qword [rbp + 0x48]
mov rcx, qword [rbp + 0x48]
mov ecx, dword [rcx + 0x16b8]
add ecx, ecx
add ecx, ecx
mov dword [rax + 0x10], ecx
mov rcx, qword [rbp + 0x48]
mov r8, qword [rbp + 0x40]
mov rax, qword [rbp + 0x48]
mov r9d, 2
mov eax, dword [rax + 0x16b8]
xor edx, edx
div r9d
mov eax, eax
lea rax, [r8 + rax*2]
mov qword [rcx + 0x16c0], rax
mov rax, qword [rbp + 0x48]
mov rcx, qword [rbp + 0x48]
mov rcx, qword [rcx + 8]
mov rdx, qword [rbp + 0x48]
mov edx, dword [rdx + 0x16b8]
lea rdx, [rdx + rdx*2]
mov edx, edx
lea rcx, [rcx + rdx]
mov qword [rax + 0x16b0], rcx
mov rax, qword [rbp + 0x48]
mov dword [rax + 0x20], 0
mov rax, qword [rbp + 0x48]
mov rcx, qword [rbp + 0x48]
mov rcx, qword [rcx + 8]
mov qword [rax + 0x18], rcx
mov rax, qword [rbp + 0x48]
mov dword [rax + 0x16d0], 0
mov rax, qword [rbp + 0x48]
mov rcx, qword [rbp + 0x48]
lea rcx, [rcx + 0x84]
mov qword [rax + 0xb08], rcx
mov rax, qword [rbp + 0x48]
lea rcx, [0x00b230b0]
mov qword [rax + 0xb18], rcx
mov rax, qword [rbp + 0x48]
mov rcx, qword [rbp + 0x48]
lea rcx, [rcx + 0x978]
mov qword [rax + 0xb20], rcx
mov rax, qword [rbp + 0x48]
lea rcx, [0x00b230d0]
mov qword [rax + 0xb30], rcx
mov rax, qword [rbp + 0x48]
mov rcx, qword [rbp + 0x48]
lea rcx, [rcx + 0xa6c]
mov qword [rax + 0xb38], rcx
mov rax, qword [rbp + 0x48]
lea rcx, [0x00b230f0]
mov qword [rax + 0xb48], rcx
mov rax, qword [rbp + 0x48]
mov word [rax + 0x16dc], 0
mov rax, qword [rbp + 0x48]
mov dword [rax + 0x16e0], 0
mov rax, qword [rbp + 0x48]
mov dword [rax + 0x16d8], 8
mov rcx, rbp
mov rdx, qword [rbp + 0x48]
call fcn.0043cad0
mov rax, qword [rbp + 0x48]
mov rcx, qword [rbp + 0x48]
mov ecx, dword [rcx + 0x24]
add ecx, ecx
mov dword [rax + 0x38], ecx
mov rax, qword [rbp + 0x48]
mov rax, qword [rax + 0x48]
mov rcx, qword [rbp + 0x48]
mov ecx, dword [rcx + 0x54]
mov word [rax + rcx*2 - 2], 0
mov rax, qword [rbp + 0x48]
mov rcx, qword [rax + 0x48]
mov rax, qword [rbp + 0x48]
mov edx, dword [rax + 0x54]
sub edx, 1
add edx, edx
mov edx, edx
call fcn.00421ad0
mov rax, qword [rbp + 0x48]
mov dword [rax + 0x74], 0
mov rax, qword [rbp + 0x48]
mov dword [rax + 0x64], 0
mov rax, qword [rbp + 0x48]
mov dword [rax + 0x7c], 0
mov rax, qword [rbp + 0x48]
mov dword [rax + 0x80], 2
mov rax, qword [rbp + 0x48]
mov dword [rax + 0x68], 2
mov rax, qword [rbp + 0x48]
mov byte [rax + 0x70], 0
mov rax, qword [rbp + 0x48]
mov dword [rax + 0x50], 0
mov dword [rbp + 0x3c], 0
mov rax, qword [rbp + 0x48]
cmp dword [rax + 0x7c], 0x106
jae 0x43e5eb
mov rcx, rbp
mov rdx, qword [rbp + 0x48]
call fcn.0043c940
mov rax, qword [rbp + 0x48]
cmp dword [rax + 0x7c], 0
jne 0x43e5eb
mov rcx, rbp
mov rdx, qword [rbp + 0x48]
mov r8b, 1
call fcn.0043e030
cmp dword [rbp + 0x70], 0
je 0x43e7c8
mov rax, qword [rbp + 0x78]
mov ecx, dword [rbp + 0xd0]
neg rcx
lea rax, [rax + rcx]
mov qword [rbp + 0x88], rax
jmp 0x43e7c8
mov rax, qword [rbp + 0x48]
cmp dword [rax + 0x7c], 3
jb 0x43e60d
mov rcx, rbp
mov rdx, qword [rbp + 0x48]
mov rax, qword [rbp + 0x48]
mov r8d, dword [rax + 0x74]
lea r9, [rbp + 0x3c]
call fcn.0043e180
cmp dword [rbp + 0x3c], 0
je 0x43e645
mov rax, qword [rbp + 0x48]
mov eax, dword [rax + 0x74]
sub eax, dword [rbp + 0x3c]
mov rcx, qword [rbp + 0x48]
mov ecx, dword [rcx + 0x24]
sub ecx, 0x106
cmp eax, ecx
ja 0x43e645
mov rcx, rbp
mov rdx, qword [rbp + 0x48]
mov r8d, dword [rbp + 0x3c]
call fcn.0043c650
mov rcx, qword [rbp + 0x48]
mov dword [rcx + 0x68], eax
mov rax, qword [rbp + 0x48]
cmp dword [rax + 0x68], 3
jb 0x43e76d
mov rcx, rbp
mov rdx, qword [rbp + 0x48]
mov rax, qword [rbp + 0x48]
mov r8, qword [rbp + 0x48]
mov eax, dword [rax + 0x74]
sub eax, dword [r8 + 0x78]
mov r8d, eax
mov rax, qword [rbp + 0x48]
mov r9d, dword [rax + 0x68]
sub r9d, 3
call fcn.0043e0b0
mov byte [rbp + 0x3b], al
mov rax, qword [rbp + 0x48]
lea rax, [rax + 0x7c]
mov rcx, qword [rbp + 0x48]
mov ecx, dword [rcx + 0x68]
sub dword [rax], ecx
mov rax, qword [rbp + 0x48]
cmp dword [rax + 0x68], 5
ja 0x43e6f8
mov rax, qword [rbp + 0x48]
cmp dword [rax + 0x7c], 3
jb 0x43e6f8
mov rax, qword [rbp + 0x48]
lea rax, [rax + 0x68]
sub dword [rax], 1
mov rax, qword [rbp + 0x48]
lea rax, [rax + 0x74]
add dword [rax], 1
mov rcx, rbp
mov rdx, qword [rbp + 0x48]
mov rax, qword [rbp + 0x48]
mov r8d, dword [rax + 0x74]
lea r9, [rbp + 0x3c]
call fcn.0043e180
mov rax, qword [rbp + 0x48]
lea rax, [rax + 0x68]
sub dword [rax], 1
mov rax, qword [rbp + 0x48]
cmp dword [rax + 0x68], 0
jne 0x43e6b0
mov rax, qword [rbp + 0x48]
lea rax, [rax + 0x74]
add dword [rax], 1
jmp 0x43e7aa
mov rax, qword [rbp + 0x48]
lea rax, [rax + 0x74]
mov rcx, qword [rbp + 0x48]
mov ecx, dword [rcx + 0x68]
add dword [rax], ecx
mov rax, qword [rbp + 0x48]
mov dword [rax + 0x68], 0
mov rax, qword [rbp + 0x48]
mov rcx, qword [rbp + 0x48]
mov rcx, qword [rcx + 0x30]
mov rdx, qword [rbp + 0x48]
mov edx, dword [rdx + 0x74]
movzx rcx, byte [rcx + rdx]
mov dword [rax + 0x50], ecx
mov rax, qword [rbp + 0x48]
mov rcx, qword [rbp + 0x48]
mov rdx, qword [rbp + 0x48]
mov r8d, dword [rcx + 0x50]
movzx rcx, byte [rdx + 0x60]
shl r8d, cl
mov rcx, qword [rbp + 0x48]
mov rcx, qword [rcx + 0x30]
mov rdx, qword [rbp + 0x48]
mov edx, dword [rdx + 0x74]
movzx rcx, byte [rcx + rdx + 1]
xor r8d, ecx
mov rcx, qword [rbp + 0x48]
and r8d, dword [rcx + 0x5c]
mov dword [rax + 0x50], r8d
jmp 0x43e7aa
mov rcx, rbp
mov rdx, qword [rbp + 0x48]
xor r8, r8
mov rax, qword [rbp + 0x48]
mov rax, qword [rax + 0x30]
mov r9, qword [rbp + 0x48]
mov r9d, dword [r9 + 0x74]
movzx r9, byte [rax + r9]
call fcn.0043e0b0
mov byte [rbp + 0x3b], al
mov rax, qword [rbp + 0x48]
lea rax, [rax + 0x7c]
sub dword [rax], 1
mov rax, qword [rbp + 0x48]
lea rax, [rax + 0x74]
add dword [rax], 1
cmp byte [rbp + 0x3b], 0
je 0x43e592
mov rcx, rbp
mov rdx, qword [rbp + 0x48]
xor r8, r8
call fcn.0043e030
jmp 0x43e592
nop
mov rcx, rbp
lea rdx, [rbp + 0x50]
call fcn.0043c350
jmp 0x43e7ea
cmp qword [rbp + 0xc0], 0
je 0x43e80a
cmp qword [rbp + 0xd8], 0
je 0x43e80a
mov rcx, qword [rbp + 0xd8]
call sub.kernel32.dll_UnmapViewOfFile
cmp qword [rbp + 0xc8], 0
je 0x43e82a
cmp qword [rbp + 0xe0], 0
je 0x43e82a
mov rcx, qword [rbp + 0xe0]
call sub.kernel32.dll_UnmapViewOfFile
mov rax, qword [rbp + 0x48]
mov rcx, qword [rax + 8]
xor rdx, rdx
mov r8d, 0x8000
call sub.kernel32.dll_VirtualFree
mov rax, qword [rbp + 0x48]
mov rcx, qword [rax + 0x48]
call fcn.00408920
mov rax, qword [rbp + 0x48]
mov rcx, qword [rax + 0x40]
call fcn.00408920
mov rax, qword [rbp + 0x48]
mov rcx, qword [rax + 0x30]
call fcn.00408920
mov rcx, qword [rbp + 0x48]
call fcn.00408920
cmp qword [rbp + 0x98], 0
je 0x43e891
mov rcx, qword [rbp + 0x98]
xor rdx, rdx
mov r8d, 0x8000
call sub.kernel32.dll_VirtualFree
cmp qword [rbp + 0x90], 0
je 0x43e8b1
mov rcx, qword [rbp + 0x90]
xor rdx, rdx
mov r8d, 0x8000
call sub.kernel32.dll_VirtualFree
cmp qword [rbp + 0xf8], 0
je 0x43e8c4
mov rax, qword [rbp + 0xf8]
not dword [rax]
mov rax, qword [rbp + 0x88]
lea rsp, [rbp + 0xa0]
pop rbp
ret