Function at 0x401050
Capabilities:
Extract resource via kernel32 functions

Disassembly:
jmp 0x407d00
sub esp, 0x218
mov dx, word [0x55e6f8]
push ebx
push ebp
push esi
mov ebx, ecx
push edi
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x2a]
mov word [esp + 0x28], dx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x12a]
mov word [esp + 0x128], dx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov eax, dword [esp + 0x22c]
xor ebp, ebp
xor ecx, ecx
mov dword [esp + 0x1c], ebp
mov eax, dword [eax + 8]
mov dword [esp + 0x18], ebp
cmp eax, ebp
mov dword [esp + 0x14], ecx
jle 0x40804d
jmp 0x407d6b
mov ecx, dword [esp + 0x14]
xor ebp, ebp
cmp ecx, eax
jge 0x407d82
cmp ecx, ebp
jl 0x407d82
mov edx, dword [esp + 0x22c]
mov eax, dword [edx + 4]
mov eax, dword [eax + ecx*4]
jmp 0x407d84
xor eax, eax
cmp dword [eax + 0x204], ebp
je 0x407d94
mov eax, dword [eax + 0x200]
jmp 0x407d99
add eax, 0x100
mov ecx, dword [ebx + 0x118]
push str.PiPL
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FindResourceA]
mov esi, eax
cmp esi, ebp
je 0x40805c
mov edx, dword [ebx + 0x118]
push esi
push edx
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov edi, eax
mov eax, dword [ebx + 0x118]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_SizeofResource]
push edi
mov esi, eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
add esi, 0xfffffffe
add edi, 2
push esi
push edi
mov ecx, ebx
mov dword [esp + 0x2c], edi
call fcn.00402de7
mov ecx, dword [edi + 4]
mov dword [esp + 0x10], eax
cmp ecx, ebp
mov dword [esp + 0x20], ebp
jle 0x407efd
lea ebp, [eax + 0x10]
mov eax, dword [ebp - 0xc]
cmp eax, 0x6b696e64
ja 0x407e9b
je 0x407e60
cmp eax, 0x63617467
je 0x407e36
cmp eax, 0x66696369
jne 0x407ee2
mov ecx, dword [ebp]
mov dword [esp + 0x18], ecx
jmp 0x407ee2
mov eax, dword [ebp]
lea edi, [esp + 0x128]
movsx edx, byte [eax]
mov ecx, edx
lea esi, [eax + 1]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov byte [esp + edx + 0x128], 0
jmp 0x407ea9
mov eax, dword [ebp]
mov esi, str.8BFM
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x407e8c
test cl, cl
je 0x407e88
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x407e8c
add eax, 2
add esi, 2
test cl, cl
jne 0x407e68
xor eax, eax
jmp 0x407e91
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40806e
jmp 0x407ee2
cmp eax, 0x6e616d65
je 0x407ec0
cmp eax, 0x77783836
jne 0x407ee2
mov eax, dword [ebp]
mov ecx, dword [ebx + 0x118]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [esp + 0x1c], eax
jmp 0x407ee2
mov eax, dword [ebp]
lea edi, [esp + 0x28]
movsx edx, byte [eax]
mov ecx, edx
lea esi, [eax + 1]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov byte [esp + edx + 0x28], 0
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
inc eax
add ebp, 0x14
mov edx, dword [ecx + 4]
mov dword [esp + 0x20], eax
cmp eax, edx
jl 0x407e08
push 0x21c
call sub.MFC42.DLL_operatornew
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x407f1d
mov ecx, 0x87
xor eax, eax
mov edi, ebp
rep stosd dword es:[edi], eax
jmp 0x407f1f
xor ebp, ebp
lea edi, [esp + 0x28]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [ebp + 0x104]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x128]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
mov edx, dword [esp + 0x1c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x18]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x10]
mov dword [ebp + 0x218], edx
test eax, eax
mov dword [ebp + 0x214], ecx
mov dword [ebp + 0x20c], eax
je 0x407f92
push ebp
mov ecx, ebx
call fcn.00402491
test ebp, ebp
je 0x408032
mov eax, dword [ebx + 0x12c]
mov edx, dword [ebx + 0x128]
lea ecx, [eax + 1]
cmp edx, ecx
jne 0x408016
mov edx, dword [ebx + 0x134]
add edx, eax
lea eax, [edx*4 + 4]
push eax
call sub.MFC42.DLL_operatornew
mov ecx, dword [ebx + 0x12c]
mov esi, dword [ebx + 0x124]
mov edi, eax
mov dword [esp + 0x14], eax
lea ecx, [ecx*4 + 4]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 0x124]
push eax
call sub.MFC42.DLL_operatordelete
mov edx, dword [ebx + 0x134]
mov eax, dword [ebx + 0x12c]
mov ecx, dword [esp + 0x18]
add esp, 8
add eax, edx
mov dword [ebx + 0x124], ecx
mov dword [ebx + 0x12c], eax
mov eax, dword [ebx + 0x128]
mov ecx, dword [ebx + 0x124]
mov dword [ecx + eax*4], ebp
mov eax, dword [ebx + 0x128]
inc eax
mov dword [ebx + 0x128], eax
mov edx, dword [esp + 0x22c]
mov ecx, dword [esp + 0x14]
inc ecx
mov eax, dword [edx + 8]
mov dword [esp + 0x14], ecx
cmp ecx, eax
jl 0x407d65
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x218
ret 4
pop edi
pop esi
pop ebp
mov eax, 0xfffffffd
pop ebx
add esp, 0x218
ret 4
pop edi
pop esi
pop ebp
mov eax, 0xfffffffc
pop ebx
add esp, 0x218
ret 4