Function at 0x140197430
Capabilities:
Extract resource via kernel32 functions
Read file on windows
Write file on windows

Disassembly:
push rdi
mov eax, 0x20b0
call sub.ntdll.dll___chkstk
sub rsp, rax
mov qword [rsp + 0x48], 0xfffffffffffffffe
mov qword [rsp + 0x20c0], rbx
mov qword [rsp + 0x20c8], rbp
mov qword [rsp + 0x20d0], rsi
mov rax, qword [0x14042d950]
xor rax, rsp
mov qword [rsp + 0x20a0], rax
mov edi, edx
mov ebp, ecx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rcx, rax
lea r8, str.BOOT_TYPE
mov edx, Ordinal_5132
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov rbx, rax
test rax, rax
jne 0x1401974c4
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
mov r8d, 0x533
lea rdx, [0x1403686b8]
lea rcx, str._s__d_:FindResource_faild__ErrorCode:_d
call fcn.14017e5c0
xor al, al
jmp 0x14019781f
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rcx, rax
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_LoadResource]
test rax, rax
jne 0x140197506
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
mov r8d, 0x53b
lea rdx, [0x1403686f8]
lea rcx, str._s__d_:LoadResource_faild__ErrorCode:_d
call fcn.14017e5c0
xor al, al
jmp 0x14019781f
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rsi, rax
test rax, rax
jne 0x140197540
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
mov r8d, Ordinal_1352
lea rdx, [0x140368738]
lea rcx, str._s__d_:LockResource_faild__ErrorCode:_d
call fcn.14017e5c0
xor al, al
jmp 0x14019781f
xor ebx, ebx
mov qword [rsp + 0x38], rbx
lea rcx, [rsp + 0x50]
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_void____ptr64]
nop
lea r9, [rsp + 0x50]
mov r8, rdi
mov edx, ebp
lea rcx, [rsp + 0x38]
call fcn.14017ba80
test al, al
je 0x1401975c3
lea rdx, [rsp + 0x58]
cmp qword [rsp + 0x70], 8
cmovae rdx, qword [rsp + 0x58]
lea rcx, [rsp + 0x38]
call fcn.140179b10
test al, al
jne 0x14019765f
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
mov r8d, reloc.MFC80U.DLL_Ordinal_1357
lea rdx, [0x140368778]
lea rcx, [0x140368790]
call fcn.14017e5c0
nop
lea rcx, [rsp + 0x50]
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void____ptr64]
xor al, al
jmp 0x14019781f
lea rcx, [rsp + 0x78]
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_void____ptr64]
nop
lea r9, [rsp + 0x78]
mov r8, rdi
mov edx, ebp
lea rcx, [rsp + 0x38]
call fcn.14017b3f0
test al, al
je 0x1401977e3
lea rdx, [rsp + 0x80]
cmp qword [rsp + 0x98], 8
cmovae rdx, qword [rsp + 0x80]
lea rcx, [rsp + 0x38]
call fcn.140179a50
test al, al
jne 0x140197654
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
mov r8d, Ordinal_1370
lea rdx, [0x1403687b8]
lea rcx, [0x1403687d0]
call fcn.14017e5c0
nop
lea rcx, [rsp + 0x78]
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void____ptr64]
nop
lea rcx, [rsp + 0x50]
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void____ptr64]
xor al, al
jmp 0x14019781f
lea rcx, [rsp + 0x78]
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void____ptr64]
mov byte [rsp + 0xa0], 0
xor edx, edx
mov r8d, 0x1fff
lea rcx, [rsp + 0xa1]
call sub.ntdll.dll_memset
mov dword [rsp + 0x30], ebx
mov edx, 0x2000
lea rcx, [rsp + 0xa0]
call qword [sym.imp.KERNEL32.dll_IsBadWritePtr]
mov rdi, qword [rsp + 0x38]
test eax, eax
jne 0x1401977a8
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x1401977a8
mov qword [rsp + 0x20], rbx
lea r9, [rsp + 0x30]
mov r8d, 0x2000
lea rdx, [rsp + 0xa0]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1401977a8
lea edx, [rsi + 0x54]
lea rcx, [rsp + 0xf4]
mov ecx, ecx
mov r8d, 0x1fac
call sub.ntdll.dll_memcpy
mov dword [rsp + 0x30], ebx
mov edx, 0x2000
lea rcx, [rsp + 0xa0]
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x14019776d
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x14019776d
mov qword [rsp + 0x20], rbx
lea r9, [rsp + 0x30]
mov r8d, 0x2000
lea rdx, [rsp + 0xa0]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x14019776d
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
lea rcx, [rsp + 0x50]
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void____ptr64]
mov al, 1
jmp 0x14019781f
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
mov r8d, 0x570
lea rdx, [0x140368878]
lea rcx, str._s__d_:WriteVolume_faild__ErrorCode:_d
call fcn.14017e5c0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
lea rcx, [rsp + 0x50]
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void____ptr64]
xor al, al
jmp 0x14019781f
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
mov r8d, Ordinal_1388
lea rdx, [0x140368838]
lea rcx, str._s__d_:ReadVolume_faild__ErrorCode:_d
call fcn.14017e5c0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
lea rcx, [rsp + 0x50]
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void____ptr64]
xor al, al
jmp 0x14019781f
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
mov r8d, Ordinal_1376
lea rdx, [0x1403687f8]
lea rcx, str._s__d_:OpenVolume_faild__ErrorCode:_d
call fcn.14017e5c0
nop
lea rcx, [rsp + 0x78]
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void____ptr64]
nop
lea rcx, [rsp + 0x50]
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void____ptr64]
xor al, al
mov rcx, qword [rsp + 0x20a0]
xor rcx, rsp
call fcn.140161080
lea r11, [rsp + 0x20b0]
mov rbx, qword [r11 + 0x10]
mov rbp, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rsp, r11
pop rdi
ret