Function at 0x180003338
Capabilities:
Get file size
Read file on windows

Disassembly:
mov rcx, qword [str.KERNEL32.dll]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rsi, rax
mov edx, dword [0x1803e6606]
mov edx, edx
mov r9d, 4
mov r8d, 0x1000
mov ecx, 0
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rbx, rax
mov edx, dword [0x1803e6606]
mov edx, edx
mov rcx, rax
call fcn.1800032dc
mov r8d, 0x104
mov rdx, rbx
mov ecx, 0
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov r9, qword [0x1803e663a]
mov eax, 0
cmp word [rbx], 0
je 0x1800033ac
add eax, 1
mov edx, eax
cmp word [rbx + rdx*2], 0
jne 0x1800033a0
lea edx, [rax - 1]
mov ecx, edx
cmp word [rbx + rcx*2], 0x5c
je 0x1800033d1
lea eax, [rdx + 1]
mov word [rbx + rax*2], 0
lea eax, [rdx - 1]
mov ecx, eax
cmp word [rbx + rcx*2], 0x5c
je 0x1800033d3
mov edx, eax
jmp 0x1800033b8
mov edx, eax
movzx eax, byte [r9]
test al, al
je 0x1800033f9
mov ecx, 0
lea r8d, [rdx + rcx]
cbw
mov word [rbx + r8*2], ax
add ecx, 1
mov eax, ecx
movzx eax, byte [r9 + rax]
test al, al
jne 0x1800033e0
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
mov r9d, 0
mov r8d, 1
mov edx, 1
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rdi, rax
cmp rax, 0xffffffffffffffff
cmp eax, 0xffffffff
je 0x1800035fc
mov edx, 0
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov ebp, eax
mov ebx, dword [0x1803e6612]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8d, ebx
mov edx, 0
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rbx, rax
mov edx, dword [0x1803e6612]
mov edx, edx
mov rcx, rax
call fcn.1800032dc
mov dword [rsp + 0x6c], 0
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x6c]
mov r8d, ebp
mov rdx, rbx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1800035fc
mov r12d, dword [rsp + 0x6c]
mov edx, dword [0x1803e6642]
mov edx, edx
add rdx, rbx
mov r8d, dword [rdx]
mov ecx, dword [rdx + 4]
lea rax, [rdx + 8]
test r8d, r8d
je 0x1800034d9
lea r8d, [r8 - 1]
lea r8, [rdx + r8*4 + 0xc]
add dword [rax], ecx
add rax, 4
cmp rax, r8
jne 0x1800034ce
mov edi, dword [0x1803e661e]
mov edi, edi
add rdi, rdx
lea rdx, [rdi + 1]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r13, rax
test rax, rax
je 0x1800035fc
movsx rdx, byte [rdi]
add rdi, rdx
lea rdx, [rdi + 1]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbp, rax
test rax, rax
je 0x1800035fc
movsx rax, byte [rdi]
add rdi, rax
lea rcx, [rdi + 1]
call r13
test rax, rax
je 0x1800035fc
mov r12d, r12d
add rbx, r12
movsx rdx, byte [rdi]
add rdx, rdi
mov edi, dword [0x1803e65f6]
mov edi, edi
add rdi, rdx
mov esi, dword [rdx + 4]
mov dword [rsp + 0x4c], esi
mov r14d, dword [rdx + 8]
mov r12d, r14d
lea r15, [rdi + r12]
movsxd rdx, dword [rax + 0x3c]
mov esi, dword [rax + rdx + 0x2c]
add rsi, rax
mov dword [rsp + 0x68], 0
mov r8d, dword [0x1803e65e2]
lea r13, [rsp + 0x68]
mov r9, r13
mov rdx, r12
mov rcx, rsi
call rbp
mov r8d, r14d
mov rdx, rdi
mov rcx, rsi
call fcn.1800032fb
mov r9, r13
mov r8d, dword [rsp + 0x68]
mov rdx, r12
mov rcx, rsi
call rbp
mov eax, dword [rsp + 0x4c]
add rsi, rax
mov rax, qword [0x1803e65ee]
cmp byte [rax], 0
je 0x18000360d
mov edx, 0
mov rcx, qword [0x1803e65ee]
movsx cx, byte [rcx + rdx]
mov word [rbx + rdx*2], cx
mov rcx, qword [0x1803e65ee]
add rdx, 1
cmp byte [rcx + rdx], 0
jne 0x1800035be
mov word [rbx + rdx*2], 0
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x50], r15
mov byte [rsp + 0x60], 1
lea rcx, [rsp + 0x50]
call rsi
nop
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov edx, 0
jmp 0x1800035df