Function at 0x14004c050
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
xor r13d, r13d
mov r15, rdx
mov rdi, rcx
test rdx, rdx
je 0x14004c53b
cmp qword [rdx + 8], r13
je 0x14004c53b
lea r12, [rcx + 0x18]
cmp qword [r12], r13
jne 0x14004c53b
mov rax, qword [rcx + 0x30]
mov ebx, r13d
mov qword [rbp - 0x28], r13
mov qword [rbp - 0x20], r13
mov qword [rbp - 0x30], r13
mov qword [rbp - 0x18], r13
mov qword [rbp - 0x10], r13
mov qword [rbp + 0x58], r13
cmp dword [rax - 0x10], r13d
je 0x14004c119
lea rdx, [0x14004cbb8]
lea rcx, [0x1403f2158]
call fcn.14003f380
mov rbx, rax
test rax, rax
je 0x14004c558
xor r8d, r8d
xor edx, edx
mov rcx, rax
call fcn.14004e394
mov rcx, qword [rbx + 0x28]
lea rdx, [rbp - 0x28]
mov qword [rsp + 0x28], rdx
mov r9d, 0x80000000
mov rdx, qword [rdi + 0x30]
xor r8d, r8d
mov dword [rsp + 0x20], 1
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov ebx, eax
test eax, eax
jns 0x14004c2e5
jmp 0x14004c540
cmp dword [rcx + 0x20], r13d
je 0x14004c274
movzx ebx, word [rcx + 0x20]
call fcn.1400321b4
cmp qword [rdi + 0x28], r13
lea r8, str.image
mov edx, ebx
cmovne r8, qword [rdi + 0x28]
mov r14, qword [rax + 0x18]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov rcx, rax
mov qword [rbp + 0x48], rax
neg rcx
mov esi, 0x80004005
sbb ebx, ebx
not ebx
and ebx, esi
jl 0x14004c2e5
mov rdx, rax
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov rcx, rax
neg rcx
sbb ebx, ebx
not ebx
and ebx, esi
jl 0x14004c2e5
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rdx, rax
mov r13, rax
neg rdx
sbb ebx, ebx
not ebx
and ebx, esi
jl 0x14004c2e2
mov rdx, qword [rbp + 0x48]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov ecx, eax
mov r14d, eax
neg ecx
sbb ebx, ebx
not ebx
and ebx, esi
jl 0x14004c2e2
lea rdx, [0x14004cbb8]
lea rcx, [0x1403f2158]
call fcn.14003f380
mov rbx, rax
test rax, rax
je 0x14004c55e
xor r8d, r8d
xor edx, edx
mov rcx, rax
call fcn.14004e394
mov rcx, qword [rbx + 0x28]
lea rdx, [rbp - 0x18]
mov rax, qword [rcx]
call qword [rax + VarBstrFromDate]
mov ebx, eax
test eax, eax
js 0x14004c2e2
mov rcx, qword [rbp - 0x18]
mov r8d, r14d
mov rdx, r13
mov rax, qword [rcx]
call qword [rax + 0x80]
xor r13d, r13d
mov ebx, eax
test eax, eax
js 0x14004c2e5
lea rdx, [0x14004cbb8]
lea rcx, [0x1403f2158]
call fcn.14003f380
mov rbx, rax
test rax, rax
je 0x14004c564
xor r8d, r8d
xor edx, edx
mov rcx, rax
call fcn.14004e394
mov rcx, qword [rbx + 0x28]
lea rdx, [rbp - 0x28]
mov qword [rsp + 0x20], rdx
lea r9d, [r13 + 1]
mov rdx, qword [rbp - 0x18]
xor r8d, r8d
mov rax, qword [rcx]
call qword [rax + 0x20]
mov ebx, eax
jmp 0x14004c2e5
cmp qword [rcx + 0x40], r13
je 0x14004c2e5
lea rdx, [0x14004cbb8]
lea rcx, [0x1403f2158]
call fcn.14003f380
mov rbx, rax
test rax, rax
je 0x14004c56a
xor r8d, r8d
xor edx, edx
mov rcx, rax
call fcn.14004e394
mov rcx, qword [rbx + 0x28]
lea rdx, [rbp + 0x58]
mov qword [rsp + 0x20], rdx
xor r9d, r9d
mov rdx, qword [rdi + 0x40]
xor r8d, r8d
mov rax, qword [rcx]
call qword [rax + 0xa8]
mov ebx, eax
test eax, eax
js 0x14004c2e5
mov rcx, qword [r15 + 8]
mov r9, r12
mov rdx, qword [rbp + 0x58]
xor r8d, r8d
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayAllocDescriptorEx]
jmp 0x14004c2e5
xor r13d, r13d
cmp qword [r12], r13
jne 0x14004c49c
test ebx, ebx
js 0x14004c352
mov rcx, qword [rbp - 0x28]
test rcx, rcx
je 0x14004c312
mov rax, qword [rcx]
lea r8, [rbp - 0x20]
xor edx, edx
call qword [rax + reloc.OLEAUT32.dll_VarCyFromDisp]
mov ebx, eax
mov rax, qword [rbp - 0x20]
mov qword [rbp + 0x58], rax
test ebx, ebx
js 0x14004c352
lea rdx, [0x14004cbb8]
lea rcx, [0x1403f2158]
call fcn.14003f380
mov rbx, rax
test rax, rax
je 0x14004c570
xor r8d, r8d
xor edx, edx
mov rcx, rax
call fcn.14004e394
mov rcx, qword [rbx + 0x28]
lea rdx, [rbp - 0x30]
mov rax, qword [rcx]
call qword [rax + 0x50]
mov ebx, eax
mov r14d, dword [rdi + 0x38]
mov esi, dword [rdi + 0x3c]
test r14d, r14d
jne 0x14004c373
test esi, esi
jne 0x14004c373
test ebx, ebx
js 0x14004c49c
mov rdx, qword [rbp + 0x58]
jmp 0x14004c456
mov rcx, qword [rbp + 0x58]
lea r8, [rbp + 0x50]
lea rdx, [rbp + 0x48]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov ebx, eax
test eax, eax
js 0x14004c49c
test r14d, r14d
jne 0x14004c3c1
mov eax, dword [rbp + 0x50]
xorps xmm2, xmm2
cvtsi2ss xmm2, rsi
xorps xmm0, xmm0
xorps xmm1, xmm1
cvtsi2ss xmm0, rax
mov eax, dword [rbp + 0x48]
cvtsi2ss xmm1, rax
divss xmm2, xmm0
mulss xmm2, xmm1
cvttss2si r14, xmm2
jmp 0x14004c3f0
test esi, esi
jne 0x14004c3f0
mov eax, dword [rbp + 0x48]
xorps xmm2, xmm2
cvtsi2ss xmm2, r14
xorps xmm0, xmm0
xorps xmm1, xmm1
cvtsi2ss xmm0, rax
mov eax, dword [rbp + 0x50]
cvtsi2ss xmm1, rax
divss xmm2, xmm0
mulss xmm2, xmm1
cvttss2si rsi, xmm2
lea rdx, [0x14004cbb8]
lea rcx, [0x1403f2158]
call fcn.14003f380
mov rbx, rax
test rax, rax
je 0x14004c576
xor r8d, r8d
xor edx, edx
mov rcx, rax
call fcn.14004e394
mov rcx, qword [rbx + 0x28]
lea rdx, [rbp - 0x10]
mov rax, qword [rcx]
call qword [rax + 0x58]
mov ebx, eax
test eax, eax
js 0x14004c49c
mov rcx, qword [rbp - 0x10]
mov r9d, esi
mov rdx, qword [rbp + 0x58]
mov r8d, r14d
mov dword [rsp + 0x20], 2
mov rax, qword [rcx]
call qword [rax + 0x40]
mov ebx, eax
test eax, eax
js 0x14004c49c
mov rdx, qword [rbp - 0x10]
mov rcx, qword [rbp - 0x30]
lea r8, [0x14035e6a8]
xorps xmm0, xmm0
mov dword [rsp + 0x30], 1
movsd qword [rsp + 0x28], xmm0
xor r9d, r9d
mov qword [rsp + 0x20], r13
mov rax, qword [rcx]
call qword [rax + 0x40]
mov ebx, eax
test eax, eax
js 0x14004c49c
mov rcx, qword [r15 + 8]
mov r9, r12
mov rdx, qword [rbp - 0x30]
xor r8d, r8d
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayAllocDescriptorEx]
mov ebx, eax
mov rcx, qword [rbp + 0x58]
cmp rcx, qword [rbp - 0x20]
cmove rcx, r13
mov qword [rbp + 0x58], rcx
mov rcx, qword [rbp - 0x28]
test rcx, rcx
je 0x14004c4bf
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov qword [rbp - 0x28], r13
mov rcx, qword [rbp - 0x20]
test rcx, rcx
je 0x14004c4d2
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov qword [rbp - 0x20], r13
mov rcx, qword [rbp - 0x18]
test rcx, rcx
je 0x14004c4e5
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov qword [rbp - 0x18], r13
mov rcx, qword [rbp - 0x30]
test rcx, rcx
je 0x14004c4f8
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov qword [rbp - 0x30], r13
mov rcx, qword [rbp - 0x10]
test rcx, rcx
je 0x14004c50b
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov qword [rbp - 0x10], r13
mov rcx, qword [rbp + 0x58]
test rcx, rcx
je 0x14004c51e
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov qword [rbp + 0x58], r13
cmp dword [rdi + 0x48], r13d
je 0x14004c537
mov rcx, qword [rdi + 0x40]
test rcx, rcx
je 0x14004c537
call qword [sym.imp.GDI32.dll_DeleteObject]
mov qword [rdi + 0x40], r13
mov eax, ebx
jmp 0x14004c540
mov eax, 0x80004005
mov rbx, qword [rsp + 0xb0]
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.140010b1c
int3
call fcn.140010b1c
int3
call fcn.140010b1c
int3
call fcn.140010b1c
int3
call fcn.140010b1c
int3
call fcn.140010b1c
int3