Function at 0x1401bb250
Capabilities:
Read file via mapping

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x30
mov ebx, dword [rcx + 8]
mov rdi, rcx
mov eax, ebx
mov rbp, r9
shr eax, 0x16
mov rsi, r8
lea eax, [rdx + rax*4]
mov eax, dword [rax]
movzx ecx, al
cmp ecx, 1
jb 0x1401bb5a3
and eax, 0xfffff000
cmp ecx, 0x80
jae 0x1401bb2d1
xor r8d, r8d
mov qword [rsp + 0x20], 0x1000
mov r9d, eax
mov rcx, rsi
lea edx, [r8 + 4]
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov ecx, dword [rdi + 8]
shr ecx, 0xc
and ecx, 0x3ff
lea ecx, [rax + rcx*4]
mov ebx, dword [rcx]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
and ebx, 0xfffff000
jmp 0x1401bb2d9
and ebx, 0x3ff000
add ebx, eax
xor r8d, r8d
mov qword [rsp + 0x20], 0x1000
mov r9d, ebx
mov rcx, rsi
lea edx, [r8 + 4]
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov r10, rax
test rax, rax
je 0x1401bb5a3
mov ebx, dword [rdi + 8]
lea r8, [rbp + 1]
and ebx, 0xfff
mov r11d, 2
add ebx, r10d
lea r9d, [rbx + 1]
nop dword [rax + rax]
lea eax, [r9 - 1]
movzx eax, byte [rax]
mov byte [r8 - 1], al
lea eax, [r9 + 1]
movzx ecx, byte [r9]
mov byte [r8], cl
movzx eax, byte [rax]
mov byte [r8 + 1], al
lea eax, [r9 + 2]
movzx eax, byte [rax]
mov byte [r8 + 2], al
lea eax, [r9 + 3]
movzx eax, byte [rax]
mov byte [r8 + 3], al
lea eax, [r9 + 4]
movzx eax, byte [rax]
mov byte [r8 + 4], al
lea eax, [r9 + 5]
movzx eax, byte [rax]
mov byte [r8 + 5], al
lea eax, [r9 + 6]
movzx eax, byte [rax]
mov byte [r8 + 6], al
lea eax, [r9 + 7]
movzx eax, byte [rax]
mov byte [r8 + 7], al
lea eax, [r9 + 8]
movzx eax, byte [rax]
mov byte [r8 + 8], al
lea eax, [r9 + 9]
movzx eax, byte [rax]
mov byte [r8 + 9], al
lea eax, [r9 + 0xa]
movzx eax, byte [rax]
mov byte [r8 + 0xa], al
lea eax, [r9 + 0xb]
movzx eax, byte [rax]
mov byte [r8 + 0xb], al
lea eax, [r9 + 0xc]
movzx eax, byte [rax]
mov byte [r8 + 0xc], al
lea eax, [r9 + 0xd]
movzx eax, byte [rax]
mov byte [r8 + 0xd], al
lea eax, [r9 + 0xe]
movzx eax, byte [rax]
mov byte [r8 + 0xe], al
lea eax, [r9 + 0xf]
movzx eax, byte [rax]
mov byte [r8 + 0xf], al
lea eax, [r9 + 0x10]
movzx eax, byte [rax]
mov byte [r8 + 0x10], al
lea eax, [r9 + 0x11]
movzx eax, byte [rax]
mov byte [r8 + 0x11], al
lea eax, [r9 + 0x12]
movzx eax, byte [rax]
mov byte [r8 + 0x12], al
lea eax, [r9 + 0x13]
movzx eax, byte [rax]
mov byte [r8 + 0x13], al
lea eax, [r9 + 0x14]
movzx eax, byte [rax]
mov byte [r8 + 0x14], al
lea eax, [r9 + 0x15]
movzx eax, byte [rax]
mov byte [r8 + 0x15], al
lea eax, [r9 + 0x16]
movzx eax, byte [rax]
mov byte [r8 + 0x16], al
lea eax, [r9 + 0x17]
movzx eax, byte [rax]
mov byte [r8 + 0x17], al
lea eax, [r9 + 0x18]
movzx eax, byte [rax]
mov byte [r8 + 0x18], al
lea eax, [r9 + 0x19]
movzx eax, byte [rax]
mov byte [r8 + 0x19], al
lea eax, [r9 + 0x1a]
movzx eax, byte [rax]
mov byte [r8 + 0x1a], al
lea eax, [r9 + 0x1b]
movzx eax, byte [rax]
mov byte [r8 + 0x1b], al
lea eax, [r9 + 0x1c]
movzx eax, byte [rax]
mov byte [r8 + 0x1c], al
lea eax, [r9 + 0x1d]
movzx eax, byte [rax]
mov byte [r8 + 0x1d], al
lea eax, [r9 + 0x1e]
movzx eax, byte [rax]
mov byte [r8 + 0x1e], al
lea eax, [r9 + 0x1f]
movzx eax, byte [rax]
mov byte [r8 + 0x1f], al
lea eax, [r9 + 0x20]
movzx eax, byte [rax]
mov byte [r8 + 0x20], al
lea eax, [r9 + 0x21]
movzx eax, byte [rax]
mov byte [r8 + 0x21], al
lea eax, [r9 + 0x22]
movzx eax, byte [rax]
mov byte [r8 + 0x22], al
lea eax, [r9 + 0x23]
movzx eax, byte [rax]
mov byte [r8 + 0x23], al
lea eax, [r9 + 0x24]
movzx eax, byte [rax]
mov byte [r8 + 0x24], al
lea eax, [r9 + 0x25]
movzx eax, byte [rax]
mov byte [r8 + 0x25], al
lea eax, [r9 + 0x26]
movzx eax, byte [rax]
mov byte [r8 + 0x26], al
lea eax, [r9 + 0x27]
movzx eax, byte [rax]
mov byte [r8 + 0x27], al
lea eax, [r9 + 0x28]
movzx eax, byte [rax]
mov byte [r8 + 0x28], al
lea eax, [r9 + 0x29]
movzx eax, byte [rax]
mov byte [r8 + 0x29], al
lea eax, [r9 + 0x2a]
movzx eax, byte [rax]
mov byte [r8 + 0x2a], al
lea eax, [r9 + 0x2b]
movzx eax, byte [rax]
mov byte [r8 + 0x2b], al
lea eax, [r9 + 0x2c]
movzx eax, byte [rax]
mov byte [r8 + 0x2c], al
lea eax, [r9 + 0x2d]
movzx eax, byte [rax]
mov byte [r8 + 0x2d], al
lea eax, [r9 + 0x2e]
movzx eax, byte [rax]
mov byte [r8 + 0x2e], al
lea eax, [r9 + 0x2f]
movzx eax, byte [rax]
mov byte [r8 + 0x2f], al
lea eax, [r9 + 0x30]
movzx eax, byte [rax]
mov byte [r8 + 0x30], al
lea eax, [r9 + 0x31]
movzx eax, byte [rax]
mov byte [r8 + 0x31], al
lea eax, [r9 + 0x32]
movzx eax, byte [rax]
mov byte [r8 + 0x32], al
lea eax, [r9 + 0x33]
movzx eax, byte [rax]
mov byte [r8 + 0x33], al
lea eax, [r9 + 0x34]
movzx eax, byte [rax]
mov byte [r8 + 0x34], al
lea eax, [r9 + 0x35]
movzx edx, byte [rax]
lea ecx, [r9 + 0x36]
mov byte [r8 + 0x35], dl
lea r8, [r8 + 0x38]
movzx ecx, byte [rcx]
lea r9d, [r9 + 0x38]
mov byte [r8 - 2], cl
sub r11, 1
jne 0x1401bb320
mov rcx, r10
call qword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov eax, ebx
jmp 0x1401bb5a5
xor eax, eax
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret