Function at 0x1400175c0
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x40
mov rbx, qword [0x1401e87b8]
mov r13d, edx
mov r12, rcx
xor esi, esi
mov rcx, rbx
mov edx, 0x78
mov r8d, 0xe
mov ebp, esi
call qword [sym.imp.KERNEL32.dll_FindResourceA]
mov rdi, rax
test rax, rax
jne 0x14001767c
call fcn.14004fba0
mov r8, rax
lea rdx, str.icon
lea rcx, str.Could_not_locate_resource__s:__s
call fcn.14004f2f0
mov rax, rsi
lea rbx, [rax + 4]
mov r8d, 0x68
lea rdx, str.D:_a_rufus_rufus_srcicon.c
lea rcx, str.icondir___NULL__icondir__idCount___64
call fcn.1400fbe54
test rbp, rbp
je 0x140017935
cmp word [rbx], 0x40
ja 0x140017935
mov qword [rsp + 0x70], r15
test r12, r12
je 0x140017747
cmp byte [r12], sil
jne 0x1400176e0
mov edx, 2
mov ecx, 1
call fcn.1400c4f6c
mov rbx, rax
jmp 0x14001774a
mov rdx, rdi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov r14, rax
test rax, rax
jne 0x1400176ab
call fcn.14004fba0
mov r8, rax
lea rdx, str.icon
lea rcx, str.Could_not_load_resource__s:__s
jmp 0x140017619
mov rdx, rdi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rbp, rax
test rax, rax
je 0x140017621
cmp word [rax + 4], 0x40
lea rbx, [rax + 4]
jbe 0x14001763e
jmp 0x140017625
mov dword [rsp + 0x28], esi
mov r9d, 0xffffffff
mov r8, r12
mov qword [rsp + 0x20], rsi
xor edx, edx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
movsxd rdi, eax
cmp edi, 1
jle 0x140017747
mov rcx, rdi
mov edx, 2
call fcn.1400c4f6c
mov rbx, rax
test rax, rax
je 0x140017747
mov dword [rsp + 0x28], edi
mov r9d, 0xffffffff
mov r8, r12
mov qword [rsp + 0x20], rax
xor edx, edx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
cmp eax, edi
je 0x14001774a
mov rcx, rbx
call fcn.1400e8c70
mov rbx, rsi
mov qword [rsp + 0x30], rsi
xor r9d, r9d
mov dword [rsp + 0x28], 0x80
mov edx, 0xc0000000
mov r8d, 1
mov dword [rsp + 0x20], 2
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r15, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test rbx, rbx
je 0x14001778e
mov rcx, rbx
call fcn.1400e8c70
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_SetLastError]
cmp r15, 0xffffffffffffffff
jne 0x1400177b8
call fcn.14004fba0
mov r8, rax
lea rcx, str.Unable_to_create_icon__s:__s.
mov rdx, r12
call fcn.14004f2f0
jmp 0x140017930
xor r9d, r9d
mov r8d, 6
mov rdx, rbp
mov rcx, r15
call fcn.140050980
test eax, eax
jne 0x1400177e9
call fcn.14004fba0
mov rdx, rax
lea rcx, str.Could_not_write_icon_header:__s.
call fcn.14004f2f0
jmp 0x140017922
movzx eax, word [rbp + 4]
movzx ebx, si
shl eax, 4
add eax, 6
mov dword [rsp + 0x80], eax
movzx eax, word [rbp + 4]
cmp si, ax
jae 0x140017895
nop word [rax + rax]
movzx eax, bx
xor r9d, r9d
imul rdi, rax, 0xe
mov r8d, 0xc
mov rcx, r15
lea rdx, [rdi + 6]
add rdx, rbp
call fcn.140050980
test eax, eax
je 0x14001796a
movzx edx, word [rdi + rbp + 0x12]
mov r8d, 3
mov rcx, qword [0x1401e87b8]
call qword [sym.imp.KERNEL32.dll_FindResourceA]
xor r9d, r9d
lea rdx, [rsp + 0x80]
mov r8d, 4
mov rcx, r15
mov rdi, rax
call fcn.140050980
test eax, eax
je 0x140017951
mov rdx, rdi
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SizeofResource]
add dword [rsp + 0x80], eax
inc bx
movzx eax, word [rbp + 4]
cmp bx, ax
jb 0x140017810
movzx r14d, si
cmp si, ax
jae 0x140017909
nop
movzx eax, r14w
mov r8d, 3
imul rcx, rax, 0xe
movzx edx, word [rcx + rbp + 0x12]
mov rcx, qword [0x1401e87b8]
call qword [sym.imp.KERNEL32.dll_FindResourceA]
mov rdx, rax
xor ecx, ecx
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rdx, rdi
xor ecx, ecx
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_SizeofResource]
xor r9d, r9d
mov rdx, rbx
mov r8d, eax
mov rcx, r15
call fcn.140050980
test eax, eax
je 0x140017983
inc r14w
cmp r14w, word [rbp + 4]
jb 0x1400178a0
test r13d, r13d
jne 0x14001791d
mov rdx, r12
lea rcx, str.Created:__s
call fcn.14004f2f0
mov esi, 1
test r15, r15
je 0x140017930
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov r15, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x78]
mov eax, esi
mov rbp, qword [rsp + 0x88]
add rsp, 0x40
pop r14
pop r13
pop r12
pop rdi
pop rsi
ret
call fcn.14004fba0
mov r8, rax
movzx edx, bx
lea rcx, str.Could_not_write_ICONDIRENTRY__d__offset:__s.
call fcn.14004f2f0
jmp 0x140017922
call fcn.14004fba0
mov r8, rax
movzx edx, bx
lea rcx, str.Could_not_write_ICONDIRENTRY__d_:__s.
call fcn.14004f2f0
jmp 0x140017922
call fcn.14004fba0
mov r8, rax
movzx edx, r14w
lea rcx, str.Could_not_write_icon_data__d:__s.
call fcn.14004f2f0
jmp 0x140017922