Function at 0x401f60
Capabilities:
Extract resource via kernel32 functions
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x404efb
mov eax, dword fs:[0]
push eax
sub esp, 0x848
mov eax, dword [0x40818c]
xor eax, esp
mov dword [esp + 0x840], eax
push ebx
push esi
push edi
mov eax, dword [0x40818c]
xor eax, esp
push eax
lea eax, [esp + 0x858]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
mov ebx, ecx
mov dword [esp + 0x30], ebx
call sub.mfc90.dll_Ordinal_1137
mov ecx, dword [eax + 4]
call sub.mfc90.dll_Ordinal_1387
mov dl, byte [ebp + 0xc]
xor eax, eax
xor ecx, ecx
mov byte [esp + 0x27], dl
mov edx, dword [esi]
mov word [esp + 0x20], ax
mov word [esp + 0x22], cx
mov byte [esp + 0x24], al
mov byte [esp + 0x25], al
mov byte [esp + 0x26], al
mov word [esp + 0x40], ax
mov word [esp + 0x42], cx
mov byte [esp + 0x44], al
mov byte [esp + 0x47], al
mov eax, dword [edx + 0x10]
mov ecx, esi
mov dword [esp + 0x860], 0
mov byte [esp + 0x45], 1
mov byte [esp + 0x46], 0xfa
call eax
cmp eax, 2
jne 0x40201e
mov dword [esp + 0x18], 0x800
mov dword [esp + 0x2c], 1
jmp 0x40203c
mov edx, dword [esi]
mov eax, dword [edx + 0x10]
mov ecx, esi
call eax
cmp eax, 4
jne 0x40239c
mov dword [esp + 0x18], 0x200
mov dword [esp + 0x2c], eax
movzx ecx, word [ebp + 0x10]
push 0x406948
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_FindResourceA]
mov edi, eax
call sub.mfc90.dll_Ordinal_1137
mov eax, dword [eax + 0xc]
push edi
push eax
call dword [sym.imp.KERNEL32.dll_LoadResource]
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov dword [esp + 0x1c], eax
call sub.mfc90.dll_Ordinal_1137
mov eax, dword [eax + 0xc]
push edi
push eax
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov ecx, eax
mov eax, 0xfff001
mul ecx
mov edi, edx
mov edx, dword [ebp + 0x14]
shr edi, 6
push edx
mov ecx, ebx
mov dword [esp + 0x4c], edi
call sub.mfc90.dll_Ordinal_2899
mov eax, dword [eax + 0x20]
lea ecx, [edi*8]
movzx edx, cx
shl edx, 0x10
push edx
push 0
push 0x401
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov dword [esp + 0x34], 0
test edi, edi
jle 0x40239c
mov edi, dword [esp + 0x1c]
mov eax, 0xfffffffc
sub eax, edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x3c], eax
jmp 0x4020e8
mov ebx, dword [esp + 0x30]
mov edi, dword [esp + 0x28]
mov edx, dword [esi]
mov edx, dword [edx + 0xc]
xor ecx, ecx
mov byte [esp + 0x26], 0xbd
mov eax, dword [edi]
cmp eax, 0x1fc00000
setl cl
push 0
push 0
push 8
push 0
dec ecx
and ecx, 0xfff20000
add ecx, 0x100000
add ecx, eax
lea eax, [esp + 0x30]
mov dword [esp + 0x30], ecx
push eax
mov ecx, esi
call edx
cmp byte [ebx + 0x78], 0
jne 0x402130
push 0x20
call dword [sym.imp.KERNEL32.dll_Sleep]
xor ebx, ebx
add edi, 5
mov byte [esp + 0x17], 1
mov dword [esp + 0x38], edi
cmp byte [esp + 0x17], 0
je 0x40238e
mov eax, dword [esp + 0x28]
mov edx, dword [esi]
mov edx, dword [edx + 0xc]
xor ecx, ecx
mov byte [esp + 0x26], 0xbc
mov eax, dword [eax]
cmp eax, 0x1fc00000
setl cl
push 0
push 0
push 8
push 0
dec ecx
and ecx, 0xfff20000
add ecx, 0x100000
add ecx, ebx
add ecx, eax
lea eax, [esp + 0x30]
mov dword [esp + 0x30], ecx
push eax
mov ecx, esi
call edx
cmp dword [esp + 0x2c], 0
jle 0x4021c4
mov eax, dword [esp + 0x2c]
dec edi
mov dword [esp + 0x1c], eax
lea esp, [esp]
mov eax, dword [esp + 0x18]
mov edx, dword [esi]
mov edx, dword [edx + 0xc]
push 0
push 0
push eax
push 0
push edi
mov ecx, esi
call edx
add edi, dword [esp + 0x18]
sub dword [esp + 0x1c], 1
jne 0x4021a0
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0x30]
cmp byte [eax + 0x78], 0
jne 0x4021d6
push 0x20
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [esp + 0x28]
xor edx, edx
mov byte [esp + 0x26], 0xfa
mov eax, dword [ecx]
cmp eax, 0x1fc00000
setl dl
push 0
lea ecx, [esp + 0x50]
dec edx
and edx, 0xfff20000
add edx, 0x100000
add edx, ebx
lea eax, [edx + eax - 0x1d000000]
mov edx, dword [esi]
mov edx, dword [edx + 0xc]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x1c]
push eax
push 8
push ecx
lea eax, [esp + 0x30]
push eax
mov ecx, esi
call edx
cmp dword [esp + 0x2c], 1
jle 0x402267
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x18]
dec eax
lea edi, [esp + edi + 0x4c]
mov dword [esp + 0x1c], eax
lea esp, [esp]
mov eax, dword [esp + 0x18]
mov edx, dword [esi]
mov edx, dword [edx + 0xc]
push 0
push eax
push 8
push edi
lea ecx, [esp + 0x50]
push ecx
mov ecx, esi
call edx
add edi, dword [esp + 0x18]
sub dword [esp + 0x1c], 1
jne 0x402240
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
xor ecx, ecx
cmp eax, 0x1fc00000
setl cl
dec ecx
and ecx, 0xfff20000
add ecx, 0x100000
add ecx, ebx
add ecx, eax
and ecx, 0xf0ffff
cmp ecx, 0xc0f800
je 0x4022e5
xor eax, eax
jmp 0x4022a0
mov dl, byte [edi + eax - 1]
cmp dl, byte [esp + eax + 0x4c]
je 0x4022af
mov byte [esp + 0x17], 0
mov cl, byte [edi + eax]
cmp cl, byte [esp + eax + 0x4d]
je 0x4022bd
mov byte [esp + 0x17], 0
mov dl, byte [edi + eax + 1]
cmp dl, byte [esp + eax + 0x4e]
je 0x4022cc
mov byte [esp + 0x17], 0
mov cl, byte [edi + eax + 2]
cmp cl, byte [esp + eax + 0x4f]
je 0x4022db
mov byte [esp + 0x17], 0
add eax, 4
cmp eax, 0x800
jl 0x4022a0
mov edx, dword [ebp + 0x14]
mov ecx, dword [esp + 0x30]
push edx
call sub.mfc90.dll_Ordinal_2899
mov ecx, eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [ecx + 0x20]
add eax, edi
cdq
and edx, 0x7ff
add eax, edx
mov edx, dword [esp + 0x34]
push 0
sar eax, 0xb
lea eax, [eax + edx*8]
push eax
push 0x402
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
mov edx, dword [ebp + 0x14]
mov ecx, dword [esp + 0x30]
push edx
call sub.mfc90.dll_Ordinal_2899
mov eax, dword [eax + 0x20]
push 1
push 0
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
mov ecx, dword [ebp + 0x14]
push ecx
mov ecx, dword [esp + 0x34]
call sub.mfc90.dll_Ordinal_2899
mov edx, dword [eax + 0x20]
push 0x105
push 0
push 0
push edx
call dword [sym.imp.USER32.dll_RedrawWindow]
add ebx, 0x800
add edi, 0x800
cmp ebx, 0x4000
mov dword [esp + 0x38], edi
jl 0x40213e
cmp byte [esp + 0x17], 0
je 0x40238e
inc dword [esp + 0x34]
mov eax, 0x4004
sub dword [esp + 0x3c], eax
add dword [esp + 0x28], eax
mov eax, dword [esp + 0x34]
cmp eax, dword [esp + 0x48]
jl 0x4020e0
lea ecx, [esp + 0x17]
mov dword [esp + 0x860], 0xffffffff
call fcn.00401a40
mov ecx, dword [esp + 0x858]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x840]
xor ecx, esp
call fcn.00404406
mov esp, ebp
pop ebp
ret 0x10