Function at 0x409190
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x489957
push eax
mov dword fs:[0], esp
mov eax, dword [0x4b487c]
sub esp, 0x158
push ebx
xor ebx, ebx
push esi
push edi
cmp eax, ebx
jne 0x4091d1
push str.LANG
push 0x71
push ebx
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov esi, eax
jmp 0x4091ec
cmp eax, 1
jne 0x4091e8
push str.LANG
push 0x70
push ebx
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov esi, eax
jmp 0x4091ec
mov esi, dword [esp + 0x10]
cmp esi, ebx
jne 0x409207
xor al, al
mov ecx, dword [esp + 0x164]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov edi, eax
cmp edi, ebx
je 0x4091f0
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov esi, eax
cmp esi, ebx
je 0x4091f0
push esi
call dword [sym.imp.KERNEL32.dll_LockResource]
cmp eax, ebx
je 0x4091f0
push edi
push eax
lea ecx, [esp + 0x54]
mov dword [esp + 0x68], 0xf
mov dword [esp + 0x64], ebx
mov byte [esp + 0x54], bl
call fcn.00409650
push esi
mov dword [esp + 0x170], ebx
call dword [sym.imp.KERNEL32.dll_FreeResource]
xor eax, eax
mov dword [esp + 0x28], 7
mov dword [esp + 0x24], ebx
mov word [esp + 0x14], ax
mov byte [esp + 0x16c], 1
cmp dword [esp + 0x60], 0x10
mov eax, dword [esp + 0x4c]
jae 0x409281
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x18]
call fcn.0040a3d0
add esp, 4
lea esi, [esp + 0x98]
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], ebx
call fcn.00403920
mov byte [esp + 0x16c], 2
cmp dword [esp + 0x28], 8
mov eax, dword [esp + 0x14]
jae 0x4092bf
lea eax, [esp + 0x14]
push 1
push eax
lea ecx, [esp + 0x94]
push ecx
lea eax, [esp + 0xa4]
call fcn.00403a00
cmp dword [eax], ebx
jne 0x409444
mov ebx, str.StringBundle
lea eax, [esp + 0x10]
lea ecx, [esp + 0x98]
call fcn.00403760
mov ecx, eax
mov ebx, str.String
lea eax, [esp + 0xc]
call fcn.00403760
mov edi, dword [esp + 0xc]
test edi, edi
je 0x409442
nop
mov ebx, 0x4a05f0
lea eax, [esp + 0x6c]
lea ecx, [esp + 0xc]
call fcn.004037d0
mov eax, dword [eax]
xor ebx, ebx
cmp eax, ebx
je 0x409331
mov eax, dword [eax + 8]
cmp eax, ebx
jne 0x409336
mov eax, 0x4a05a8
xor edx, edx
mov ecx, eax
mov dword [esp + 0x84], 7
mov dword [esp + 0x80], ebx
mov word [esp + 0x70], dx
lea esi, [ecx + 2]
mov dx, word [ecx]
add ecx, 2
cmp dx, bx
jne 0x409354
sub ecx, esi
sar ecx, 1
push ecx
lea esi, [esp + 0x74]
call fcn.00405330
mov byte [esp + 0x16c], 3
lea eax, [esp + 0x10]
mov dword [esp + 0x10], edi
call fcn.004038b0
xor ecx, ecx
mov word [esp + 0x30], cx
mov edi, 7
mov ecx, eax
mov dword [esp + 0x44], edi
mov dword [esp + 0x40], ebx
lea edx, [ecx + 2]
jmp 0x4093a0
mov si, word [ecx]
add ecx, 2
cmp si, bx
jne 0x4093a0
sub ecx, edx
sar ecx, 1
push ecx
lea esi, [esp + 0x34]
call fcn.00405330
lea ecx, [esp + 0x70]
mov edx, 0x4b4890
mov byte [esp + 0x16c], 4
call fcn.004082e0
push ebx
mov edx, esi
mov ecx, eax
push edx
or eax, 0xffffffff
call fcn.00405230
mov esi, 8
cmp dword [esp + 0x44], esi
jb 0x4093f5
mov eax, dword [esp + 0x30]
push eax
call fcn.0041a981
add esp, 4
xor ecx, ecx
mov byte [esp + 0x16c], 2
mov dword [esp + 0x44], edi
mov dword [esp + 0x40], ebx
mov word [esp + 0x30], cx
cmp dword [esp + 0x84], esi
jb 0x409422
mov edx, dword [esp + 0x70]
push edx
call fcn.0041a981
add esp, 4
mov ebx, str.String
lea eax, [esp + 0x68]
lea ecx, [esp + 0xc]
call fcn.00403840
mov edi, dword [eax]
mov dword [esp + 0xc], edi
test edi, edi
jne 0x409310
xor ebx, ebx
lea edi, [esp + 0x98]
mov byte [esp + 0x16c], 1
call fcn.00403990
cmp dword [esp + 0x28], 8
jb 0x40946c
mov eax, dword [esp + 0x14]
push eax
call fcn.0041a981
add esp, 4
xor ecx, ecx
cmp dword [esp + 0x60], 0x10
mov dword [esp + 0x28], 7
mov dword [esp + 0x24], ebx
mov word [esp + 0x14], cx
jb 0x409493
mov edx, dword [esp + 0x4c]
push edx
call fcn.0041a981
add esp, 4
mov ecx, dword [esp + 0x164]
pop edi
pop esi
mov al, 1
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret