Function at 0x418770
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x278
mov eax, dword [0x475aa8]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x14]
push ebx
mov ebx, dword [0x4770e8]
push esi
mov dword [ebp - 0x264], eax
mov eax, dword [ebp + 0xc]
push edi
mov dword [ebp - 0x250], eax
movzx eax, ax
push 0xf1
push eax
mov eax, dword [sym.imp.KERNEL32.dll_FindResourceA]
mov dword [ebp - 0x268], ecx
mov ecx, dword [ebp + 0x18]
push ebx
mov dword [ebp - 0x248], ecx
mov dword [ebp - 0x25c], ebx
mov dword [ebp - 0x26c], eax
call eax
test eax, eax
je 0x418b13
push eax
mov eax, dword [sym.imp.KERNEL32.dll_LoadResource]
push ebx
mov dword [ebp - 0x270], eax
call eax
test eax, eax
je 0x418b13
push eax
mov eax, dword [sym.imp.KERNEL32.dll_LockResource]
mov dword [ebp - 0x274], eax
call eax
mov ebx, eax
mov dword [ebp - 0x258], ebx
test ebx, ebx
je 0x418b13
mov esi, dword [ebp + 0x10]
xor eax, eax
movzx ecx, word [ebx + 6]
test esi, esi
mov dword [ebp - 0x244], 0
setne al
add ecx, eax
mov dword [ebp - 0x24c], eax
mov eax, ecx
mov dword [ebp - 0x278], ecx
mov ecx, 0x14
mul ecx
test edx, edx
jne 0x418b26
cmp eax, 0xffffffff
ja 0x418b26
cmp eax, 0x200
jbe 0x418865
push eax
lea ecx, [ebp - 0x244]
call fcn.00417f70
mov edi, dword [ebp - 0x244]
jmp 0x418871
lea edi, [ebp - 0x240]
mov dword [ebp - 0x244], edi
test edi, edi
je 0x418ae9
test esi, esi
je 0x41889e
mov dword [edi], 4
mov dword [edi + 4], 0
mov word [edi + 8], 0x100
mov dword [edi + 0xc], 0
mov dword [edi + 0x10], 0
xor eax, eax
xor edx, edx
xor ecx, ecx
mov dword [ebp - 0x254], eax
cmp dx, word [ebx + 6]
jae 0x418918
mov edx, dword [ebp - 0x24c]
lea edx, [edx + edx*4]
shl edx, 2
nop dword [eax]
cmp word [ebx + ecx*2 + 8], 0
je 0x4188dd
mov dword [edx + edi], eax
inc eax
movzx esi, word [ebx + ecx*2 + 8]
mov dword [ebp - 0x254], eax
xor al, al
mov ah, 4
jmp 0x4188ea
xor ah, ah
mov dword [edx + edi], 8
mov al, 1
xor esi, esi
mov dword [edx + edi + 4], esi
inc ecx
mov byte [edx + edi + 8], ah
mov byte [edx + edi + 9], al
mov dword [edx + edi + 0xc], 0
mov dword [edx + edi + 0x10], 0
add edx, 0x14
movzx eax, word [ebx + 6]
cmp ecx, eax
mov eax, dword [ebp - 0x254]
jl 0x4188c0
push 0
push dword [0x4770e4]
push dword [ebp - 0x248]
push dword [ebp - 0x264]
push 0x64
push 0x64
push 0
push 0
push dword [ebp - 0x268]
push 0
push str.ToolbarWindow32
push 0
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov ebx, eax
test ebx, ebx
je 0x418ae3
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
push 0
push 0x14
push 0x41e
push ebx
call esi
push 0
push 0
push 0x31
push ebx
call esi
mov esi, eax
test esi, esi
jne 0x41897e
push 0xd
call dword [sym.imp.GDI32.dll_GetStockObject]
mov esi, eax
push 0x3c
lea eax, [ebp - 0x40]
push 0
push eax
call fcn.00420310
add esp, 0xc
lea eax, [ebp - 0x40]
push eax
push 0x3c
push esi
call dword [sym.imp.GDI32.dll_GetObjectA]
mov eax, dword [ebp - 0x40]
mov esi, dword [0x4770e8]
cdq
xor eax, edx
sub eax, edx
movzx eax, ax
mov ecx, eax
mov dword [ebp - 0x24c], eax
mov dword [ebp - 0x248], ecx
mov ecx, dword [ebp - 0x250]
push 2
movzx eax, cx
push eax
push esi
call dword [ebp - 0x26c]
push eax
push esi
call dword [ebp - 0x270]
push eax
call dword [ebp - 0x274]
movzx ecx, word [eax + 0xe]
cmp ecx, 4
jbe 0x418a28
or eax, 0xffffffff
mov edx, 0xff000000
push 0x2040
push 0
cmp ecx, 0x20
mov ecx, dword [ebp - 0x250]
cmovne eax, edx
push eax
mov eax, dword [ebp - 0x258]
push 1
movzx eax, word [eax + 2]
push eax
movzx eax, cx
push eax
push dword [0x4770e8]
call dword [sym.imp.COMCTL32.dll_ImageList_LoadImageA]
push eax
push 0
push 0x430
jmp 0x418a52
mov eax, dword [ebp - 0x25c]
mov dword [ebp - 0x260], eax
mov eax, dword [ebp - 0x250]
mov dword [ebp - 0x25c], eax
lea eax, [ebp - 0x260]
push eax
push dword [ebp - 0x254]
push 0x413
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
push ebx
call esi
push edi
push dword [ebp - 0x278]
push 0x414
push ebx
call esi
mov edi, dword [ebp - 0x258]
mov eax, dword [ebp - 0x248]
movzx eax, ax
movzx ecx, word [edi + 4]
cmp cx, word [ebp - 0x24c]
mov edx, ecx
cmovbe edx, eax
movzx eax, word [edi + 2]
movzx ecx, dx
shl ecx, 0x10
or ecx, eax
push ecx
push 0
push 0x420
push ebx
call esi
movzx ecx, word [edi + 4]
cmp cx, word [ebp - 0x24c]
mov edx, ecx
mov eax, dword [ebp - 0x248]
movzx eax, ax
cmovbe edx, eax
mov ax, word [edi + 2]
add dx, 7
add ax, 7
movzx ecx, dx
shl ecx, 0x10
movzx eax, ax
or ecx, eax
push ecx
push 0
push 0x41f
push ebx
call esi
mov edi, dword [ebp - 0x244]
jmp 0x418aeb
mov edi, dword [ebp - 0x244]
xor ebx, ebx
lea eax, [ebp - 0x240]
cmp edi, eax
je 0x418b00
lea ecx, [ebp - 0x244]
call fcn.00418b40
mov eax, ebx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0041de32
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0041de32
mov esp, ebp
pop ebp
ret
push 0x80070216
call fcn.0040e0c0
int3