Function at 0x1800023d0
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1a0]
sub rsp, 0x2a0
mov rax, qword [0x180041080]
xor rax, rsp
mov qword [rbp + 0x190], rax
mov rsi, r8
movzx r14d, dx
mov r12, rcx
xor ecx, ecx
mov dword [rsp + 0x30], ecx
lea rax, [0x18003ae68]
mov qword [rsp + 0x38], rax
mov qword [rbp - 0x10], rcx
mov qword [rbp - 8], rcx
mov dword [rbp], ecx
xorps xmm0, xmm0
movdqu xmmword [rbp + 8], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x18], xmm1
movdqu xmmword [rbp + 0x28], xmm0
mov qword [rbp + 0x38], rcx
mov byte [rbp + 0x40], cl
mov dword [rsp + 0x30], 1
lea rax, vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov qword [rbp - 0x18], rax
mov dword [rbp - 0x1c], 0x98
mov qword [rsp + 0x40], rcx
xor r8d, r8d
lea rdx, [rsp + 0x48]
lea rcx, [rbp - 0x18]
call fcn.180008bb0
nop
mov rax, qword [rsp + 0x38]
movsxd rcx, dword [rax + 4]
lea r15, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rsp + rcx + 0x38], r15
mov rax, qword [rsp + 0x38]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rsp + rcx + 0x34], edx
lea rcx, [rsp + 0x48]
call fcn.180007f70
nop
mov r8d, 1
mov rdx, rsi
lea rcx, [rsp + 0x48]
call fcn.180007e00
mov edi, 6
mov r13d, 2
test rax, rax
jne 0x1800024f6
mov rax, qword [rsp + 0x38]
movsxd rcx, dword [rax + 4]
mov eax, edi
cmp qword [rbp + rcx - 0x80], 0
cmovne eax, r13d
or eax, dword [rsp + rcx + 0x48]
and eax, 0x17
mov dword [rsp + rcx + 0x48], eax
mov edx, dword [rsp + rcx + 0x4c]
and edx, eax
jne 0x1800029d8
mov rax, qword [rsp + 0x38]
movsxd rcx, dword [rax + 4]
mov ebx, dword [rsp + rcx + 0x48]
mov qword [rsp + rcx + 0x38], r15
mov rax, qword [rsp + 0x38]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rsp + rcx + 0x34], edx
lea rcx, [rsp + 0x48]
call fcn.180005d50
mov rax, qword [rsp + 0x38]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov qword [rsp + rcx + 0x38], rax
mov rax, qword [rsp + 0x38]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x18]
mov dword [rsp + rcx + 0x34], edx
lea rax, vtable.std::ios_base.0
mov qword [rbp - 0x18], rax
lea rcx, [rbp - 0x18]
call fcn.18000bf44
nop
test ebx, 6
jne 0x1800025c8
mov rcx, rsi
call fcn.180014ef0
test eax, eax
je 0x1800025c8
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea rdx, str.Failed_to_delete_existing_file:
lea rcx, [0x1800425f0]
call fcn.180009100
mov rcx, rax
mov rdx, rsi
call fcn.180009100
mov rcx, rax
lea rdx, [0x18003a500]
call fcn.180009100
mov rcx, rax
mov edx, ebx
call fcn.180006370
mov rcx, rax
lea rdx, [0x18003a4fc]
call fcn.180009100
xor al, al
jmp 0x18000295f
mov rdx, r14
mov r8d, 0xa
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov rbx, rax
test rax, rax
jne 0x180002638
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea rdx, str.Failed_to_find_resource_ID:
lea rcx, [0x1800425f0]
call fcn.180009100
mov rcx, rax
movzx edx, r14w
call fcn.180006570
mov rcx, rax
lea rdx, [0x18003a538]
call fcn.180009100
mov rcx, rax
mov edx, ebx
call fcn.180006370
mov rcx, rax
lea rdx, [0x18003a534]
call fcn.180009100
xor al, al
jmp 0x18000295f
mov rdx, rbx
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov r15, rax
test rax, rax
jne 0x1800026a2
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea rdx, str.Failed_to_load_resource_ID:
lea rcx, [0x1800425f0]
call fcn.180009100
mov rcx, rax
movzx edx, r14w
call fcn.180006570
mov rcx, rax
lea rdx, [0x18003a570]
call fcn.180009100
mov rcx, rax
mov edx, ebx
call fcn.180006370
mov rcx, rax
lea rdx, [0x18003a568]
call fcn.180009100
xor al, al
jmp 0x18000295f
mov rdx, rbx
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov r12d, eax
test eax, eax
jne 0x18000270b
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea rdx, str.Failed_to_get_size_of_resource_ID:
lea rcx, [0x1800425f0]
call fcn.180009100
mov rcx, rax
movzx edx, r14w
call fcn.180006570
mov rcx, rax
lea rdx, [0x18003a5a8]
call fcn.180009100
mov rcx, rax
mov edx, ebx
call fcn.180006370
mov rcx, rax
lea rdx, [0x18003a5a0]
call fcn.180009100
xor al, al
jmp 0x18000295f
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rbx, rax
test rax, rax
jne 0x180002772
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea rdx, str.Failed_to_lock_resource_ID:
lea rcx, [0x1800425f0]
call fcn.180009100
mov rcx, rax
movzx edx, r14w
call fcn.180006570
mov rcx, rax
lea rdx, [0x18003a5e0]
call fcn.180009100
mov rcx, rax
mov edx, ebx
call fcn.180006370
mov rcx, rax
lea rdx, [0x18003a5dc]
call fcn.180009100
xor al, al
jmp 0x18000295f
xor edx, edx
mov r8d, 0x108
lea rcx, [rbp + 0x80]
call fcn.18002d450
mov r8d, 0x20
mov rdx, rsi
lea rcx, [rbp + 0x80]
call fcn.180005e00
nop
cmp qword [rbp + 0x108], 0
jne 0x1800027c3
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rbx, [0x18003a610]
lea r14, [0x18003a618]
lea rdx, str.Failed_to_open_output_file:
jmp 0x180002805
mov r8, r12
mov rdx, rbx
lea rcx, [rbp + 0x80]
call fcn.1800061d0
mov rax, qword [rbp + 0x80]
movsxd rcx, dword [rax + 4]
test byte [rbp + rcx + 0x90], 6
je 0x180002845
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rbx, [0x18003a648]
lea r14, [0x18003a650]
lea rdx, str.Failed_to_write_to_file:
mov edi, eax
lea rcx, [0x1800425f0]
call fcn.180009100
mov rdx, rsi
mov rcx, rax
call fcn.180009100
mov rcx, rax
mov rdx, r14
call fcn.180009100
mov rcx, rax
mov edx, edi
call fcn.180006370
mov rcx, rax
mov rdx, rbx
call fcn.180009100
xor bl, bl
jmp 0x1800028d8
lea rcx, [rbp + 0x88]
call fcn.180007d00
test rax, rax
jne 0x18000288e
mov rax, qword [rbp + 0x80]
movsxd rcx, dword [rax + 4]
cmp qword [rbp + rcx + 0xc8], 0
cmovne edi, r13d
or edi, dword [rbp + rcx + 0x90]
and edi, 0x17
mov dword [rbp + rcx + 0x90], edi
mov eax, dword [rbp + rcx + 0x94]
and eax, edi
jne 0x180002989
lea rdx, str.Successfully_extracted_resource_ID:
lea rcx, [0x180042710]
call fcn.180009100
mov rcx, rax
movzx edx, r14w
call fcn.180006570
mov rcx, rax
lea rdx, str._to
call fcn.180009100
mov rcx, rax
mov rdx, rsi
call fcn.180009100
mov rcx, rax
lea rdx, [0x18003a67c]
call fcn.180009100
mov bl, 1
mov rax, qword [rbp + 0x80]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ofstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx + 0x80], rax
mov rax, qword [rbp + 0x80]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xa8]
mov dword [rbp + rcx + 0x7c], edx
lea rcx, [rbp + 0x88]
call fcn.180005d50
mov rcx, qword [rbp + 0x80]
movsxd rdx, dword [rcx + 4]
lea rax, vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
mov qword [rbp + rdx + 0x80], rax
mov rcx, qword [rbp + 0x80]
movsxd rdx, dword [rcx + 4]
lea r8d, [rdx - 0x10]
mov dword [rbp + rdx + 0x7c], r8d
lea rax, vtable.std::ios_base.0
mov qword [rbp + 0x128], rax
lea rcx, [rbp + 0x128]
call fcn.18000bf44
nop
movzx eax, bl
mov rcx, qword [rbp + 0x190]
xor rcx, rsp
call fcn.18000c470
mov rbx, qword [rsp + 0x2f8]
add rsp, 0x2a0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
test al, 4
je 0x180002996
lea rbx, [0x18003a420]
jmp 0x1800029aa
test al, 2
lea rbx, [0x18003a438]
lea rax, [0x18003a450]
cmove rbx, rax
mov edx, 1
lea rcx, [rbp + 0x48]
call fcn.180001510
mov r8, rax
mov rdx, rbx
lea rcx, [rbp + 0x58]
call fcn.180001e80
lea rdx, [0x18003fa90]
lea rcx, [rbp + 0x58]
call fcn.18000e448
nop
test dl, 4
je 0x1800029e6
lea rbx, [0x18003a420]
jmp 0x1800029fb
test r13b, dl
lea rbx, [0x18003a438]
lea rax, [0x18003a450]
cmove rbx, rax
mov edx, 1
lea rcx, [rbp + 0x48]
call fcn.180001510
mov r8, rax
mov rdx, rbx
lea rcx, [rbp + 0x58]
call fcn.180001e80
lea rdx, [0x18003fa90]
lea rcx, [rbp + 0x58]
call fcn.18000e448
int3