Function at 0x140037888
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x68
xor r12d, r12d
mov rdi, rcx
movsxd r15, r8d
lea ecx, [r12 + 1]
mov rsi, rdx
mov ebx, r12d
mov al, r12b
mov r13b, r12b
cmp rdi, r12
je 0x1400378cb
cmp qword [rdi + 8], r12
movzx eax, al
cmove eax, ecx
cmp rdx, r12
je 0x1400378dc
cmp qword [rdx + 8], r12
movzx r13d, r13b
cmove r13d, ecx
lea r14, [0x14010b1f0]
mov ebp, 0x8007000e
cmp al, r12b
je 0x140037c19
mov rcx, qword [0x14010f7b0]
mov rsi, r15
lea r8, [0x14000ae60]
imul rsi, rsi, 0x70
movzx edx, word [rsi + r14 + 4]
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov rbp, rax
cmp rax, r12
jne 0x140037924
mov eax, 0x80004005
jmp 0x140037c94
mov rcx, qword [0x14010f7b0]
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov rcx, qword [0x14010f7b0]
mov rdx, rbp
mov r12d, eax
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov ebp, 0x80004005
mov r14, rax
xor eax, eax
cmp r14, rax
je 0x140037af9
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rdx, r12
mov ecx, 2
mov qword [rsp + 0xc8], rax
mov r15, r12
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov r12, rax
xor eax, eax
cmp r12, rax
jne 0x140037990
mov ebx, 0x8007000e
jmp 0x140037ada
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_GlobalLock]
xor ecx, ecx
mov edx, 0x8007000e
cmp rax, rcx
mov qword [rsp + 0xb0], rcx
cmove ebx, edx
cmp ebx, ecx
jl 0x140037ac8
mov rdx, qword [rsp + 0xc8]
mov r8, r15
mov rcx, rax
call sub.msvcrt.dll_memcpy
lea r8, [rsp + 0xb0]
xor edx, edx
mov rcx, r12
call qword [sym.imp.ole32.dll_CreateStreamOnHGlobal]
mov ebx, eax
xor eax, eax
cmp ebx, eax
jl 0x140037ab5
mov r15, qword [rsp + 0xb0]
lea rcx, [0x14010fee8]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
xor eax, eax
mov bl, 1
cmp qword [0x14010fee0], rax
jne 0x140037a3f
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x40]
lea rcx, [0x14010fee0]
mov dword [rsp + 0x40], 1
mov qword [rsp + 0x48], rax
mov dword [rsp + 0x50], eax
mov dword [rsp + 0x54], eax
call sub.gdiplus.dll_GdiplusStartup
xor ecx, ecx
cmp eax, ecx
movzx ebx, bl
cmovne ebx, ecx
lea rcx, [0x14010fee8]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor eax, eax
cmp bl, al
jne 0x140037a56
mov ebx, ebp
jmp 0x140037ab5
lea rax, [0x14000ae98]
lea rdx, [rsp + 0xc8]
xor ebx, ebx
mov rcx, r15
mov qword [rsp + 0x40], rax
mov qword [rsp + 0xc8], rbx
call sub.gdiplus.dll_GdipCreateBitmapFromStream
mov rcx, qword [rsp + 0xc8]
mov dword [rsp + 0x50], ebx
mov qword [rsp + 0x48], rcx
cmp eax, ebx
je 0x140037a9a
call sub.gdiplus.dll_GdipDisposeImage
mov ebx, ebp
jmp 0x140037ab3
lea rdx, [rsp + 0x40]
mov rcx, rdi
call fcn.14003a518
mov rcx, qword [rsp + 0x48]
mov ebx, eax
call sub.gdiplus.dll_GdipDisposeImage
xor eax, eax
mov rcx, qword [rsp + 0xb0]
cmp rcx, rax
je 0x140037ac8
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_GlobalFree]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_FreeResource]
xor r12d, r12d
cmp ebx, r12d
jl 0x140037c92
mov r15d, dword [rsp + 0xc0]
jmp 0x140037afc
xor r12d, r12d
cmp dword [rdi + 0x24], 0x20
jne 0x140037ba6
mov eax, dword [rdi + 0x20]
mov r8d, dword [rdi + 0x1c]
mov r9, qword [rdi + 0x10]
cmp eax, r12d
jge 0x140037b23
lea ecx, [r8 - 1]
imul ecx, eax
movsxd rcx, ecx
add r9, rcx
cdq
xor eax, edx
sub eax, edx
imul eax, r8d
movsxd r10, eax
add r10, r9
cmp r9, r10
jae 0x140037ba3
mov r11d, 0x80808081
movzx r8d, byte [r9 + 3]
movzx ecx, byte [r9]
mov eax, r11d
imul ecx, r8d
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, r11d
mov byte [r9], dl
movzx ecx, byte [r9 + 1]
add r9, 4
imul ecx, r8d
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, r11d
mov byte [r9 - 3], dl
movzx ecx, byte [r9 - 2]
imul ecx, r8d
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov byte [r9 - 2], dl
cmp r9, r10
jb 0x140037b3d
mov ebx, r12d
cmp ebx, r12d
jl 0x140037c92
lea r14, [0x14010b1f0]
mov ecx, r12d
mov edx, r12d
mov r8, qword [rsi + r14 + 0x18]
mov eax, dword [r8 + 0x18]
mov dword [rsi + r14 + 0x3c], eax
mov eax, dword [rsi + r14 + 0xc]
bt eax, edx
jae 0x140037bd6
inc ecx
inc edx
cmp edx, 0x20
jl 0x140037bcf
cmp ecx, r12d
jbe 0x140037bf1
mov eax, dword [r8 + 0x1c]
xor edx, edx
div ecx
mov dword [rsi + r14 + 0x40], eax
jmp 0x140037bf3
mov ebx, ebp
cmp ebx, r12d
jl 0x140037c92
lea rcx, [rsi + r14 + 0x50]
mov qword [rsi + r14 + 0x48], r12
call qword [sym.imp.USER32.dll_SetRectEmpty]
mov rsi, qword [rsp + 0xb8]
mov ebp, 0x8007000e
movsxd rdi, r15d
imul rdi, rdi, 0x70
cmp dword [rdi + r14 + 8], r12d
je 0x140037c92
cmp r13b, r12b
je 0x140037c92
mov ecx, 8
mov dword [rsp + 0x30], r12d
call qword [sym.imp.USER32.dll_GetSysColor]
mov ecx, 0x11
mov dword [rsp + 0x38], 0xffff
mov dword [rsp + 0x34], eax
call qword [sym.imp.USER32.dll_GetSysColor]
mov edx, dword [rdi + r14 + 8]
mov rcx, qword [0x14010f7b0]
lea r9, [rsp + 0x30]
xor r8d, r8d
mov dword [rsp + 0x3c], eax
mov dword [rsp + 0x20], 2
call qword [sym.imp.COMCTL32.dll_CreateMappedBitmap]
cmp rax, r12
cmove ebx, ebp
cmp ebx, r12d
jl 0x140037c92
xor r8d, r8d
mov rdx, rax
mov rcx, rsi
call fcn.14003a388
mov eax, ebx
add rsp, 0x68
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret