Function at 0x4ab1f4
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x7c
mov ebx, dword [esp + 0x90]
mov dword [esp + 4], 0x14
mov dword [esp], 0x68b710
mov eax, dword [0x68bb7c]
call dword [eax + 0x4cc]
mov dword [esp + 0x3c], eax
mov eax, dword [ebx + 0x64]
test eax, eax
js 0x4ab598
add eax, dword [ebx + 0x50]
mov dword [ebx + 0x70], eax
mov dword [ebx + 0xe0], 0
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax]
test ecx, ecx
je 0x4ab774
mov eax, dword [ebx + 0x2c]
test eax, eax
je 0x4ab53c
lea edx, [esp + 0x60]
mov dword [esp + 8], edx
lea edx, [esp + 0x5c]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0042ec20
mov dword [esp + 0x38], 1
mov eax, dword [ebx + 0xdc]
mov dword [esp], eax
call fcn.004305c4
mov ebp, dword [ebx + 0xc8]
mov esi, dword [ebx + 0xb0]
mov eax, dword [ebx + 0x18]
mov dword [esp], eax
mov eax, dword [0x68bb7c]
call dword [eax + 0x558]
lea edx, [ebx + 0xd8]
mov dword [esp + 0x1c], edx
lea edx, [ebx + 0xd4]
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0xffffffff
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x74]
mov dword [esp], eax
call fcn.0042fef8
mov dword [ebx + 0xdc], eax
mov ecx, dword [ebx + 0xd4]
mov dword [esp + 0x40], ecx
mov ebp, dword [ebx + 0xd8]
mov eax, dword [ebx + 0x18]
mov dword [esp], eax
mov eax, dword [0x68bb7c]
call dword [eax + 0x558]
mov al, byte [eax]
mov byte [esp + 0x47], al
mov dword [esp + 8], 0x34
mov dword [esp + 4], str.abcdefghijklmnopqurstuvwzyABCDEFGHIJKLMNOPQURSTUVWZY
mov eax, dword [ebx + 0x74]
mov dword [esp], eax
call fcn.0042fd7c
lea ecx, [eax + 0x1a]
mov eax, 0x4ec4ec4f
imul ecx
mov esi, edx
sar esi, 4
sar ecx, 0x1f
sub esi, ecx
lea eax, [esp + 0x64]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x74]
mov dword [esp], eax
call fcn.0042f8a8
fld dword [0x616a8c]
push esi
fimul dword [esp]
pop eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x34], eax
fld dword [0x616a90]
fimul dword [esp + 0x34]
mov edi, dword [ebx + 0x10]
cmp edi, 1
je 0x4ab5a8
jle 0x4ab6e0
cmp edi, 3
jg 0x4ab448
fld st(0)
fadd st(1)
fadd dword [0x616a98]
fnstcw word [esp + 0x4e]
mov ax, word [esp + 0x4e]
mov ah, 0xc
mov word [esp + 0x4c], ax
fldcw word [esp + 0x4c]
fistp dword [esp + 0x48]
fldcw word [esp + 0x4e]
mov eax, dword [esp + 0x48]
lea edx, [ebp + eax - 4]
inc dword [ebx + 0x70]
mov ecx, dword [esp + 0x40]
mov ebp, dword [ebx + 0x108]
mov eax, dword [ebx + 0xa0]
cmp ebp, 3
je 0x4ab564
cmp dword [esp + 0x38], 0
je 0x4ab457
fstp st(0)
cmp byte [esp + 0x47], 0
jne 0x4ab640
test eax, eax
jle 0x4ab57a
mov ecx, dword [ebx + 0xa8]
test ecx, ecx
jle 0x4ab58c
lea edx, [edi - 2]
cmp edx, 1
jbe 0x4ab4da
fstp st(0)
jmp 0x4ab414
fstp st(0)
jmp 0x4ab414
fstp st(0)
nop
mov edx, dword [ebx + 0x70]
shl edx, 1
add ecx, edx
mov dword [esp + 8], ecx
add eax, edx
mov dword [esp + 4], eax
mov eax, dword [ebx]
mov dword [esp], eax
call fcn.0047f38c
mov eax, dword [ebx + 0x70]
mov dword [esp + 4], eax
mov eax, dword [ebx]
mov dword [esp], eax
call fcn.0047f4b0
add esp, 0x7c
pop ebx
pop esi
pop edi
pop ebp
ret
xor edx, edx
xor ecx, ecx
jmp 0x4ab3b6
inc dword [ebx + 0x70]
test eax, eax
jle 0x4ab460
mov ecx, eax
imul ecx, esi
mov eax, dword [ebx + 0xa8]
test eax, eax
jle 0x4ab4b0
mov edx, dword [esp + 0x34]
imul edx, eax
cmp edi, 1
je 0x4ab708
jl 0x4ab4b4
cmp edi, 3
jg 0x4ab4b8
fadd st(0)
fadd dword [0x616a98]
fnstcw word [esp + 0x4e]
mov ax, word [esp + 0x4e]
mov ah, 0xc
mov word [esp + 0x4c], ax
fldcw word [esp + 0x4c]
fistp dword [esp + 0x48]
fldcw word [esp + 0x4e]
mov eax, dword [esp + 0x48]
lea edx, [edx + eax - 4]
jmp 0x4ab4bc
fstp st(0)
jmp 0x4ab4bc
fstp st(0)
jmp 0x4ab4bc
fstp st(0)
nop
mov eax, dword [ebx + 0xb8]
lea eax, [ecx + eax*2]
mov ecx, dword [ebx + 0xc0]
lea ecx, [edx + ecx*2]
lea edx, [edi - 2]
cmp edx, 1
ja 0x4ab40c
mov esi, dword [ebx + 0xcc]
test esi, esi
je 0x4ab410
mov edx, dword [esp + 0x3c]
mov edi, dword [edx + 0xc]
mov dword [ebx + 0xe4], edi
cmp ecx, edi
jl 0x4ab680
fmul dword [0x616a9c]
fadd dword [0x616a98]
fnstcw word [esp + 0x4e]
mov dx, word [esp + 0x4e]
mov dh, 0xc
mov word [esp + 0x4c], dx
fldcw word [esp + 0x4c]
fistp dword [esp + 0x48]
fldcw word [esp + 0x4e]
mov esi, dword [esp + 0x48]
lea edx, [edi + esi]
mov dword [ebx + 0xe0], edx
add eax, edx
jmp 0x4ab414
mov eax, dword [ebx + 0x24]
test eax, eax
jne 0x4ab748
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x38], 0
jmp 0x4ab274
mov ebp, dword [esp + 0x38]
test ebp, ebp
je 0x4ab457
fstp st(0)
test eax, eax
jg 0x4ab3eb
mov eax, dword [esp + 0x5c]
mov ecx, dword [ebx + 0xa8]
test ecx, ecx
jg 0x4ab3f9
mov ecx, dword [esp + 0x60]
jmp 0x4ab3f9
mov dword [ebx + 0x64], 0
xor eax, eax
jmp 0x4ab22b
mov eax, dword [ebx + 0xa0]
cmp eax, 0
jl 0x4ab688
fld st(1)
fmul dword [0x616a94]
fadd dword [0x616a98]
fnstcw word [esp + 0x4e]
mov dx, word [esp + 0x4e]
mov dh, 0xc
mov word [esp + 0x4c], dx
fldcw word [esp + 0x4c]
fistp dword [esp + 0x48]
fldcw word [esp + 0x4e]
jne 0x4ab860
mov ecx, dword [esp + 0x48]
add ecx, dword [esp + 0x40]
mov dword [esp + 0x2c], ecx
fld st(0)
fmul dword [0x616a94]
fadd dword [0x616a98]
fldcw word [esp + 0x4c]
fistp dword [esp + 0x48]
fldcw word [esp + 0x4e]
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x2c]
sub ecx, 0xa
lea edx, [ebp + edx - 0xa]
mov ebp, dword [esp + 0x38]
test ebp, ebp
je 0x4ab454
fstp st(0)
mov ebp, dword [ebx + 0x108]
cmp ebp, 3
jne 0x4ab3d8
jmp 0x4ab3e3
cmp ebp, 5
jbe switch.0x004ab740
mov esi, dword [ebx + 0xc0]
mov ebp, dword [ebx + 0xb8]
cmp eax, 0
jl 0x4ab900
je 0x4ab91c
mov ecx, dword [ebx + 0xa8]
test ecx, ecx
jle 0x4ab8f8
lea eax, [eax + ebp*2]
lea ecx, [ecx + esi*2]
jmp 0x4ab3f9
mov ecx, edi
jmp 0x4ab4fd
mov edx, eax
imul edx, esi
mov dword [esp + 0x2c], edx
fld st(1)
fmul dword [0x616a94]
fadd dword [0x616a98]
fnstcw word [esp + 0x4e]
mov dx, word [esp + 0x4e]
mov dh, 0xc
mov word [esp + 0x4c], dx
fldcw word [esp + 0x4c]
fistp dword [esp + 0x48]
fldcw word [esp + 0x4e]
mov edx, dword [esp + 0x48]
mov ecx, edx
sub ecx, dword [esp + 0x2c]
mov dword [esp + 0x2c], ecx
add edx, dword [esp + 0x40]
cmp edx, dword [esp + 0x2c]
jle 0x4ab5f3
mov dword [esp + 0x2c], edx
jmp 0x4ab5f3
test edi, edi
jne 0x4ab448
test ebp, ebp
je 0x4ab6f8
mov edx, ebp
mov ecx, dword [esp + 0x40]
jmp 0x4ab3b6
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x40]
jmp 0x4ab3b6
fmul dword [0x616a94]
fadd dword [0x616a98]
fnstcw word [esp + 0x4e]
mov ax, word [esp + 0x4e]
mov ah, 0xc
mov word [esp + 0x4c], ax
fldcw word [esp + 0x4c]
fistp dword [esp + 0x48]
fldcw word [esp + 0x4e]
mov eax, dword [esp + 0x48]
lea edx, [edx + eax - 0xa]
jmp 0x4ab4bc
jmp dword [ebp*4 + 0x616a74]
lea edx, [esp + 0x60]
mov dword [esp + 0xc], edx
lea edx, [esp + 0x5c]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebx + 4]
mov dword [esp], eax
call fcn.0047a4b0
mov dword [esp + 0x38], 1
jmp 0x4ab274
call fcn.00433ee4
mov esi, eax
mov dword [esp + 4], 0x14
mov dword [esp], 0x68b710
mov eax, dword [0x68bb7c]
call dword [eax + 0x4cc]
mov ebp, eax
mov dword [esp + 8], 2
mov dword [esp + 4], str.buttons
mov dword [esp], esi
call sub.KERNEL32.dll_FindResourceA
sub esp, 0xc
test eax, eax
je 0x4ab924
mov dword [esp + 4], eax
mov dword [esp], esi
call sub.KERNEL32.dll_LoadResource
sub esp, 8
mov dword [esp], eax
call sub.KERNEL32.dll_LockResource
push edx
mov dword [ebp], eax
test eax, eax
je 0x4ab854
test byte [eax + 4], 3
jne 0x4ab854
test byte [eax + 8], 1
jne 0x4ab854
mov edx, dword [eax + 0x14]
add edx, dword [eax]
movzx ecx, word [eax + 0xe]
mov eax, 4
shl eax, cl
lea ecx, [edx + eax]
mov dword [esp], ecx
mov eax, dword [0x68bb7c]
mov dword [esp + 0x30], ecx
call dword [eax + 0x14]
mov esi, dword [ebp]
mov ecx, dword [esp + 0x30]
mov edi, eax
rep movsb byte es:[edi], byte [esi]
mov dword [ebp], eax
mov edx, dword [eax + 4]
test edx, edx
js 0x4ab93b
sar edx, 2
mov dword [ebp + 0x10], edx
mov edx, dword [eax + 8]
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
sar edx, 1
mov dword [ebp + 0xc], edx
mov edx, dword [eax]
add edx, eax
mov dword [ebp + 4], edx
movzx ecx, word [eax + 0xe]
mov eax, 4
shl eax, cl
add eax, edx
mov dword [ebp + 8], eax
jmp 0x4ab249
mov dword [ebp], 0
jmp 0x4ab249
mov edx, dword [esp + 0x48]
mov dword [esp + 0x2c], 0
jmp 0x4ab6c9
mov ebp, dword [ebx + 0xb8]
mov esi, dword [esp + 0x40]
add esi, dword [esp + 0x5c]
add esi, ebp
cmp ecx, esi
jge 0x4ab88a
mov ecx, esi
mov esi, dword [esp + 0x60]
mov dword [esp + 0x34], esi
cmp esi, edx
mov esi, dword [ebx + 0xc0]
jle 0x4ab655
mov edx, dword [esp + 0x34]
jmp 0x4ab655
mov esi, dword [esp + 0x5c]
cmp ecx, esi
jge 0x4ab8b6
mov ecx, esi
mov esi, dword [esp + 0x60]
mov dword [esp + 0x34], esi
cmp esi, edx
mov esi, dword [ebx + 0xc0]
mov ebp, dword [ebx + 0xb8]
jle 0x4ab655
jmp 0x4ab8a0
mov esi, dword [esp + 0x5c]
cmp ecx, esi
jge 0x4ab8de
mov ecx, esi
mov esi, dword [ebx + 0xc0]
mov ebp, dword [esp + 0x60]
add ebp, esi
add edx, ebp
mov ebp, dword [ebx + 0xb8]
jmp 0x4ab655
mov ecx, edx
jmp 0x4ab672
neg eax
mov dword [esp + 0x34], eax
mov eax, ecx
cmp ecx, dword [esp + 0x34]
jge 0x4ab664
mov eax, dword [esp + 0x34]
jmp 0x4ab664
mov eax, ecx
jmp 0x4ab664
mov dword [esp], str.FindResource___failed_for_buttons_bitmap_resource__resources_in_tk_base.rc_must_be_linked_into_Tk_dll_or_static_executable
mov eax, dword [0x68bb7c]
call dword [eax + 0x10]
mov eax, dword [ebp]
jmp 0x4ab7d5
add edx, 3
jmp 0x4ab820