Function at 0x4057e0
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 [0x41a1a4]
mov edi, dword [sym.imp.KERNEL32.dll_LoadResource]
mov dword [esp + 0x10], eax
mov eax, dword [0x41a524]
cmp edx, eax
jne 0x40587f
mov eax, dword [0x41a1a8]
mov ecx, dword [0x41a520]
cmp eax, ecx
jne 0x40587f
mov ecx, dword [0x41a198]
mov edx, dword [0x41a19c]
mov esi, dword [sym.imp.GDI32.dll_SelectObject]
push ecx
push edx
call esi
mov ecx, dword [0x41a194]
mov edx, dword [0x41a190]
mov ebx, eax
mov eax, dword [0x41a19c]
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 [0x41a19c]
push ebx
push ecx
call esi
jmp 0x4059be
lea edx, [esp + 0x14]
push edx
push ebp
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [0x41a198]
test eax, eax
je 0x40589b
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [0x41a19c]
test eax, eax
je 0x4058ab
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 [0x41a19c], eax
mov eax, dword [esp + 0x1c]
sub ecx, edx
sub eax, esi
mov dword [0x41a194], ecx
push ecx
mov ecx, dword [esp + 0x28]
push eax
push ecx
mov dword [0x41a190], eax
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov edx, dword [0x41a19c]
mov ebx, dword [sym.imp.GDI32.dll_SelectObject]
push eax
push edx
mov dword [0x41a198], eax
call ebx
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 [0x41a19c]
push eax
call fcn.00405450
mov ecx, dword [0x41a520]
mov edx, dword [0x41a524]
add esp, 0x14
mov dword [0x41a1a8], ecx
mov eax, dword [edx]
mov ecx, dword [0x41b1c0]
push eax
push ecx
call edi
mov esi, eax
push esi
call dword [sym.imp.KERNEL32.dll_LockResource]
test eax, eax
je 0x40597a
mov ecx, dword [eax + 4]
mov edx, dword [0x41a19c]
mov dword [0x41a0f4], ecx
mov eax, dword [eax + 8]
push eax
push ecx
push 0
push 0
push esi
push edx
mov dword [0x41a0f8], eax
call fcn.00405110
add esp, 0x18
mov eax, dword [0x41a524]
mov ecx, dword [0x41a19c]
mov edx, dword [0x41a194]
push 0xcc0020
push 0
mov dword [0x41a1a4], eax
mov eax, dword [0x41a190]
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 [0x41a19c]
push ebp
push edx
call ebx
mov ebp, dword [esp + 0x68]
mov eax, dword [0x41a534]
test eax, eax
je 0x405b27
mov edx, dword [0x41a148]
mov esi, dword [0x41a14c]
mov eax, dword [0x41a818]
mov ecx, dword [0x41a81c]
test edx, edx
je 0x4059ea
test ecx, ecx
jne 0x4059fa
test esi, esi
je 0x405b27
test eax, eax
je 0x405b27
test edx, edx
je 0x405af1
test esi, esi
je 0x405acb
mov edx, dword [ecx + 4]
mov esi, dword [eax + 4]
cmp edx, esi
jae 0x405a6e
mov eax, dword [ecx]
mov ecx, dword [0x41b1c0]
push eax
push ecx
call edi
mov edx, dword [0x41a0f8]
mov ecx, dword [0x41a0f4]
push edx
push ecx
mov ecx, dword [0x41a81c]
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.00405110
mov eax, dword [0x41a818]
mov edx, dword [0x41b1c0]
add esp, 0x18
mov ecx, dword [eax]
push ecx
push edx
call edi
mov ecx, dword [0x41a0f8]
mov edx, dword [0x41a0f4]
push ecx
push edx
jmp 0x405b0b
mov eax, dword [eax]
mov ecx, dword [0x41b1c0]
push eax
push ecx
call edi
mov edx, dword [0x41a0f8]
mov ecx, dword [0x41a0f4]
push edx
push ecx
mov ecx, dword [0x41a818]
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.00405110
mov eax, dword [0x41a81c]
mov edx, dword [0x41b1c0]
add esp, 0x18
mov ecx, dword [eax]
push ecx
push edx
call edi
mov ecx, dword [0x41a0f8]
mov edx, dword [0x41a0f4]
push ecx
mov ecx, dword [0x41a81c]
push edx
jmp 0x405b11
test edx, edx
je 0x405af1
mov eax, dword [ecx]
mov ecx, dword [0x41b1c0]
push eax
push ecx
call edi
mov edx, dword [0x41a0f8]
mov ecx, dword [0x41a0f4]
push edx
push ecx
mov ecx, dword [0x41a81c]
jmp 0x405b11
mov eax, dword [eax]
mov ecx, dword [0x41b1c0]
push eax
push ecx
call edi
mov edx, dword [0x41a0f8]
mov ecx, dword [0x41a0f4]
push edx
push ecx
mov ecx, dword [0x41a818]
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.00405110
add esp, 0x18
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