Function at 0x4023fd
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov eax, 0x2594
mov ebp, esp
call fcn.004041d0
push ebx
push esi
push edi
push 0x40b0f4
push 0x40b0fc
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_FindResourceA]
test eax, eax
jne 0x40242b
mov al, 0xff
jmp 0x402b43
push eax
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov dword [ebp - 4], eax
test eax, eax
jne 0x402443
mov al, 0xff
jmp 0x402b43
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_LockResource]
mov ebx, eax
test ebx, ebx
jne 0x402459
mov al, 0xff
jmp 0x402b43
cmp dword [ebx], 0x194
je 0x402468
mov al, 0xfe
jmp 0x402b43
cmp dword [ebx + 4], 6
je 0x402475
mov al, 0xfe
jmp 0x402b43
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 0x14]
lea esi, [ebx + 0x1c]
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x18], ecx
mov ecx, 0xa
mov dword [0x40c800], edx
mov eax, dword [ebx + 0x10]
push 0x28
mov dword [ebp - 0x14], eax
mov eax, 0x40c7b0
mov edi, eax
push eax
rep movsd dword es:[edi], dword [esi]
lea esi, [ebx + 0x44]
call fcn.00401ef4
add esp, 8
lea edi, [ebp - 0x208]
mov ecx, 0x20
rep movsd dword es:[edi], dword [esi]
push pe_nt_image_headers32
lea ecx, [ebp - 0x208]
push ecx
lea esi, [ebx + 0xc4]
lea edi, [ebp - 0x84]
call fcn.00401ef4
add esp, 8
mov ecx, 0x14
rep movsd dword es:[edi], dword [esi]
push 0x50
lea ecx, [ebp - 0x84]
push ecx
lea esi, [ebx + 0x114]
lea edi, [ebp - 0x288]
call fcn.00401ef4
add esp, 8
mov ecx, 0x20
rep movsd dword es:[edi], dword [esi]
push pe_nt_image_headers32
lea ecx, [ebp - 0x288]
push ecx
call fcn.00401ef4
add esp, 8
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_FreeResource]
cmp dword [ebp - 0x18], 0
jg 0x40253a
mov al, 0xfd
jmp 0x402b43
lea eax, [ebp - 0x84]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
je 0x4025b8
cmp dword [0x40b038], 0
jne 0x4025b8
mov edi, pe_nt_image_headers32
mov esi, 0x40c500
push edi
push esi
push 1
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_LoadStringA]
push edi
mov edi, 0x40c730
push edi
push 8
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_LoadStringA]
lea eax, [ebp - 0x84]
lea ecx, [ebp - 0x2594]
push eax
push edi
push ecx
call fcn.004032f0
add esp, 0xc
lea ecx, [ebp - 0x2594]
push 4
push esi
push ecx
call fcn.004011b6
push eax
call section..text
add esp, 0x10
cmp eax, 7
jne 0x4025b8
mov al, 0xf4
jmp 0x402b43
push 0x40c7b0
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
je 0x4025d7
call fcn.00401ea2
test eax, eax
jne 0x4025d7
mov al, 0xf5
jmp 0x402b43
cmp dword [0x40b038], 0
jne 0x4025fa
push 1
mov eax, dword [0x40c7dc]
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [0x40c7dc]
push eax
call dword [sym.imp.USER32.dll_UpdateWindow]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 0x104
mov dword [0x40c7f8], eax
lea eax, [ebp - 0x38c]
push eax
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 0x20
lea ecx, [ebp - 0x38c]
push 0x40b108
push ecx
call fcn.00403200
add esp, 0xc
mov esi, eax
test esi, esi
jne 0x40263d
mov al, 0xfc
jmp 0x402b43
push dword [esi + 0x10]
call fcn.00404140
add esp, 4
mov dword [ebp - 8], eax
cmp eax, 0xffffffff
je 0x402b38
mov eax, dword [ebp - 0xc]
cmp dword [ebp - 8], eax
jl 0x402b38
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 8]
jg 0x402b38
xor edi, edi
push edi
mov dword [0x40c71c], edi
push dword [ebp - 0xc]
push esi
call fcn.004040a0
add esp, 0xc
cmp dword [ebp - 0x18], edi
jle 0x402974
xor ebx, ebx
push esi
lea eax, [ebp - 0x10]
push 1
push 4
push eax
call fcn.00403a40
add esp, 0x10
cmp eax, 1
jne 0x4029d3
cmp dword [ebp - 0x10], ebx
jle 0x402b2b
cmp dword [ebp - 0x10], 0x104
jg 0x402b2b
push esi
lea ecx, [ebp - 0x188]
push 1
push dword [ebp - 0x10]
push ecx
call fcn.00403a40
add esp, 0x10
cmp eax, 1
jne 0x4029e3
push dword [ebp - 0x10]
lea ecx, [ebp - 0x188]
push ecx
call fcn.00401ef4
add esp, 8
mov ecx, dword [ebp - 0x10]
lea edx, [ebp - 0x38c]
lea eax, [ebp - 0x594]
push 0x5c
mov byte [ebp + ecx - 0x188], bl
push edx
lea ecx, [ebp - 0x188]
push eax
push ecx
call fcn.004019e2
add esp, 0x10
lea ecx, [ebp - 0x288]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea ecx, [ebp + eax - 0x594]
lea edx, [ebp - 0x490]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea ecx, [ebp - 0x490]
push ecx
push 0x40c590
call fcn.004020ef
add esp, 8
test eax, eax
je 0x4029f3
lea eax, [ebp - 0x38c]
lea ecx, [ebp - 0x490]
push eax
lea edx, [ebp - 0x188]
push ecx
push 0x40c590
push 0x40b10c
push edx
call fcn.004032f0
add esp, 0x14
lea ecx, [ebp - 0x188]
push pe_nt_image_headers32
push 0x300
push ecx
call fcn.00403c60
add esp, 0xc
cmp eax, 0xffffffff
je 0x402a03
push eax
call fcn.00403b90
add esp, 4
lea eax, [ebp - 0x188]
push 0x20
push 0x40b114
push eax
call fcn.00403200
add esp, 0xc
mov dword [ebp - 0xc], eax
cmp eax, ebx
push esi
je 0x402a71
push 1
lea eax, [ebp - 0x24]
push 4
push eax
call fcn.00403a40
add esp, 0x10
cmp eax, 1
push esi
jne 0x402ad5
push 1
lea eax, [ebp - 8]
push 4
push eax
call fcn.00403a40
add esp, 0x10
cmp eax, 1
jne 0x402ae1
cmp dword [ebp - 8], ebx
jle 0x402aee
mov eax, dword [ebp - 8]
mov dword [ebp - 0x20], ebx
cdq
and edx, 0x1fff
add eax, edx
sar eax, 0xd
mov dword [ebp - 4], eax
shl eax, 0xd
cmp dword [ebp - 8], eax
jle 0x40282b
mov ecx, dword [ebp - 8]
inc dword [ebp - 4]
sub ecx, eax
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], 0x2000
mov eax, dword [0x40c71c]
imul eax, eax, 0x64
cdq
idiv dword [0x40c800]
mov dword [0x40c7d8], eax
mov eax, dword [0x40c71c]
add eax, dword [ebp - 4]
mov dword [ebp - 0x14], ebx
imul eax, eax, 0x64
cdq
idiv dword [0x40c800]
mov dword [0x40c838], eax
cmp dword [ebp - 4], ebx
jle 0x4028d3
mov eax, dword [ebp - 4]
sub eax, dword [ebp - 0x14]
cmp eax, 1
jne 0x40287b
cmp dword [ebp - 0x20], ebx
je 0x40287b
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x1c], eax
push esi
lea ecx, [ebp - 0x2594]
push 1
push dword [ebp - 0x1c]
push ecx
call fcn.00403a40
add esp, 0x10
cmp eax, 1
jne 0x402afb
push dword [ebp - 0xc]
push 1
push dword [ebp - 0x1c]
lea edx, [ebp - 0x2594]
push edx
call fcn.004038c0
add esp, 0x10
cmp eax, 1
jne 0x402b13
push ebx
inc dword [0x40c71c]
call fcn.004010d2
add esp, 4
mov eax, dword [ebp - 4]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], eax
jl 0x402865
push dword [ebp - 0xc]
call fcn.00403150
add esp, 4
push 0x64
call fcn.004010d2
add esp, 4
lea eax, [ebp - 0x38c]
lea ecx, [ebp - 0x490]
lea edx, [ebp - 0x188]
push eax
push ecx
push 0x40c590
push 0x40b118
push edx
call fcn.004032f0
add esp, 0x14
lea ecx, [ebp - 0x188]
push ebx
push ebx
push 3
push ebx
push 1
push 0x40000000
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 4], eax
cmp eax, 0xffffffff
je 0x40296a
lea eax, [ebp - 0x34]
push eax
mov eax, dword [ebp - 0x24]
shr eax, 0x10
push eax
push dword [ebp - 0x24]
call dword [sym.imp.KERNEL32.dll_DosDateTimeToFileTime]
lea ecx, [ebp - 0x2c]
lea edx, [ebp - 0x34]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_LocalFileTimeToFileTime]
lea ecx, [ebp - 0x2c]
push ecx
push ecx
push ecx
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_SetFileTime]
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
inc edi
cmp edi, dword [ebp - 0x18]
jl 0x40268c
cmp dword [0x40b038], 0
jne 0x4029a3
push 1
mov eax, dword [0x40c7dc]
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [0x40c7dc]
push eax
call dword [sym.imp.USER32.dll_UpdateWindow]
mov eax, dword [0x40c7f4]
push eax
call dword [sym.imp.USER32.dll_UpdateWindow]
lea eax, [ebp - 0x208]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
je 0x4029c3
lea eax, [ebp - 0x208]
push eax
call fcn.00401be0
add esp, 4
push esi
call fcn.00403150
add esp, 4
xor al, al
jmp 0x402b43
push esi
call fcn.00403150
add esp, 4
mov al, 0xfa
jmp 0x402b43
push esi
call fcn.00403150
add esp, 4
mov al, 0xfa
jmp 0x402b43
push esi
call fcn.00403150
add esp, 4
mov al, 0xf3
jmp 0x402b43
push esi
mov edi, pe_nt_image_headers32
mov esi, 0x40c500
call fcn.00403150
add esp, 4
push edi
push esi
push 1
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_LoadStringA]
push edi
mov edi, 0x40c730
push edi
push 5
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_LoadStringA]
mov eax, dword [0x40b164]
lea ecx, [ebp - 0x188]
push eax
lea edx, [ebp - 0x2594]
push ecx
push edi
push edx
call fcn.004032f0
add esp, 0x10
lea ecx, [ebp - 0x2594]
push 0
push esi
push ecx
push dword [0x40c7dc]
call section..text
add esp, 0x10
mov al, 0xf8
jmp 0x402b43
mov edi, pe_nt_image_headers32
call fcn.00403150
add esp, 4
mov esi, 0x40c500
push edi
push esi
push 1
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_LoadStringA]
push edi
mov edi, 0x40c730
push edi
push 6
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_LoadStringA]
lea eax, [ebp - 0x188]
lea ecx, [ebp - 0x2594]
push eax
push edi
push ecx
call fcn.004032f0
add esp, 0xc
lea ecx, [ebp - 0x2594]
push 0
push esi
push ecx
push dword [0x40c7dc]
call section..text
add esp, 0x10
mov al, 0xf8
jmp 0x402b43
call fcn.00403150
add esp, 4
mov al, 0xfa
jmp 0x402b43
push esi
call fcn.00403150
add esp, 4
mov al, 0xfa
jmp 0x402b43
push esi
call fcn.00403150
add esp, 4
mov al, 0xf9
jmp 0x402b43
push esi
call fcn.00403150
add esp, 4
push dword [ebp - 0xc]
call fcn.00403150
add esp, 4
mov al, 0xf7
jmp 0x402b43
push esi
call fcn.00403150
add esp, 4
push dword [ebp - 0xc]
call fcn.00403150
add esp, 4
mov al, 0xf6
jmp 0x402b43
push esi
call fcn.00403150
add esp, 4
mov al, 0xf9
jmp 0x402b43
push esi
call fcn.00403150
add esp, 4
mov al, 0xfb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret