Function at 0x402120
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x47b02b
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x1420
call fcn.0045b380
mov eax, dword [0x493040]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov eax, dword [ebp + 0xc]
xor esi, esi
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x142c], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x1430], ebx
mov dword [ebp - 0x1428], eax
mov dword [ebp - 0x1020], esi
push 0x404
lea eax, [ebp - 0x1424]
mov dword [ebp - 4], esi
push esi
push eax
mov dword [ebp - 0x1018], ecx
mov dword [ebp - 0x101c], esi
call fcn.0045c980
add esp, 0xc
mov dword [ebp - 0x1424], esi
mov byte [ebp - 4], 1
test ebx, ebx
je 0x40253b
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4021b4
sub ecx, edx
sar ecx, 1
lea eax, [ecx + 1]
mov ecx, 2
imul ecx
mov ebx, eax
test edx, edx
jg 0x40226f
jl 0x4021e5
cmp ebx, 0x7fffffff
ja 0x40226f
cmp edx, 0xffffffff
jl 0x40226f
jg 0x4021f8
cmp ebx, 0x80000000
jb 0x40226f
cmp ebx, 0x400
jg 0x402219
mov ecx, ebx
call fcn.004011e0
test al, al
je 0x402219
mov eax, ebx
call fcn.0045b2a0
mov dword [ebp - 0x10], esp
mov edi, esp
jmp 0x402247
mov eax, ebx
not eax
cmp eax, 8
jb 0x402590
lea eax, [ebx + 8]
push eax
call fcn.004602a5
add esp, 4
test eax, eax
je 0x40226f
mov esi, eax
mov dword [eax], 0
mov dword [ebp - 0x1020], esi
lea edi, [eax + 8]
test edi, edi
je 0x40226f
push 0
push 0
push ebx
push edi
push 0xffffffffffffffff
push dword [ebp - 0x1430]
mov byte [edi], 0
push 0
push 3
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
xor ecx, ecx
test eax, eax
cmove edi, ecx
jmp 0x402271
xor edi, edi
test edi, edi
je 0x40253b
mov ebx, dword [sym.imp.KERNEL32.dll_LoadLibraryExA]
push 0x60
push 0
push edi
call ebx
mov dword [ebp - 0x1430], eax
test eax, eax
jne 0x4022ac
push 2
push eax
push edi
call ebx
mov dword [ebp - 0x1430], eax
test eax, eax
jne 0x4022ac
call fcn.004013b0
mov edi, eax
jmp 0x402443
push dword [ebp - 0x1428]
push dword [ebp - 0x142c]
push eax
call dword [sym.imp.KERNEL32.dll_FindResourceA]
mov dword [ebp - 0x142c], eax
test eax, eax
jne 0x4022d5
call fcn.004013b0
mov edi, eax
jmp 0x402432
mov edi, dword [ebp - 0x1430]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov ebx, eax
mov dword [ebp - 0x1428], ebx
test ebx, ebx
jne 0x4022fb
call fcn.004013b0
mov edi, eax
jmp 0x402432
push dword [ebp - 0x142c]
push edi
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov edi, eax
mov dword [ebp - 0x142c], edi
lea eax, [edi + 1]
cmp eax, edi
jae 0x402321
mov edi, 0x8007000e
jmp 0x402432
mov byte [ebp - 4], 2
cmp eax, 0x400
jbe 0x40235b
push eax
lea ecx, [ebp - 0x1424]
call fcn.0040b3a0
jmp 0x402367
lea eax, [ebp - 0x1420]
mov dword [ebp - 0x1424], eax
mov dword [ebp - 4], 1
cmp dword [ebp - 0x1424], 0
jne 0x402381
mov edi, 0x8007000e
jmp 0x402432
test edi, edi
je 0x402395
push edi
push ebx
push dword [ebp - 0x1424]
call fcn.0045c400
add esp, 0xc
push 0
call fcn.004012e0
mov eax, dword [ebp - 0x1424]
lea ecx, [ebp - 0x101c]
add esp, 4
mov dword [ebp - 0x1428], 0
mov byte [eax + edi], 0
lea eax, [ebp - 0x1428]
push eax
push dword [ebp - 0x1424]
call fcn.004031b0
mov edi, eax
test edi, edi
js 0x402432
mov ebx, dword [ebp - 0x1428]
mov dword [ebp - 0x101c], ebx
cmp byte [ebx], 0
je 0x40242b
lea eax, [ebp - 0x1014]
push eax
lea ecx, [ebp - 0x101c]
call fcn.004029a0
mov edi, eax
test edi, edi
js 0x402425
xor ebx, ebx
xor edi, edi
nop
push dword [edi + 0x48fa28]
lea eax, [ebp - 0x1014]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x402476
add edi, 8
inc ebx
cmp edi, 0x70
jb 0x402400
mov edi, 0x80020009
mov ebx, dword [ebp - 0x1428]
push ebx
call dword [sym.imp.ole32.dll_CoTaskMemFree]
mov eax, dword [ebp - 0x1430]
test eax, eax
je 0x402443
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
lea eax, [ebp - 0x1420]
cmp dword [ebp - 0x1424], eax
je 0x40245c
lea ecx, [ebp - 0x1424]
call fcn.0040b380
test esi, esi
je 0x40246f
push esi
mov esi, dword [esi]
call fcn.004600e5
add esp, 4
test esi, esi
jne 0x402460
mov eax, edi
jmp 0x40256c
mov ebx, dword [ebx*8 + 0x48fa2c]
test ebx, ebx
je 0x402420
lea eax, [ebp - 0x1014]
push eax
lea ecx, [ebp - 0x101c]
call fcn.004029a0
mov edi, eax
test edi, edi
js 0x402425
cmp byte [ebp - 0x1014], 0x7b
jne 0x402420
mov ecx, dword [ebp + 0x14]
push 0
test ecx, ecx
je 0x4024fd
mov eax, dword [ebp - 0x101c]
push ecx
mov dword [ebp - 0x142c], eax
lea ecx, [ebp - 0x101c]
push ebx
lea eax, [ebp - 0x1014]
push eax
call fcn.00403530
mov edi, eax
test edi, edi
jns 0x40251c
mov eax, dword [ebp - 0x142c]
lea ecx, [ebp - 0x101c]
push 0
push 0
mov dword [ebp - 0x101c], eax
lea eax, [ebp - 0x1014]
push ebx
push eax
call fcn.00403530
jmp 0x402425
push 0
push ebx
lea eax, [ebp - 0x1014]
push eax
lea ecx, [ebp - 0x101c]
call fcn.00403530
mov edi, eax
test edi, edi
js 0x402425
lea ecx, [ebp - 0x101c]
call fcn.00402950
mov eax, dword [ebp - 0x101c]
cmp byte [eax], 0
jne 0x4023e2
jmp 0x402425
lea eax, [ebp - 0x1420]
cmp dword [ebp - 0x1424], eax
je 0x402554
lea ecx, [ebp - 0x1424]
call fcn.0040b380
test esi, esi
je 0x402567
push esi
mov esi, dword [esi]
call fcn.004600e5
add esp, 4
test esi, esi
jne 0x402558
mov eax, 0x8007000e
lea esp, [ebp - 0x1440]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0045a978
mov esp, ebp
pop ebp
ret 0x10
push 0x80070216
call fcn.004012c0
int3