Function at 0x4386e0
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 5
push 0
push 0
dec ecx
jne 0x4386e9
push ecx
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], edx
mov esi, eax
xor eax, eax
push ebp
push 0x438ac0
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0xc]
xor edx, edx
mov dword [eax], edx
mov eax, dword [ebp - 0x10]
xor edx, edx
mov dword [eax], edx
mov eax, esi
call fcn.00408df4
mov edi, eax
mov eax, edi
call fcn.004385b8
mov ebx, eax
test ebx, ebx
je 0x43873a
mov esi, edi
jmp 0x438743
mov eax, esi
call fcn.004385b8
mov ebx, eax
test ebx, ebx
je 0x438a85
push ebx
push esi
call sub.kernel32.dll_LoadResource
mov ebx, eax
test ebx, ebx
je 0x438a85
push ebx
call sub.kernel32.dll_LockResource
mov esi, eax
mov eax, dword [0x4b8e24]
call fcn.004072ac
push eax
push 0
push 0
push 0x7fffffff
mov eax, dword [0x4b8e24]
call fcn.004072ac
mov ecx, eax
mov edx, dword [0x4b8e24]
mov eax, esi
call fcn.0040e3c0
test eax, eax
jne 0x438a78
mov eax, dword [0x4b8e24]
call fcn.004072ac
add esi, eax
mov eax, dword [ebp - 0xc]
mov dword [eax], 0x83
mov eax, dword [ebp - 0xc]
imul eax, dword [eax], 0xe
push eax
push 0x40
call sub.kernel32.dll_LocalAlloc_2
mov dword [ebp - 0x14], eax
jmp 0x438a6f
movzx eax, byte [esi]
mov dword [ebp - 0x18], eax
lea eax, [esi + 1]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x18], 0
je 0x438a78
movzx eax, byte [esi]
inc eax
inc eax
add esi, eax
mov eax, esi
dec eax
movzx eax, byte [eax]
cmp eax, 0x14
ja case.0x4387f7.1
movzx eax, byte [eax + 0x4387fe]
jmp dword [eax*4 + 0x438813]
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x18]
push eax
push 1
push 0
movsx eax, byte [esi]
push eax
push 0
push 0
lea ecx, [ebp - 0x14]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
call fcn.00438610
inc esi
jmp 0x438a6f
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x18]
push eax
push 1
push 0
movsx eax, word [esi]
push eax
push 0
push 0
lea ecx, [ebp - 0x14]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
call fcn.00438610
add esi, 2
jmp 0x438a6f
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x18]
push eax
push 1
push 0
mov eax, dword [esi]
push eax
push 0
push 0
lea ecx, [ebp - 0x14]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
call fcn.00438610
add esi, 4
jmp 0x438a6f
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x18]
push eax
push 0
push 0
push 0
lea eax, [esi + 1]
push eax
movzx eax, byte [esi]
push eax
lea ecx, [ebp - 0x14]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
call fcn.00438610
movzx eax, byte [esi]
inc eax
add esi, eax
jmp 0x438a6f
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x18]
push eax
push 2
mov eax, esi
dec eax
cmp byte [eax], 9
sete al
push eax
push 0
push 0
push 0
lea ecx, [ebp - 0x14]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
call fcn.00438610
jmp 0x438a6f
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x18]
push eax
push 0
push 0
push 0
lea eax, [esi + 4]
push eax
mov eax, dword [esi]
push eax
lea ecx, [ebp - 0x14]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
call fcn.00438610
mov eax, dword [esi]
add eax, 4
add esi, eax
jmp 0x438a6f
mov edx, dword [esi]
lea eax, [ebp - 4]
call fcn.00407bb4
add esi, 4
cmp dword [ebp - 4], 0
je 0x43896d
mov eax, dword [ebp - 4]
call fcn.00407294
add eax, eax
push eax
lea eax, [ebp - 4]
call fcn.0040735c
mov edx, eax
mov eax, esi
pop ecx
call fcn.004044e8
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x18]
push eax
push 0
push 0
push 0
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 4]
mov ecx, 0
call fcn.00407850
mov eax, dword [ebp - 0x20]
call fcn.004076c4
push eax
mov eax, dword [ebp - 4]
call fcn.00407294
push eax
lea ecx, [ebp - 0x14]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
call fcn.00438610
mov eax, dword [ebp - 4]
call fcn.00407294
add eax, eax
add esi, eax
jmp 0x438a6f
push 0
mov ecx, dword [esi]
lea edx, [esi + 4]
lea eax, [ebp - 8]
call fcn.00406f80
lea edx, [ebp - 0x24]
mov eax, dword [ebp - 8]
call fcn.0040a69c
mov edx, dword [ebp - 0x24]
lea eax, [ebp - 4]
call fcn.00407b24
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x18]
push eax
push 0
push 0
push 0
lea eax, [ebp - 0x28]
mov edx, dword [ebp - 4]
mov ecx, 0
call fcn.00407850
mov eax, dword [ebp - 0x28]
call fcn.004076c4
push eax
mov eax, dword [ebp - 4]
call fcn.00407294
push eax
lea ecx, [ebp - 0x14]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
call fcn.00438610
mov eax, dword [esi]
add eax, 4
add esi, eax
jmp 0x438a6f
push 0
push 0x438ad4
push 0x438aec
lea eax, [ebp - 0x30]
push eax
dec esi
movzx eax, byte [esi]
mov cl, 0x30
mov edx, 1
call fcn.0040f32c
push dword [ebp - 0x30]
push 0x438b24
lea eax, [ebp - 0x2c]
mov edx, 3
call fcn.004075b4
mov eax, dword [ebp - 0x2c]
call fcn.004076c4
push eax
push 0
call sub.user32.dll_MessageBoxA_1
jmp 0x438a78
cmp byte [esi], 0
jne 0x4387c4
mov eax, ebx
call fcn.0040c168
push ebx
call sub.kernel32.dll_FreeResource
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x438ac7
lea eax, [ebp - 0x30]
mov edx, 3
call fcn.00406e54
lea eax, [ebp - 0x24]
call fcn.00406e0c
lea eax, [ebp - 0x20]
call fcn.00406de8
lea eax, [ebp - 8]
call fcn.00406de8
lea eax, [ebp - 4]
call fcn.00406dc4
ret