Function at 0x14009e980
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
mov qword [rsp + 8], rcx
push rsi
push rdi
push r13
push r14
push r15
sub rsp, 0x50
xor ebx, ebx
mov ebp, r9d
mov r15d, r8d
mov r14d, edx
mov rsi, rcx
mov r13d, ebx
test rcx, rcx
je 0x14009e9c2
xor edx, edx
lea r8d, [rbx + 2]
call qword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov rdi, rax
jmp 0x14009e9c9
mov rdi, qword [0x140125b48]
test rdi, rdi
je 0x14009eba8
mov qword [rsp + 0x88], r12
lea r12, [0x140128144]
test r14d, r14d
jns 0x14009e9f2
movzx eax, r14w
neg ax
movzx edx, ax
jmp 0x14009ea2a
test r14d, r14d
mov dword [rsp + 0x44], ebx
mov eax, 1
mov qword [rsp + 0x48], r12
cmovne eax, r14d
lea r9, [rsp + 0x40]
lea r8, [0x14009e960]
mov dword [rsp + 0x40], eax
mov edx, recv
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_EnumResourceNamesW]
mov rdx, qword [rsp + 0x48]
cmp rdx, r12
je 0x14009eb73
mov r8d, recv
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FindResourceW]
test rax, rax
je 0x14009eb73
mov rdx, rax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LoadResource]
test rax, rax
je 0x14009eb73
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rsi, rax
test rax, rax
je 0x14009eb6b
cmp r15d, 0xffffffff
cmovne ebp, r15d
test ebp, ebp
jne 0x14009ea8c
lea ecx, [rbp + 0xb]
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov ebp, eax
movzx ecx, word [rsi + 4]
lea rdx, [rsi + 6]
mov r12, rbx
mov r8d, ebx
mov r15d, ebx
cmp bx, cx
jae 0x14009eb6b
mov r9, rdx
mov r11d, ecx
mov esi, 0x100
movzx ecx, byte [rdx]
mov eax, ebx
movzx r10d, word [rdx + 6]
test ecx, ecx
cmove ecx, esi
cmp ecx, r8d
jle 0x14009eacd
cmp r8d, ebp
setl al
jmp 0x14009eadc
jge 0x14009ead6
cmp ecx, ebp
setge al
jmp 0x14009eadc
cmp r10d, r15d
setg al
test eax, eax
je 0x14009eae9
mov r12, r9
mov r8d, ecx
mov r15d, r10d
add r9, 0xe
add rdx, 0xe
sub r11, 1
jne 0x14009eab1
test r12, r12
je 0x14009eb6b
movzx edx, word [r12 + 0xc]
lea r8d, [r11 + 3]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov rsi, rax
test rax, rax
je 0x14009eb6b
mov rdx, rax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LoadResource]
test rax, rax
je 0x14009eb6b
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rbp, rax
test rax, rax
je 0x14009eb6b
mov rdx, rsi
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov dword [rsp + 0x30], ebx
mov r9d, 0x30000
mov edx, eax
mov dword [rsp + 0x28], ebx
mov r8d, 1
mov dword [rsp + 0x20], ebx
mov rcx, rbp
call qword [sym.imp.USER32.dll_CreateIconFromResourceEx]
mov r13, rax
mov rsi, qword [rsp + 0x80]
mov rcx, qword [rsp + 0xa0]
mov r12, qword [rsp + 0x88]
test rcx, rcx
je 0x14009eb95
test r13, r13
je 0x14009eb95
mov qword [rcx], rdi
mov rax, r13
jmp 0x14009ebc9
test rsi, rsi
je 0x14009eba3
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
test r13, r13
jne 0x14009eb90
test r14d, r14d
jle 0x14009ebb3
lea ebx, [r14 - 1]
jmp 0x14009ebbb
cmp r14d, 0xffffffff
cmovl ebx, r14d
mov r8d, ebx
mov rdx, rsi
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_ExtractIconW]
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x40]
mov rbp, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop rdi
pop rsi
ret