Function at 0x18002fb50
Capabilities:
Extract resource via kernel32 functions

Disassembly:
test rcx, rcx
je 0x18002fe19
push rdi
push r14
push r15
sub rsp, 0x40
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0x70], rbp
mov qword [rsp + 0x78], rsi
mov rsi, rdx
mov r15, rcx
test rdx, rdx
je 0x18002fe01
lea r8, [0x1800e1848]
mov edx, 0x6e
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov rbx, rax
test rax, rax
je 0x18002fca5
mov rdx, rbx
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov edi, eax
test eax, eax
jne 0x18002fbc3
xor ebx, ebx
jmp 0x18002fca5
mov rdx, rbx
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_LoadResource]
test rax, rax
jne 0x18002fbdb
xor ebx, ebx
jmp 0x18002fca5
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rbx, rax
test rax, rax
je 0x18002fca5
mov rdx, rdi
mov ecx, 2
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov rbp, rax
test rax, rax
jne 0x18002fc0d
xor ebx, ebx
jmp 0x18002fca5
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_GlobalLock]
test rax, rax
jne 0x18002fc28
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_GlobalFree]
xor ebx, ebx
jmp 0x18002fca5
mov r8, rdi
mov rdx, rbx
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
xor ebx, ebx
mov qword [rsp + 0x60], rbx
lea r8, [rsp + 0x60]
xor edx, edx
mov rcx, rbp
call qword [sym.imp.ole32.dll_CreateStreamOnHGlobal]
test eax, eax
jne 0x18002fc9c
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x18002fc9c
call fcn.18002aca0
mov rdi, rax
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_GlobalFree]
mov rcx, qword [rsp + 0x60]
mov rax, qword [rcx]
call qword [rax + 0x10]
test rdi, rdi
je 0x18002fca8
mov eax, dword [rdi + 0x10]
mov dword [rdi + 0x10], ebx
test eax, eax
je 0x18002fca8
mov rax, qword [rdi]
lea edx, [rbx + 1]
mov rcx, rdi
call qword [rax]
jmp 0x18002fca5
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_GlobalFree]
mov rdi, rbx
mov qword [rsp + 0x28], rdi
test rdi, rdi
je 0x18002fdef
lea r8, [0x1800e1848]
mov edx, 0x6f
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov rbp, rax
test rax, rax
je 0x18002fdc3
mov rdx, rax
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov r14d, eax
test eax, eax
je 0x18002fdc3
mov rdx, rbp
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_LoadResource]
test rax, rax
je 0x18002fdc3
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rsi, rax
test rax, rax
je 0x18002fdc3
mov edx, r14d
mov ecx, 2
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov rbp, rax
test rax, rax
je 0x18002fdc3
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GlobalLock]
test rax, rax
je 0x18002fdba
mov r8d, r14d
mov rdx, rsi
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov qword [rsp + 0x60], rbx
lea r8, [rsp + 0x60]
xor edx, edx
mov rcx, rbp
call qword [sym.imp.ole32.dll_CreateStreamOnHGlobal]
test eax, eax
jne 0x18002fdba
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x18002fdba
call fcn.18002aca0
mov rsi, rax
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_GlobalFree]
mov rcx, qword [rsp + 0x60]
mov rdx, qword [rcx]
call qword [rdx + 0x10]
test rsi, rsi
je 0x18002fdb5
mov ecx, dword [rsi + 0x10]
mov dword [rsi + 0x10], ebx
test ecx, ecx
je 0x18002fdb5
mov rax, qword [rsi]
mov edx, 1
mov rcx, rsi
call qword [rax]
mov rsi, rbx
mov rbx, rsi
jmp 0x18002fdc3
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_GlobalFree]
mov qword [rsp + 0x30], rbx
test rbx, rbx
je 0x18002fddc
mov r8, rbx
mov rdx, rdi
mov rcx, r15
call fcn.18002f930
nop
test rbx, rbx
je 0x18002fdef
mov rax, qword [rbx]
mov edx, 1
mov rcx, rbx
call qword [rax]
nop
test rdi, rdi
je 0x18002fe01
mov rax, qword [rdi]
mov edx, 1
mov rcx, rdi
call qword [rax]
mov rbx, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
add rsp, 0x40
pop r15
pop r14
pop rdi
ret