Function at 0x4040f0
Capabilities:
Extract resource via kernel32 functions

Disassembly:
sub esp, 0x54
push ebx
push ebp
mov ebp, dword [esp + 0x60]
push esi
lea eax, [esp + 0x20]
push edi
push eax
push ebp
call dword [sym.imp.USER32.dll_BeginPaint]
mov ecx, dword [esp + 0x24]
mov esi, dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push ecx
call esi
mov edx, dword [0x41207c]
mov ebx, dword [sym.imp.KERNEL32.dll_LoadResource]
mov dword [esp + 0x10], eax
mov eax, dword [0x412408]
cmp edx, eax
jne 0x40418f
mov eax, dword [0x412080]
mov ecx, dword [0x412404]
cmp eax, ecx
jne 0x40418f
mov ecx, dword [0x412070]
mov edx, dword [0x412074]
mov esi, dword [sym.imp.GDI32.dll_SelectObject]
push ecx
push edx
call esi
mov ecx, dword [0x41206c]
mov edx, dword [0x412068]
mov edi, eax
mov eax, dword [0x412074]
push 0xcc0020
push 0
push 0
push eax
mov eax, dword [esp + 0x34]
push ecx
push edx
push 0
push 0
push eax
call dword [sym.imp.GDI32.dll_BitBlt]
mov ecx, dword [0x412074]
push edi
push ecx
call esi
jmp 0x4042ce
lea edx, [esp + 0x14]
push edx
push ebp
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [0x412070]
test eax, eax
je 0x4041ab
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [0x412074]
test eax, eax
je 0x4041bb
push eax
call dword [sym.imp.GDI32.dll_DeleteDC]
mov eax, dword [esp + 0x24]
push eax
call esi
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov dword [0x412074], eax
mov eax, dword [esp + 0x1c]
sub ecx, edx
sub eax, esi
mov dword [0x41206c], ecx
push ecx
mov ecx, dword [esp + 0x28]
push eax
push ecx
mov dword [0x412068], eax
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov edx, dword [0x412074]
mov edi, dword [sym.imp.GDI32.dll_SelectObject]
push eax
push edx
mov dword [0x412070], eax
call edi
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
sub esp, 0x10
mov ebp, eax
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x2c]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x30]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov eax, dword [0x412074]
push eax
call fcn.00403d60
mov ecx, dword [0x412404]
mov edx, dword [0x412408]
add esp, 0x14
mov dword [0x412080], ecx
mov eax, dword [edx]
mov ecx, dword [0x412db4]
push eax
push ecx
call ebx
mov esi, eax
push esi
call dword [sym.imp.KERNEL32.dll_LockResource]
test eax, eax
je 0x40428a
mov ecx, dword [eax + 4]
mov edx, dword [0x412074]
mov dword [0x411fcc], ecx
mov eax, dword [eax + 8]
push eax
push ecx
push 0
push 0
push esi
push edx
mov dword [0x411fd0], eax
call fcn.00403a20
add esp, 0x18
mov eax, dword [0x412408]
mov ecx, dword [0x412074]
mov edx, dword [0x41206c]
push 0xcc0020
push 0
mov dword [0x41207c], eax
mov eax, dword [0x412068]
push 0
push ecx
mov ecx, dword [esp + 0x34]
push edx
push eax
push 0
push 0
push ecx
call dword [sym.imp.GDI32.dll_BitBlt]
mov edx, dword [0x412074]
push ebp
push edx
call edi
mov ebp, dword [esp + 0x68]
mov eax, dword [0x412418]
test eax, eax
je 0x404437
mov edx, dword [0x41201c]
mov esi, dword [0x412020]
mov eax, dword [0x4126f8]
mov ecx, dword [0x4126fc]
test edx, edx
je 0x4042fa
test ecx, ecx
jne 0x40430a
test esi, esi
je 0x404437
test eax, eax
je 0x404437
test edx, edx
je 0x404401
test esi, esi
je 0x4043db
mov edx, dword [ecx + 4]
mov esi, dword [eax + 4]
cmp edx, esi
jae 0x40437e
mov eax, dword [ecx]
mov ecx, dword [0x412db4]
push eax
push ecx
call ebx
mov edx, dword [0x411fd0]
mov ecx, dword [0x411fcc]
push edx
push ecx
mov ecx, dword [0x4126fc]
mov edx, dword [ecx + 0xc]
mov ecx, dword [ecx + 8]
push edx
mov edx, dword [esp + 0x30]
push ecx
push eax
push edx
call fcn.00403a20
mov eax, dword [0x4126f8]
mov edx, dword [0x412db4]
add esp, 0x18
mov ecx, dword [eax]
push ecx
push edx
call ebx
mov ecx, dword [0x411fd0]
mov edx, dword [0x411fcc]
push ecx
push edx
jmp 0x40441b
mov eax, dword [eax]
mov ecx, dword [0x412db4]
push eax
push ecx
call ebx
mov edx, dword [0x411fd0]
mov ecx, dword [0x411fcc]
push edx
push ecx
mov ecx, dword [0x4126f8]
mov edx, dword [ecx + 0xc]
mov ecx, dword [ecx + 8]
push edx
mov edx, dword [esp + 0x30]
push ecx
push eax
push edx
call fcn.00403a20
mov eax, dword [0x4126fc]
mov edx, dword [0x412db4]
add esp, 0x18
mov ecx, dword [eax]
push ecx
push edx
call ebx
mov ecx, dword [0x411fd0]
mov edx, dword [0x411fcc]
push ecx
mov ecx, dword [0x4126fc]
push edx
jmp 0x404421
test edx, edx
je 0x404401
mov eax, dword [ecx]
mov ecx, dword [0x412db4]
push eax
push ecx
call ebx
mov edx, dword [0x411fd0]
mov ecx, dword [0x411fcc]
push edx
push ecx
mov ecx, dword [0x4126fc]
jmp 0x404421
mov eax, dword [eax]
mov ecx, dword [0x412db4]
push eax
push ecx
call ebx
mov edx, dword [0x411fd0]
mov ecx, dword [0x411fcc]
push edx
push ecx
mov ecx, dword [0x4126f8]
mov edx, dword [ecx + 0xc]
mov ecx, dword [ecx + 8]
push edx
mov edx, dword [esp + 0x30]
push ecx
push eax
push edx
call fcn.00403a20
add esp, 0x18
mov esi, dword [0x412410]
test esi, esi
je 0x404489
mov eax, dword [0x41240c]
xor edi, edi
test eax, eax
jbe 0x404489
mov eax, dword [esi]
mov ecx, dword [0x412db4]
push eax
push ecx
call ebx
mov edx, dword [0x411fd0]
mov ecx, dword [0x411fcc]
push edx
mov edx, dword [esi + 0xc]
push ecx
mov ecx, dword [esi + 8]
push edx
mov edx, dword [esp + 0x30]
push ecx
push eax
push edx
call fcn.00403a20
mov eax, dword [0x41240c]
add esp, 0x18
inc edi
add esi, 0x10
cmp edi, eax
jb 0x40444c
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.GDI32.dll_DeleteDC]
lea ecx, [esp + 0x24]
push ecx
push ebp
call dword [sym.imp.USER32.dll_EndPaint]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x54
ret