Function at 0x140001340
Capabilities:
Get file size
Get system information on windows
Link many functions at runtime

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r12
push r13
push r15
mov eax, 0x1150
call fcn.1400026d0
sub rsp, rax
mov rax, qword [0x140005008]
xor rax, rsp
mov qword [rsp + 0x1140], rax
xor r9d, r9d
lea r8, str.Dooper
lea rdx, str.Plooper
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
mov edx, 0x95d55ff
lea rcx, str.kernel32
call fcn.140001190
mov edx, 0x754d386
mov qword [rsp + 0x60], rax
lea rcx, str.kernel32
call fcn.140001190
mov edx, 0x4ae9bc6
lea rcx, str.kernel32
call fcn.140001190
mov edx, 0x7289067
lea rcx, str.kernelbase
mov rdi, rax
call fcn.140001190
mov edx, 0x68f3884
mov qword [rsp + 0x68], rax
lea rcx, str.kernel32
call fcn.140001190
mov edx, 0x3206721
mov qword [rsp + 0x78], rax
lea rcx, str.ucrtbase
call fcn.140001190
mov edx, 0x84d80b0
mov qword [rsp + 0x80], rax
lea rcx, str.kernel32
call fcn.140001190
xor esi, esi
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x30], rsi
lea rcx, str.C:WindowsSystem32_ntdll.dll
mov dword [rsp + 0x28], 0x80
xor r9d, r9d
mov edx, 0x80000000
mov dword [rsp + 0x20], 3
lea r8d, [rsi + 1]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rcx, rax
xor edx, edx
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetFileSize]
xor r9d, r9d
mov qword [rsp + 0x28], rsi
xor edx, edx
mov dword [rsp + 0x20], esi
mov r8d, 0x1000002
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CreateFileMappingW]
xor r9d, r9d
mov qword [rsp + 0x20], rsi
mov rcx, rax
mov qword [rsp + 0x88], rax
xor r8d, r8d
lea edx, [rsi + 4]
call rdi
mov rcx, rbx
mov rbp, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
movsxd rcx, dword [rbp + 0x3c]
mov esi, dword [rcx + rbp + 0x88]
lea rcx, str.ntdll.dll
add rsi, rbp
mov r15d, dword [rsi + 0x1c]
mov edi, dword [rsi + 0x20]
add r15, rbp
mov r12d, dword [rsi + 0x24]
add rdi, rbp
add r12, rbp
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rcx, rax
lea rdx, str.NtCreateThreadEx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r13, rax
test rax, rax
jne 0x1400014fb
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.Failed_to_obtain_address_for_NtCreateThreadEx_0x_lx_n
jmp 0x14000197c
xor ebx, ebx
mov qword [rsp + 0x1180], r14
mov r14, qword [0x140005620]
cmp dword [rsi + 0x18], ebx
jbe 0x140001549
mov ecx, dword [rdi]
lea rdx, str.NtCreateThreadEx
add rcx, rbp
mov r8d, 0x10
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp]
test eax, eax
je 0x14000153a
inc ebx
add rdi, 4
cmp ebx, dword [rsi + 0x18]
jb 0x140001511
jmp 0x140001549
movsxd rax, ebx
movzx ecx, word [r12 + rax*2]
mov r14d, dword [r15 + rcx*4]
add r14, rbp
cmp r14, r13
mov r14, qword [rsp + 0x1180]
jne 0x140001568
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.Found_function_is_the_same_as_the_original_0x_lx_n
jmp 0x14000197c
lea rax, [rsp + 0x90]
mov r9d, 0x20019
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.SYSTEMControlSet001EnumUSBSTOR
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x140001983
mov rcx, qword [rsp + 0x90]
lea rax, [rsp + 0x9c]
xor ebx, ebx
xor r9d, r9d
mov qword [rsp + 0x58], rbx
xor r8d, r8d
mov qword [rsp + 0x50], rbx
xor edx, edx
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
test eax, eax
jne 0x140001983
cmp dword [rsp + 0x9c], 1
jb 0x140001983
lea rcx, [rsp + 0x110]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
cmp dword [rsp + 0x130], 2
jb 0x140001983
lea rcx, [rsp + 0xd0]
mov dword [rsp + 0xd0], 0x40
call qword [rsp + 0x60]
test eax, eax
je 0x140001983
mov rax, qword [rsp + 0xd8]
shr rax, 0x14
cmp eax, 0x800
jb 0x140001983
mov qword [rsp + 0x30], rbx
lea r8d, [rbx + 3]
mov dword [rsp + 0x28], ebx
lea rcx, str..PhysicalDrive0
xor r9d, r9d
mov dword [rsp + 0x20], 3
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov qword [rsp + 0x38], rbx
lea rcx, [rsp + 0xa4]
mov qword [rsp + 0x30], rcx
xor r9d, r9d
lea rcx, [rsp + 0xb0]
mov dword [rsp + 0x28], 0x18
mov qword [rsp + 0x20], rcx
xor r8d, r8d
mov rcx, rax
mov edx, 0x70000
call qword [rsp + 0x68]
test eax, eax
je 0x140001983
mov ecx, dword [rsp + 0xc0]
mov eax, dword [rsp + 0xc4]
imul rax, rcx
mov ecx, dword [rsp + 0xbc]
imul rax, rcx
imul rax, qword [rsp + 0xb0]
cqo
and edx, 0x3fffffff
add rax, rdx
sar rax, 0x1e
cmp eax, 0x64
jb 0x140001983
lea r8, [rsp + 0xa0]
mov edx, 0x1000
lea rcx, [rsp + 0x140]
call qword [rsp + 0x70]
test eax, eax
je 0x140001983
mov eax, dword [rsp + 0xa0]
and eax, 0xfffffffc
cmp eax, 0xc8
jb 0x140001983
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
lea rcx, str.ntdll.dll
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rcx, rax
lea rdx, str.NtDelayExecution
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [rsp + 0xa8]
mov qword [rsp + 0xa8], 0xffffffffc4653600
xor ecx, ecx
call rax
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
sub rax, rbx
cmp rax, 0x186a0
jb 0x140001983
mov ecx, 0xf4240
call qword [sym.imp.KERNEL32.dll_Sleep]
lea rcx, str.ntdll.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rcx, rax
lea rdx, str.PUserSharedData
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, str.ntdll.dll
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rcx, rax
lea rdx, str.PUserSharedData0x3a0
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, str.ntdll.dll
mov rsi, rax
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rcx, rax
lea rdx, str.PUserSharedData0x3a4
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
mov edx, dword [rdi]
mov r9, rax
mov r8d, dword [rbx]
mov ecx, dword [rsi]
imul r8, rdx
shl ecx, 8
imul ecx, edx
shr r8, 0x18
add r8d, ecx
sub eax, r8d
cmp eax, 0x64
jbe 0x14000181a
sub r8d, r9d
cmp r8d, 0x64
ja 0x140001983
mov edx, 1
mov byte [rsp + 0x98], 0x90
xor ecx, ecx
mov r8d, 0x3000
lea r9d, [rdx + 0x3f]
call qword [rsp + 0x78]
mov rbx, rax
test rax, rax
jne 0x140001851
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.Failed_to_allocate_memory_for_destinationBuffer_0x_lx_n
jmp 0x14000197c
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
cmp rax, 1
jb 0x14000196f
mov r8d, 1
lea rdx, [rsp + 0x98]
mov rcx, rbx
call qword [rsp + 0x80]
lea rcx, str.kernel32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rbx, rax
test rax, rax
jne 0x1400018a8
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.Failed_to_get_handle_to_kernel32.dll_0x_lx_n
jmp 0x14000197c
lea rdx, str.VirtualAlloc
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.RtlMoveMemory
mov rcx, rbx
mov rbp, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.VirtualProtect
mov rcx, rbx
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rsi, rax
test rbp, rbp
je 0x140001960
test rdi, rdi
je 0x140001960
test rax, rax
je 0x140001960
xor ecx, ecx
mov edx, 0x1000
mov r8d, 0x3000
lea r9d, [rcx + 0x40]
call rbp
mov rbx, rax
test rax, rax
jne 0x14000191a
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.Failed_to_allocate_memory_0x_lx_n
jmp 0x14000197c
mov r8d, 1
lea rdx, [rsp + 0x98]
mov rcx, rbx
call rdi
xor r9d, r9d
mov rcx, rbx
lea edx, [r9 + 1]
lea r8d, [r9 + 0x20]
call rsi
call rbx
xor edx, edx
mov r8d, 0x8000
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualFree]
mov rcx, qword [rsp + 0x88]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x140001983
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.Failed_to_get_function_addresses_0x_lx_n
jmp 0x14000197c
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.operand_size_exceeds_destinationBuffer_size_0x_lx_n
mov edx, eax
call fcn.140001130
xor eax, eax
mov rcx, qword [rsp + 0x1140]
xor rcx, rsp
call fcn.1400019d0
lea r11, [rsp + 0x1150]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r13
pop r12
pop rdi
pop rsi
ret