Function at 0x421800
Capabilities:
Get file size
Read file via mapping

Disassembly:
mov rax, rsp
sub rsp, 0x1b8
mov qword [rsp + 0x60], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
mov qword [rax - 8], rdi
mov qword [rax - 0x10], r12
mov qword [rax - 0x18], r13
mov qword [rax - 0x20], r14
mov qword [rax - 0x28], r15
mov rax, qword [0x0047e2e8]
mov qword [rsp + 0x180], rax
mov r13, rcx
mov edi, dword [rcx + 0xa8]
mov r8d, 0x104
lea rdx, [rsp + 0x70]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
xor r15d, r15d
mov qword [rsp + 0x30], r15
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x80000000
lea r8d, [r15 + 3]
lea rcx, [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov r12, rax
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov ebx, eax
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], r15d
xor r9d, r9d
xor edx, edx
lea r8d, [r15 + 2]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_CreateFileMappingA]
mov r14, rax
mov qword [rsp + 0x20], rbx
xor r9d, r9d
xor r8d, r8d
lea edx, [r15 + 4]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov rbp, rax
lea ecx, [rdi - 4]
movsxd rdi, ecx
movsxd rsi, dword [rdi + rax]
mov qword [rsp + 0x48], r15
mov dword [rsp + 0x50], r15d
lea rax, [0x00463658]
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x58], r15d
xor edx, edx
lea rcx, [rsp + 0x40]
call qword [0x00463660]
nop
lea rax, [0x00463698]
mov qword [rsp + 0x40], rax
movsxd rbx, dword [rsp + 0x50]
mov edx, ebx
lea rcx, [rsp + 0x40]
call qword [0x004636a0]
cmp ebx, ebx
jge 0x421943
mov rcx, qword [rsp + 0x48]
add rcx, rbx
mov eax, ebx
sub eax, ebx
movsxd r8, eax
mov rdx, rcx
call fcn.00448f40
mov rcx, qword [rsp + 0x48]
lea rax, [0x004636e8]
mov qword [rsp + 0x40], rax
lea eax, [rsi + 1]
mov edx, dword [rsp + 0x58]
cmp eax, edx
jle 0x42199c
mov r8d, 8
cmp edx, r8d
cmovl edx, r8d
mov dword [rsp + 0x58], edx
cmp eax, edx
jle 0x42198c
add edx, edx
mov dword [rsp + 0x58], edx
cmp eax, edx
jle 0x42198c
lea edx, [rax + 0xb]
mov eax, edx
and eax, 7
sub edx, eax
mov dword [rsp + 0x58], edx
movsxd rdx, edx
call fcn.00449280
mov rcx, rax
mov qword [rsp + 0x48], rax
mov byte [rsi + rcx], 0
mov dword [rsp + 0x50], esi
mov edx, esi
lea rcx, [rsp + 0x40]
mov rax, qword [rsp + 0x40]
call qword [rax + 8]
sub rdi, rsi
lea rdx, [rbp + rdi]
mov r8, rsi
mov rcx, qword [rsp + 0x48]
call fcn.0044a380
lea rdx, [rsp + 0x40]
mov rcx, r13
call fcn.0041f010
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
lea rax, [0x00463658]
mov qword [rsp + 0x40], rax
mov rcx, qword [rsp + 0x48]
mov qword [rsp + 0x48], r15
mov dword [rsp + 0x50], r15d
mov dword [rsp + 0x58], r15d
test rcx, rcx
je 0x421a1b
call fcn.00448f10
mov rcx, qword [rsp + 0x180]
call fcn.00462020
mov rbx, qword [rsp + 0x1c8]
mov rbp, qword [rsp + 0x1d0]
mov rsi, qword [rsp + 0x1d8]
mov rdi, qword [rsp + 0x1b0]
mov r12, qword [rsp + 0x1a8]
mov r13, qword [rsp + 0x1a0]
mov r14, qword [rsp + 0x198]
mov r15, qword [rsp + 0x190]
add rsp, 0x1b8
ret