Function at 0x401090
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x244
mov eax, dword [0x412004]
xor eax, esp
mov dword [esp + 0x240], eax
push ebx
push esi
push edi
push str.driver
push 0x65
push dword [0x19e24f8]
mov dword [esp + 0x1c], 0
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov esi, eax
test esi, esi
je 0x401417
push esi
push dword [0x19e24f8]
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov edi, eax
test edi, edi
je 0x401417
push esi
push dword [0x19e24f8]
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov dword [esp + 0x14], eax
test eax, eax
je 0x401417
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
test eax, eax
je 0x401417
push edi
push eax
call dword [sym.imp.SHLWAPI.dll_SHCreateMemStream]
mov esi, eax
mov ecx, esi
call fcn.004057e0
mov ecx, dword [esi]
mov ebx, eax
push esi
call dword [ecx + 8]
test ebx, ebx
jne 0x40114c
xor eax, eax
xor ecx, ecx
mov word [esp + 0x1c], cx
mov ecx, 0x10000
mov dword [esp + 0x18], eax
mov dword [esp + 0x244], eax
jmp 0x401206
cmp dword [ebx], 1
je 0x401161
xor eax, eax
xor ecx, ecx
mov word [esp + 0x1c], cx
mov ecx, 0x80000
jmp 0x4011d0
mov esi, dword [ebx + 4]
mov ecx, 0x19e2500
lea edi, [esi + 0x244]
mov edx, edi
sub edx, ecx
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x401173
mov ecx, edi
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x401190
sub ecx, edx
sar ecx, 1
movzx eax, word [esi + ecx*2 + 0x242]
cmp eax, 0x5c
je 0x4011c7
cmp eax, 0x2f
je 0x4011c7
add edi, 0xfffffffe
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x4011b4
mov eax, dword [0x40eba8]
mov dword [edi], eax
xor eax, eax
xor ecx, ecx
mov word [esp + 0x1c], cx
mov dword [esp + 0x244], eax
mov dword [esp + 0x18], eax
cmp dword [ebx], 1
mov dword [esp + 0xc], eax
mov dword [0x19e24fc], ecx
je 0x4011f1
mov ecx, 0x80000
jmp 0x40120a
mov ecx, dword [ebx + 4]
lea eax, [esp + 0x18]
push eax
push 0xffffffffffffffff
call fcn.00404be0
mov ecx, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0xc], eax
xor edi, edi
mov dword [0x19e24fc], ecx
test eax, eax
jle 0x4012b5
xor ecx, ecx
nop dword [eax]
xor eax, eax
mov dword [esp + 0x18], 0
mov word [esp + 0x1c], ax
lea esi, [ebx + 4]
mov dword [esp + 0x244], eax
test ebx, ebx
jne 0x40124e
mov dword [0x19e24fc], 0x10000
mov eax, 0x10000
jmp 0x4012a2
mov eax, dword [ebx]
cmp eax, 1
je 0x40125c
mov ecx, 0x80000
jmp 0x40126d
mov ecx, dword [esi]
lea eax, [esp + 0x18]
push eax
push edi
call fcn.00404be0
mov ecx, eax
mov eax, dword [ebx]
mov dword [0x19e24fc], ecx
cmp eax, 1
je 0x401289
mov dword [0x19e24fc], 0x80000
mov eax, 0x80000
jmp 0x40129e
mov ecx, dword [esi]
lea eax, [esp + 0x1c]
sub esp, 8
push eax
push edi
call fcn.004053e0
mov dword [0x19e24fc], eax
mov ecx, dword [esp + 0x10]
and ecx, eax
inc edi
mov dword [esp + 0x10], ecx
cmp edi, dword [esp + 0xc]
jl 0x401220
jmp 0x4012b8
lea esi, [ebx + 4]
test ebx, ebx
jne 0x4012cb
mov dword [0x19e24fc], 0x10000
jmp 0x40140d
cmp dword [ebx], 1
je 0x4012df
mov dword [0x19e24fc], 0x80000
jmp 0x40140d
mov esi, dword [esi]
mov ecx, dword [sym.imp.msvcrt.dll_free]
cmp dword [esi + 4], 0xffffffff
je 0x40133e
mov eax, dword [esi]
mov dword [esp + 0xc], eax
test eax, eax
je 0x40133e
mov edi, dword [eax + 0x54]
test edi, edi
je 0x40133e
mov eax, dword [edi]
test eax, eax
je 0x40130a
push eax
call ecx
add esp, 4
cmp dword [edi + 0x40], 0
mov dword [edi], 0
je 0x40131e
lea ecx, [edi + 4]
call fcn.004038f0
mov dword [edi + 0x40], 0
push edi
mov edi, dword [sym.imp.msvcrt.dll_free]
call edi
mov eax, dword [esp + 0x10]
add esp, 4
mov ecx, edi
mov dword [eax + 0x54], 0
mov eax, dword [esi]
mov dword [esi + 4], 0xffffffff
mov dword [esp + 0xc], eax
test eax, eax
je 0x4013ad
mov edi, dword [eax + 0x54]
test edi, edi
je 0x401396
mov eax, dword [edi]
test eax, eax
je 0x401362
push eax
call ecx
add esp, 4
cmp dword [edi + 0x40], 0
mov dword [edi], 0
je 0x401376
lea ecx, [edi + 4]
call fcn.004038f0
mov dword [edi + 0x40], 0
push edi
mov edi, dword [sym.imp.msvcrt.dll_free]
call edi
mov eax, dword [esp + 0x10]
add esp, 4
mov dword [eax + 0x54], 0
jmp 0x40139c
mov edi, dword [sym.imp.msvcrt.dll_free]
mov eax, dword [eax]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
push dword [esp + 0xc]
call edi
add esp, 4
mov eax, dword [esi + 0x23c]
mov dword [esi], 0
mov dword [0x19e24fc], 0
test eax, eax
je 0x4013d0
push eax
call fcn.00405963
add esp, 4
mov eax, dword [esi + 0x240]
mov dword [esi + 0x23c], 0
test eax, eax
je 0x4013ed
push eax
call fcn.00405963
add esp, 4
push 0x44c
push esi
mov dword [esi + 0x240], 0
call fcn.00405b95
push 8
push ebx
call fcn.00405b95
add esp, 0x10
push dword [esp + 0x14]
call dword [sym.imp.KERNEL32.dll_FreeResource]
mov ecx, dword [esp + 0x24c]
xor eax, eax
cmp dword [esp + 0x10], eax
pop edi
pop esi
sete al
pop ebx
xor ecx, esp
call fcn.00405955
mov esp, ebp
pop ebp
ret