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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x404f3b
mov eax, dword fs:[0]
push eax
sub esp, 0x840
mov eax, dword [0x40818c]
xor eax, esp
mov dword [esp + 0x838], eax
push ebx
push esi
push edi
mov eax, dword [0x40818c]
xor eax, esp
push eax
lea eax, [esp + 0x850]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
mov dword [esp + 0x2c], ecx
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 + 0x1f], dl
mov edx, dword [esi]
mov word [esp + 0x18], ax
mov word [esp + 0x1a], cx
mov byte [esp + 0x1d], al
mov byte [esp + 0x1e], al
mov word [esp + 0x30], ax
mov word [esp + 0x32], cx
mov byte [esp + 0x34], al
mov byte [esp + 0x37], al
mov eax, dword [edx + 0x10]
mov ecx, esi
mov dword [esp + 0x858], 0
mov byte [esp + 0x1c], 3
mov byte [esp + 0x35], 1
mov byte [esp + 0x36], 0xfa
call eax
cmp eax, 2
jne 0x40249d
mov dword [esp + 0x20], 0x800
mov dword [esp + 0x28], 1
jmp 0x4024bb
mov edx, dword [esi]
mov eax, dword [edx + 0x10]
mov ecx, esi
call eax
cmp eax, 4
jne 0x40285e
mov dword [esp + 0x20], 0x200
mov dword [esp + 0x28], eax
push 0x406948
push 0x84
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 ebx, eax
mov dword [esp + 0x14], ebx
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, 0xff803fe1
mul ecx
mov ecx, dword [esp + 0x2c]
mov edi, edx
shr edi, 0xb
push 0x3ee
mov dword [esp + 0x44], edi
call sub.mfc90.dll_Ordinal_2899
mov edx, dword [eax + 0x20]
add edi, 0xfffffffe
movzx ecx, di
shl ecx, 0x10
push ecx
push 0
push 0x401
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
lea eax, [esp + 0x44]
dec eax
mov dword [esp + 0x38], eax
jmp 0x402546
mov ebx, dword [esp + 0x14]
mov edx, dword [esi]
mov edx, dword [edx + 0xc]
push 0
push 0
mov byte [esp + 0x26], 0xbd
mov eax, dword [ebx + 0x1008]
push 8
mov dword [esp + 0x24], eax
push 0
lea eax, [esp + 0x28]
push eax
mov ecx, esi
call edx
mov eax, dword [esp + 0x2c]
cmp byte [eax + 0x78], 0
jne 0x40257d
push 0x20
call dword [sym.imp.KERNEL32.dll_Sleep]
mov edi, dword [esp + 0x20]
mov edx, dword [esi]
mov edx, dword [edx + 0xc]
push 0
push edi
mov byte [esp + 0x26], 0xfa
mov ecx, dword [ebx + 0x1008]
push 8
mov dword [esp + 0x24], ecx
lea eax, [esp + 0x50]
push eax
lea ecx, [esp + 0x28]
push ecx
mov ecx, esi
call edx
mov ebx, dword [esp + 0x28]
cmp ebx, 1
jle 0x4025d7
lea edi, [esp + edi + 0x44]
dec ebx
mov ecx, dword [esp + 0x20]
mov eax, dword [esi]
mov eax, dword [eax + 0xc]
push 0
push ecx
push 8
push edi
lea edx, [esp + 0x40]
push edx
mov ecx, esi
call eax
add edi, dword [esp + 0x20]
sub ebx, 1
jne 0x4025b6
xor edi, edi
mov dl, 1
or ecx, 0xffffffff
lea eax, [edi + 1]
mov ebx, edi
and ebx, 3
cmp bl, 3
je 0x4025f7
mov ebx, dword [esp + 0x38]
cmp byte [ebx + eax], 0xff
je 0x4025f7
xor dl, dl
mov ebx, eax
and ebx, 3
cmp bl, 3
je 0x40260a
cmp byte [esp + eax + 0x44], 0xff
je 0x40260a
xor dl, dl
lea ebx, [ecx - 1]
and ebx, 3
cmp bl, 3
je 0x40261e
cmp byte [esp + ecx + 0x47], 0xff
je 0x40261e
xor dl, dl
mov ebx, ecx
and ebx, 3
cmp bl, 3
je 0x402631
cmp byte [esp + edi + 0x47], 0xff
je 0x402631
xor dl, dl
add eax, 4
add edi, 4
add ecx, 4
cmp eax, 0x801
jl 0x4025e1
test dl, dl
je 0x402542
mov ebx, dword [esp + 0x40]
dec ebx
cmp ebx, 2
mov dword [esp + 0x24], ebx
jl 0x40285e
imul ebx, ebx, 0x804
add ebx, dword [esp + 0x14]
mov dword [esp + 0x3c], ebx
mov edx, dword [esi]
mov edx, dword [edx + 0xc]
push 0
push 0
push 8
mov byte [esp + 0x2a], 0xbd
mov ecx, dword [ebx]
push 0
lea eax, [esp + 0x28]
mov dword [esp + 0x28], ecx
push eax
mov ecx, esi
call edx
mov eax, dword [esp + 0x2c]
cmp byte [eax + 0x78], 0
jne 0x40269c
push 0x20
call dword [sym.imp.KERNEL32.dll_Sleep]
mov edx, dword [esi]
mov edx, dword [edx + 0xc]
push 0
push 0
push 8
push 0
lea eax, [esp + 0x28]
push eax
mov ecx, esi
mov byte [esp + 0x32], 0xbc
call edx
mov eax, dword [esp + 0x28]
test eax, eax
jle 0x4026e6
lea edi, [ebx + 4]
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x20]
mov eax, dword [esi]
mov edx, dword [eax + 0xc]
push 0
push 0
push ecx
push 0
push edi
mov ecx, esi
call edx
add edi, dword [esp + 0x20]
sub dword [esp + 0x14], 1
jne 0x4026c6
mov edi, dword [esp + 0x20]
mov edx, dword [esi]
mov edx, dword [edx + 0xc]
push 0
mov byte [esp + 0x22], 0xfa
mov eax, dword [ebx]
push edi
mov dword [esp + 0x20], eax
push 8
lea eax, [esp + 0x50]
push eax
lea ecx, [esp + 0x28]
push ecx
mov ecx, esi
call edx
mov eax, dword [esp + 0x28]
cmp eax, 1
jle 0x402745
lea edi, [esp + edi + 0x44]
lea ebx, [eax - 1]
lea ecx, [ecx]
mov ecx, dword [esp + 0x20]
mov eax, dword [esi]
mov eax, dword [eax + 0xc]
push 0
push ecx
push 8
push edi
lea edx, [esp + 0x40]
push edx
mov ecx, esi
call eax
add edi, dword [esp + 0x20]
sub ebx, 1
jne 0x402720
mov ebx, dword [esp + 0x3c]
xor eax, eax
or edi, 0xffffffff
mov byte [esp + 0x13], 1
mov dword [esp + 0x14], edi
lea ecx, [eax + 1]
mov edx, eax
and edx, 3
cmp dl, 3
je 0x402776
mov edi, dword [esp + 0x38]
mov dl, byte [ebx + eax + 4]
cmp dl, byte [ecx + edi]
mov edi, dword [esp + 0x14]
je 0x402776
mov byte [esp + 0x13], 0
mov edx, ecx
and edx, 3
cmp dl, 3
je 0x40278f
mov dl, byte [ebx + eax + 5]
cmp dl, byte [esp + ecx + 0x44]
je 0x40278f
mov byte [esp + 0x13], 0
lea edx, [edi - 1]
and edx, 3
cmp dl, 3
je 0x4027a9
mov dl, byte [ebx + eax + 6]
cmp dl, byte [esp + edi + 0x47]
je 0x4027a9
mov byte [esp + 0x13], 0
mov edx, edi
and edx, 3
cmp dl, 3
je 0x4027c2
mov dl, byte [ebx + eax + 7]
cmp dl, byte [esp + eax + 0x47]
je 0x4027c2
mov byte [esp + 0x13], 0
add ecx, 4
add edi, 4
add eax, 4
cmp ecx, 0x801
mov dword [esp + 0x14], edi
jl 0x402756
mov edi, dword [esp + 0x2c]
push 0x3ee
mov ecx, edi
call sub.mfc90.dll_Ordinal_2899
mov ecx, dword [esp + 0x40]
sub ecx, dword [esp + 0x24]
mov edx, dword [eax + 0x20]
push 0
push ecx
push 0x402
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
push 0x3ee
mov ecx, edi
call sub.mfc90.dll_Ordinal_2899
mov eax, dword [eax + 0x20]
push 1
push 0
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
push 0x3ee
mov ecx, edi
call sub.mfc90.dll_Ordinal_2899
mov ecx, dword [eax + 0x20]
push 0x105
push 0
push 0
push ecx
call dword [sym.imp.USER32.dll_RedrawWindow]
cmp byte [esp + 0x13], 0
je 0x402853
dec dword [esp + 0x24]
sub ebx, 0x804
mov dword [esp + 0x3c], ebx
cmp dword [esp + 0x24], 2
jge 0x402669
lea ecx, [esp + 0x13]
mov dword [esp + 0x858], 0xffffffff
call fcn.00401a40
mov ecx, dword [esp + 0x850]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x838]
xor ecx, esp
call fcn.00404406
mov esp, ebp
pop ebp
ret 8