Function at 0x10022ff9
Capabilities:
Extract resource via kernel32 functions
Get disk information
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10063e65
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xb8
push ebx
push esi
push edi
push 0
pop ebx
mov dword [esp + 0x14], 0x5711
mov edi, ecx
cmp dword [esp + 0x14], 0x587e
push 1
mov dword [esp + 0x1c], edi
pop esi
jle 0x100230c2
mov esi, ebx
mov dword [esp + 0xc], ebx
mov ebx, esi
mov dword [esp + 0x24], 0x1052
mov dword [esp + 0x20], ebx
xor edi, edi
mov esi, ebx
mov ebx, 0x6ac
mov eax, esi
lea ecx, [esp + 0x78]
cdq
push edx
push eax
call fcn.1000dafa
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10023074
mov eax, dword [eax]
push eax
call fcn.1004e316
pop ecx
push 0
push 1
lea ecx, [esp + 0x80]
call fcn.1001b738
add esi, edi
dec ebx
jne 0x1002305c
mov ebx, dword [esp + 0x20]
inc edi
cmp edi, 0x14c8
jl 0x10023055
dec ebx
dec dword [esp + 0x24]
mov dword [esp + 0x20], ebx
jne 0x10023053
mov esi, dword [esp + 0xc]
inc esi
mov dword [esp + 0xc], esi
cmp esi, 0x4ed
jl 0x10023045
mov edi, dword [esp + 0x18]
xor esi, esi
xor ebx, ebx
inc esi
mov dword [esp + 0x1c], 9
cmp dword [esp + 0x14], 0x55ce
jge 0x100230df
push 0x10008fd8
call fcn.1004e316
pop ecx
or dword [esp + 0xcc], 0xffffffff
lea ecx, [esp + 0x30]
push 2
call fcn.1001b2e8
push 2
pop edx
mov dword [esp + 0xcc], edx
mov dword [esp + 0x24], 0x51a
mov dword [esp + 0x18], 0x468e576d
mov dword [esp + 0xc], ebx
jmp 0x10023125
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x30]
mov dword [eax + ecx*4], 8
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edx
jl 0x10023112
cmp dword [esp + 0x1c], ebx
je 0x1002322f
mov dword [esp + 0x24], esi
lea ecx, [esp + 0x3c]
push 4
call fcn.1001b2e8
mov dword [esp + 0x14], 5
mov dword [esp + 0x20], esi
mov dword [esp + 0xc], ebx
jmp 0x10023169
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x3c]
mov dword [eax + ecx*4], 0x66d8ff8c
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 4
jl 0x10023156
mov eax, dword [esp + 0x24]
xor edx, edx
mov esi, dword [esp + 0x30]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x24], 0xda0
cmp dword [eax], 0x5d764ce3
mov eax, dword [esp + 0x1c]
setle dl
xor ecx, ecx
cmp eax, edx
mov eax, dword [esp + 0x30]
setl cl
xor edx, edx
cmp ecx, dword [eax]
mov eax, dword [esp + 0x14]
setg dl
xor ebx, ebx
add edx, dword [esi + 4]
cmp edx, 3
setg bl
xor ecx, ecx
cmp ebx, eax
mov eax, dword [esp + 0x1c]
setne cl
sub eax, ecx
mov ecx, dword [esp + 0x24]
neg eax
sbb eax, eax
inc eax
sub ecx, eax
mov eax, 0x9fe9a5a1
neg ecx
sbb ecx, ecx
inc ecx
cmp eax, ecx
sbb eax, eax
xor ecx, ecx
lea edx, [eax + 0x364724ca]
mov eax, dword [esp + 0x20]
cmp edx, eax
mov dword [esi + 4], edx
setne cl
xor ebx, ebx
cmp dword [esp + 0x1c], ecx
je 0x10023204
cmp dword [esp + 0x20], ebx
je 0x10023204
xor edx, edx
inc edx
jmp 0x10023206
mov edx, ebx
mov eax, dword [esp + 0x3c]
xor ecx, ecx
cmp edx, dword [eax]
mov eax, dword [esp + 0x1c]
setge cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x3c]
setle dl
mov dword [eax + 0xc], edx
neg edx
mov dword [esp + 0x14], edx
jmp 0x10023292
push edx
lea ecx, [esp + 0x70]
call fcn.1001b2e8
mov dword [esp + 0x18], 0x92a41536
mov dword [esp + 0xc], ebx
jmp 0x1002325a
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x6c]
mov dword [eax + ecx*4], 0xa1ee
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x10023247
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x10023273
push ebx
call dword [sym.imp.COMDLG32.dll_GetOpenFileNameW]
dec dword [esp + 0x24]
jne 0x10023288
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x24]
cmp dword [ecx + 4], eax
mov eax, ebx
je 0x1002328a
mov eax, esi
mov dword [esp + 0x18], eax
lea ecx, [esp + 0x6c]
call fcn.1001b36a
or dword [esp + 0xcc], 0xffffffff
lea ecx, [esp + 0x30]
call fcn.1001b36a
xor esi, esi
mov dword [esp + 0x1c], 0xb319
inc esi
mov dword [esp + 0x28], ebx
push esi
lea ecx, [esp + 0x58]
call fcn.1001b2e8
mov dword [esp + 0xcc], 3
mov dword [esp + 0x14], ebx
jmp 0x100232de
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x2c], ebx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x100232d2
mov dword [esp + 0x14], ebx
jmp 0x100232fd
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x54]
mov dword [eax + ecx*4], 0xc2df100
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x100232ea
cmp dword [esp + 0x1c], ebx
je 0x1002336a
mov dword [esp + 0x20], 0xffff
lea ecx, [esp + 0x60]
push esi
call fcn.1001b2e8
mov dword [esp + 0xc], ebx
jmp 0x10023334
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x60]
mov dword [eax + ecx*4], 0xad9ddcef
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x10023321
mov eax, dword [esp + 0x1c]
xor ecx, ecx
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
cmp eax, 6
mov eax, dword [esp + 0x60]
setle cl
mov dword [eax], ecx
lea ecx, [esp + 0x60]
call fcn.1001b36a
jmp 0x1002354b
mov dword [esp + 0xc], 0x58c458a9
mov dword [esp + 0x24], 9
mov dword [esp + 0x18], esi
mov dword [esp + 0x18], 0xaafe
mov dword [esp + 0x1c], ebx
jmp 0x1002351d
mov dword [esp + 0x14], 0x9683648b
mov dword [esp + 0x20], 6
mov dword [esp + 0x14], ebx
jmp 0x10023405
mov dword [esp + 0x20], 0xfffffffe
xor ecx, ecx
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
imul eax, dword [esp + 0xc]
cmp eax, esi
setg cl
xor edx, edx
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
cmp ecx, eax
setl dl
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x20]
imul eax, dword [esp + 0x18]
imul eax, eax, 0x865e
mov dword [esp + 0x20], eax
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x10023401
push ebx
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
dec dword [esp + 0x14]
cmp dword [esp + 0x14], 0xfffffffb
je 0x100233a5
mov dword [esp + 0x28], ebx
jmp 0x10023504
push 2
lea ecx, [esp + 0x4c]
call fcn.1001b2e8
mov dword [esp + 0x14], ebx
jmp 0x10023435
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x48]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x10023426
mov eax, dword [esp + 0x28]
cmp dword [esp + eax*4 + 0x2c], ebx
jne 0x10023510
mov eax, dword [esp + 0x28]
mov eax, dword [esp + eax*4 + 0x2c]
neg eax
je 0x1002345e
mov eax, dword [esp + 0x28]
mov eax, dword [esp + eax*4 + 0x2c]
mov eax, dword [esp + 0x28]
xor ecx, ecx
mov eax, dword [esp + eax*4 + 0x2c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x24]
cmp eax, 0x33be618b
mov eax, dword [esp + 0x48]
setle cl
xor edx, edx
mov dword [eax + 4], ecx
mov eax, dword [esp + 0x18]
sub eax, ecx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x1c]
inc ecx
cmp ecx, eax
mov eax, dword [esp + 0xc]
setle dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0xc]
setne cl
xor edx, edx
cmp ecx, eax
setl dl
xor ecx, ecx
sub edx, dword [esp + 0x28]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + eax*4 + 0x2c]
cmp edx, eax
mov eax, dword [esp + 0x54]
setg cl
xor edx, edx
mov dword [eax], ecx
mov eax, dword [esp + 0x28]
mov eax, dword [esp + eax*4 + 0x2c]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + eax*4 + 0x2c]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x54]
cmp dword [eax], ecx
lea ecx, [esp + 0x48]
setg dl
mov dword [esp + 0x20], edx
call fcn.1001b36a
inc dword [esp + 0x28]
cmp dword [esp + 0x28], ebx
jle 0x10023415
jmp 0x10023519
lea ecx, [esp + 0x48]
call fcn.1001b36a
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0x1a
jg 0x1002338f
mov dword [esp + 0xc], 4
jmp 0x10023544
mov dword [esp + 0x18], 0xfffffff9
inc dword [esp + 0x18]
jne 0x1002354b
dec dword [esp + 0xc]
cmp dword [esp + 0xc], 0xfffffffb
jle 0x10023532
or dword [esp + 0xcc], 0xffffffff
lea ecx, [esp + 0x54]
call fcn.1001b36a
cmp byte [edi], 0
je 0x100235a2
mov dword [esp + 0x18], 0xf01c0890
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x1002357b
push ebx
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x10023591
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetThreadTimes]
push 0x11f9
push 0xe0c
push ebx
call dword [sym.imp.USER32.dll_CheckMenuItem]
mov dword [esp + 0xc], 0xfff7
mov dword [esp + 0x20], 0xc657e3b6
mov dword [esp + 0x24], 0xad81
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x1c], 3
mov dword [esp + 0x18], 0x6bcb
cmp dword [esp + 0x18], 0x6d69
jle 0x10023639
push 0xbef
call dword [sym.imp.USER32.dll_GetDC]
mov esi, ebx
mov edi, ebx
mov ecx, edi
mov eax, esi
shl eax, cl
lea ecx, [esp + 0x90]
cdq
push edx
push eax
call fcn.1000dafa
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1002360e
mov eax, dword [eax]
push eax
call fcn.1004e316
pop ecx
push ebx
push 1
lea ecx, [esp + 0x98]
call fcn.1001b738
inc edi
cmp edi, 0x3949
jl 0x100235ef
inc esi
cmp esi, 0x1753
jl 0x100235ed
xor esi, esi
inc esi
mov dword [esp + 0x20], 0xfe9f4864
cmp dword [esp + 0x18], 0x6af6
jge 0x10023656
push 0x10009058
call fcn.1004e316
pop ecx
or dword [esp + 0xcc], 0xffffffff
xor edx, edx
mov eax, dword [esp + 0xc]
mov dword [esp + 0x20], esi
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp ecx, eax
setge dl
xor eax, eax
cmp edx, 0x76270e7a
setg al
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x20], ebx
je 0x100236a4
cmp dword [esp + 0x24], ebx
jne 0x100236a8
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
dec edx
neg edx
sbb edx, edx
xor ecx, ecx
neg edx
sub edx, 0x39281c1d
cmp edx, eax
setg cl
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], 0x16
jmp 0x1002378f
mov dword [esp + 0x18], ebx
mov dword [esp + 0x18], 0xfffffffb
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x10023787
mov dword [esp + 0x18], 0x7e90
cmp dword [esp + 0x18], 0x812e
jle 0x10023754
push ebx
call dword [sym.imp.KERNEL32.dll_LockResource]
mov esi, ebx
mov edi, ebx
lea eax, [edi + esi]
cdq
lea ecx, [esp + 0xa8]
push edx
push eax
call fcn.1000dafa
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10023729
mov eax, dword [eax]
push eax
call fcn.1004e316
pop ecx
push ebx
push 1
lea ecx, [esp + 0xb0]
call fcn.1001b738
inc edi
cmp edi, 0x655
jl 0x1002370d
inc esi
cmp esi, 0x6cd6
jl 0x1002370b
xor esi, esi
inc esi
push ebx
push 0x329
push 0x271
push 0x12dd
call dword [sym.imp.GDI32.dll_GetCharWidth32A]
cmp dword [esp + 0x18], 0x7c4b
jge 0x1002377f
push 0x100090b8
call fcn.1004e316
pop ecx
or dword [esp + 0xcc], 0xffffffff
mov dword [esp + 0x18], esi
dec dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0xfffffff3
jl 0x100236d5
mov ecx, dword [esp + 0xc4]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret