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

Disassembly:
push ebx
push esi
push edi
push ebp
push eax
mov eax, 0x10
add esp, 0xfffff004
push eax
dec eax
jne 0x408e0e
mov eax, dword [esp + 0x10000]
add esp, 0xfffff520
push 2
push 0
mov eax, dword [0x40f828]
call fcn.0040399c
push eax
call sub.kernel32.dll_LoadLibraryExA
mov dword [esp + 0x24], eax
xor eax, eax
mov dword [0x40f8c0], eax
lea eax, [esp + 0x28]
mov edx, 0x28
call fcn.00404154
cmp dword [0x40fa60], 0
je 0x408e61
add word [esp + 0x36], 2
cmp dword [0x40fa64], 0
je 0x408e6f
inc word [esp + 0x36]
mov dword [esp + 0x38], 3
mov dword [esp + 0x3c], 0x80000000
mov dword [esp + 0x40], 0xe
mov dword [esp + 0x44], 0x80000000
mov dword [esp + 0x48], 0x18
mov dword [esp + 0x4c], 0x80000000
xor eax, eax
mov dword [esp], eax
xor eax, eax
mov dword [esp + 4], eax
cmp dword [0x40fa60], 0
je 0x4091b8
lea eax, [esp + 0x90]
mov edx, 0x654
call fcn.00404154
mov ebx, dword [0x40fa60]
add ebx, 0x10
mov eax, ebx
mov ecx, dword [eax]
mov edx, ecx
and edx, 0x7fffffff
mov ebx, dword [eax + 4]
and ebx, 0x7fffffff
mov dword [esp + 0xc], ebx
test ecx, 0x80000000
je 0x408f6d
mov word [esp + 0x9c], 1
mov ecx, dword [0x40f8c8]
add ecx, edx
mov eax, dword [0x40f9f0]
mov edx, dword [0x40f9d4]
call fcn.00404650
mov ebx, eax
movzx eax, word [ebx]
add eax, eax
cmp eax, 0xffff
jbe 0x408f27
call fcn.00402fe4
mov word [esp + 0x1c], ax
mov eax, dword [esp]
add eax, 0x80000000
mov dword [esp + 0xa0], eax
movzx ecx, word [esp + 0x1c]
add ecx, 2
mov eax, dword [esp]
cmp eax, 0x3ff
jbe 0x408f52
call fcn.00402fe4
lea eax, [esp + eax + 0x6e4]
mov edx, ebx
call fcn.0040414c
movzx eax, word [esp + 0x1c]
add eax, 2
add dword [esp], eax
jmp 0x408f7e
mov dword [esp + 0xa0], ecx
mov word [esp + 0x9e], 1
xor eax, eax
mov dword [esp + 0xa4], eax
mov ecx, dword [0x40f8c8]
add ecx, dword [esp + 0xc]
mov edx, dword [0x40f9d4]
mov eax, dword [0x40f9f0]
call fcn.00404650
mov edx, dword [eax + 0x14]
and edx, 0x7fffffff
mov dword [esp + 0xc], edx
mov word [esp + 0xb6], 1
mov eax, dword [eax + 0x10]
mov dword [esp + 0xb8], eax
xor eax, eax
mov dword [esp + 0xbc], eax
mov ecx, dword [0x40f8c8]
add ecx, dword [esp + 0xc]
mov edx, dword [0x40f9d4]
mov eax, dword [0x40f9f0]
call fcn.00404650
mov esi, eax
mov ecx, dword [esi]
mov edx, dword [0x40f9d4]
mov eax, dword [0x40f9f0]
call fcn.00404650
mov ebx, eax
mov eax, dword [esi + 4]
mov dword [esp + 0xc4], eax
mov edx, dword [esp + 4]
mov dword [esp + 0xc0], edx
mov edx, dword [esi + 8]
mov dword [esp + 0xc8], edx
mov ecx, eax
mov eax, dword [esp + 4]
cmp eax, 0xffff
jbe 0x40902c
call fcn.00402fe4
lea eax, [esp + eax + 0xae4]
mov edx, ebx
call fcn.0040414c
mov eax, dword [esi + 4]
add dword [esp + 4], eax
mov dword [esp + 8], ebx
mov eax, dword [esp + 8]
movzx eax, word [eax + 4]
mov edx, eax
mov dword [esp + 0xd0], edx
cmp edx, 0xffff
jbe 0x409063
call fcn.00402fe4
mov word [esp + 0xe2], dx
mov ebp, eax
dec ebp
test ebp, ebp
jl 0x409184
inc ebp
xor edi, edi
cmp edi, 0x1f
jbe 0x409083
call fcn.00402fe4
mov eax, edi
shl eax, 3
sub eax, edi
mov edx, dword [esp + 8]
movzx eax, word [edx + eax*2 + 0x12]
cmp edi, 0x1f
jbe 0x40909d
call fcn.00402fe4
mov dword [esp + edi*8 + 0xe4], eax
cmp edi, 0x1f
jbe 0x4090ae
call fcn.00402fe4
mov dword [esp + edi*8 + 0xe8], 0x80000000
cmp edi, 0x1f
jbe 0x4090c3
call fcn.00402fe4
lea eax, [edi + edi*2]
mov word [esp + eax*8 + 0x1f2], 1
cmp edi, 0x1f
jbe 0x4090da
call fcn.00402fe4
mov dword [esp + eax*8 + 0x1f8], 0x80000000
push 3
cmp edi, 0x1f
jbe 0x4090f1
call fcn.00402fe4
mov eax, edi
shl eax, 3
sub eax, edi
mov edx, dword [esp + 0xc]
movzx eax, word [edx + eax*2 + 0x12]
push eax
mov eax, dword [esp + 0x2c]
push eax
call sub.kernel32.dll_FindResourceA
mov esi, eax
push esi
mov eax, dword [esp + 0x28]
push eax
call sub.kernel32.dll_LoadResource
push eax
call sub.kernel32.dll_LockResource
mov ebx, eax
push esi
mov eax, dword [esp + 0x28]
push eax
call sub.kernel32.dll_SizeofResource
mov esi, eax
cmp edi, 0x1f
jbe 0x409138
call fcn.00402fe4
mov eax, edi
add eax, eax
mov dword [esp + eax*8 + 0x4e8], esi
cmp edi, 0x1f
jbe 0x40914d
call fcn.00402fe4
mov edx, dword [esp + 4]
mov dword [esp + eax*8 + 0x4e4], edx
mov eax, dword [esp + 4]
cmp eax, 0xffff
jbe 0x409168
call fcn.00402fe4
lea eax, [esp + eax + 0xae4]
mov ecx, esi
mov edx, ebx
call fcn.0040414c
add dword [esp + 4], esi
inc edi
dec ebp
jne 0x409079
mov eax, dword [esp + 8]
movzx eax, word [eax + 4]
imul esi, eax, 0xe
add esi, 6
mov eax, dword [esp + 4]
cmp eax, 0xffff
jbe 0x4091a2
call fcn.00402fe4
lea eax, [esp + eax + 0xae4]
mov ecx, esi
mov edx, dword [esp + 8]
call fcn.0040414c
add dword [esp + 4], esi
cmp dword [0x40fa64], 0
je 0x4092af
mov ebx, dword [0x40fa64]
add ebx, 0x10
mov eax, ebx
mov edx, dword [eax]
and edx, 0x7fffffff
mov eax, dword [eax + 4]
and eax, 0x7fffffff
mov dword [esp + 0xc], eax
mov word [esp + 0x5e], 1
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], 0x80000000
mov ecx, dword [0x40f8c8]
add ecx, dword [esp + 0xc]
mov edx, dword [0x40f9d4]
mov eax, dword [0x40f9f0]
call fcn.00404650
mov edx, dword [eax + 0x10]
and edx, 0x7fffffff
mov eax, dword [eax + 0x14]
and eax, 0x7fffffff
mov dword [esp + 0xc], eax
mov word [esp + 0x76], 1
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], 0x80000000
mov ecx, dword [0x40f8c8]
add ecx, dword [esp + 0xc]
mov edx, dword [0x40f9d4]
mov eax, dword [0x40f9f0]
call fcn.00404650
mov esi, eax
mov ecx, dword [esi]
mov edx, dword [0x40f9d4]
mov eax, dword [0x40f9f0]
call fcn.00404650
mov ebx, eax
mov eax, dword [esp + 4]
mov dword [esp + 0x80], eax
mov eax, dword [esi + 4]
mov dword [esp + 0x84], eax
mov edx, dword [esi + 8]
mov dword [esp + 0x88], edx
mov ecx, eax
mov eax, dword [esp + 4]
cmp eax, 0xffff
jbe 0x40929a
call fcn.00402fe4
lea eax, [esp + eax + 0xae4]
mov edx, ebx
call fcn.0040414c
mov eax, dword [esi + 4]
add dword [esp + 4], eax
mov ebx, dword [0x40f9fc]
xor eax, eax
cmp dword [0x40fa64], 0
je 0x4092c5
mov eax, 0x30
mov dword [esp + 0xc], 0x80000010
cmp dword [0x40fa60], 0
je 0x4092db
add dword [esp + 0xc], 0x10
cmp dword [0x40fa64], 0
je 0x4092e9
add dword [esp + 0xc], 8
cmp dword [0x40fa60], 0
jne 0x4092fc
mov edx, dword [esp + 0xc]
mov dword [esp + 0x4c], edx
jmp 0x409304
mov edx, dword [esp + 0xc]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0xc]
and edx, 0x7fffffff
mov esi, edx
add ebx, esi
cmp dword [0x40fa60], 0
jne 0x40932e
mov dword [esp + 0x14], edx
add dword [esp + 0x14], 0x18
add dword [esp + 0x14], 0x18
jmp 0x4094c4
mov edx, dword [esp + 0xc]
mov dword [esp + 0x10], edx
add dword [esp + 0x10], 0x10
mov edx, dword [esp + 0xd0]
mov ecx, edx
shl ecx, 3
add dword [esp + 0x10], ecx
shl edx, 3
lea edx, [edx + edx*2]
add dword [esp + 0x10], edx
add dword [esp + 0x10], 0x18
add dword [esp + 0x10], 0x18
add dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
and eax, 0x7fffffff
add eax, dword [esp]
mov dword [esp + 0x14], eax
mov esi, 0x10
add dword [esp + 0xc], esi
lea edx, [esp + 0xd4]
mov ecx, esi
mov eax, ebx
call fcn.0040414c
add ebx, esi
mov eax, dword [esp + 0xd0]
mov esi, eax
shl esi, 3
test esi, esi
jns 0x4093a3
call fcn.00402fe4
add dword [esp + 0xc], esi
mov ebp, eax
dec ebp
test ebp, ebp
jl 0x4093cf
inc ebp
xor edi, edi
cmp edi, 0x1f
jbe 0x4093bb
call fcn.00402fe4
mov eax, dword [esp + 0xc]
mov dword [esp + edi*8 + 0xe8], eax
add dword [esp + 0xc], 0x18
inc edi
dec ebp
jne 0x4093b1
lea edx, [esp + 0xe4]
mov ecx, esi
mov eax, ebx
call fcn.0040414c
add ebx, esi
mov eax, dword [esp + 0xd0]
mov esi, eax
shl esi, 3
lea esi, [esi + esi*2]
test esi, esi
jns 0x4093f9
call fcn.00402fe4
mov ebp, eax
dec ebp
test ebp, ebp
jl 0x409424
inc ebp
xor edi, edi
cmp edi, 0x1f
jbe 0x40940d
call fcn.00402fe4
lea eax, [edi + edi*2]
mov edx, dword [esp + 0x14]
mov dword [esp + eax*8 + 0x1f8], edx
add dword [esp + 0x14], 0x10
inc edi
dec ebp
jne 0x409403
lea edx, [esp + 0x1e4]
mov ecx, esi
mov eax, ebx
call fcn.0040414c
add ebx, esi
mov eax, dword [esp + 0xc]
mov dword [esp + 0x44], eax
mov esi, 0x10
add dword [esp + 0xc], esi
lea edx, [esp + 0x90]
mov ecx, esi
mov eax, ebx
call fcn.0040414c
add ebx, esi
test byte [esp + 0xa3], 0x80
je 0x409473
mov eax, dword [esp + 0x10]
or eax, 0x80000000
mov dword [esp + 0xa0], eax
mov esi, 8
add dword [esp + 0xc], esi
mov eax, dword [esp + 0xc]
mov dword [esp + 0xa4], eax
lea edx, [esp + 0xa0]
mov ecx, esi
mov eax, ebx
call fcn.0040414c
add ebx, esi
mov eax, dword [esp + 0x14]
mov dword [esp + 0xbc], eax
mov esi, 0x18
add dword [esp + 0xc], esi
add dword [esp + 0x14], 0x10
lea edx, [esp + 0xa8]
mov ecx, esi
mov eax, ebx
call fcn.0040414c
add ebx, esi
cmp dword [0x40fa64], 0
je 0x409516
mov eax, dword [esp + 0xc]
mov dword [esp + 0x4c], eax
mov esi, 0x18
add dword [esp + 0xc], esi
mov eax, dword [esp + 0xc]
mov dword [esp + 0x64], eax
lea edx, [esp + 0x50]
mov ecx, esi
mov eax, ebx
call fcn.0040414c
add ebx, esi
mov esi, 0x18
mov eax, dword [esp + 0x14]
mov dword [esp + 0x7c], eax
add dword [esp + 0x14], 0x10
lea edx, [esp + 0x68]
mov ecx, esi
mov eax, ebx
call fcn.0040414c
add ebx, esi
lea edx, [esp + 0x6e4]
mov ecx, dword [esp]
mov eax, ebx
call fcn.0040414c
add ebx, dword [esp]
mov eax, dword [esp + 0x14]
and eax, 0x7fffffff
mov dword [esp + 0x18], eax
cmp dword [0x40fa60], 0
je 0x4095bf
mov esi, dword [esp + 0xd0]
shl esi, 4
test esi, esi
jns 0x409553
call fcn.00402fe4
mov ebp, dword [esp + 0xd0]
dec ebp
test ebp, ebp
jl 0x409585
inc ebp
xor edi, edi
cmp edi, 0x1f
jbe 0x40956c
call fcn.00402fe4
mov eax, edi
add eax, eax
mov edx, dword [esp + 0x18]
add edx, dword [0x40f97c]
add dword [esp + eax*8 + 0x4e4], edx
inc edi
dec ebp
jne 0x409562
lea edx, [esp + 0x4e4]
mov ecx, esi
mov eax, ebx
call fcn.0040414c
add ebx, esi
mov esi, 0x10
mov eax, dword [esp + 0x18]
add eax, dword [0x40f97c]
add dword [esp + 0xc0], eax
lea edx, [esp + 0xc0]
mov ecx, esi
mov eax, ebx
call fcn.0040414c
add ebx, esi
cmp dword [0x40fa64], 0
je 0x4095f0
mov esi, 0x10
mov eax, dword [esp + 0x18]
add eax, dword [0x40f97c]
add dword [esp + 0x80], eax
lea edx, [esp + 0x80]
mov ecx, esi
mov eax, ebx
call fcn.0040414c
add ebx, esi
lea edx, [esp + 0xae4]
mov ecx, dword [esp + 4]
mov eax, ebx
call fcn.0040414c
add ebx, dword [esp + 4]
sub ebx, dword [0x40f9fc]
mov dword [0x40f8c0], ebx
mov ebx, dword [0x40f9fc]
lea edx, [esp + 0x28]
mov ecx, 0x10
mov eax, ebx
call fcn.0040414c
add ebx, 0x10
cmp dword [0x40fa60], 0
je 0x40965a
lea edx, [esp + 0x38]
mov ecx, 8
mov eax, ebx
call fcn.0040414c
add ebx, 8
lea edx, [esp + 0x40]
mov ecx, 8
mov eax, ebx
call fcn.0040414c
add ebx, 8
cmp dword [0x40fa64], 0
je 0x409673
lea edx, [esp + 0x48]
mov ecx, 8
mov eax, ebx
call fcn.0040414c
mov eax, dword [esp + 0x24]
push eax
call sub.kernel32.dll_FreeLibrary_1
add esp, 0x10ae4
pop ebp
pop edi
pop esi
pop ebx
ret