Function at 0x10019cbc
Capabilities:
Get common file path
Get memory capacity

Disassembly:
mov eax, 0x1007b4a8
call fcn.1007ac40
sub esp, 0x100
mov dword [ebp - 0x30], edx
push ebx
push esi
push edi
push 4
pop edi
push edi
test cl, cl
je 0x10019f69
mov dword [ebp - 0x20], 0xfffffffb
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0x1c], 0xffffffff
xor ebx, ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x30], 5
call fcn.10016a6e
mov dword [ebp - 0x30], 0xfffffffe
xor esi, esi
mov dword [ebp - 0x30], 0x83ad
inc esi
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x18], ebx
jmp 0x10019d2f
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0xd0]
mov dword [eax + ecx*4], 0xdb6b7be2
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x10019d1c
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x1c], 0x9995
je 0x10019d54
mov ecx, dword [ebp - 0x1c]
xor edx, edx
mov eax, dword [ebp - 0x1c]
cmp ecx, eax
mov ecx, ebx
setg dl
cmp edx, 9
jle 0x10019d56
mov ecx, esi
xor eax, eax
cmp ecx, 0x63700168
setne al
cmp dword [ebp - 0x20], eax
jne 0x10019d69
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x2c]
jge 0x10019d81
mov edx, ebx
cmp dword [ebp - 0x2c], ebx
je 0x10019d83
mov edx, esi
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0x1c], ecx
lea ecx, [ebp - 0xd0]
dec dword [ebp - 0x14]
call fcn.1001732e
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x28], 0xfcf09cc2
mov dword [ebp - 0x30], 0xfffffffa
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x2c], 0x219a
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], 0xffffffe9
je 0x10019f57
mov edi, 0xf7a2d47e
mov dword [ebp - 0x20], 0xfffffff8
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x1c], 0xfffffff8
push esi
call fcn.10016a6e
mov dword [ebp - 0x14], 0xbe6
mov dword [ebp - 0x1c], ebx
jmp 0x10019e05
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x40]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x10019df9
mov dword [ebp - 0x1c], ebx
jmp 0x10019e20
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x100], 0xf45a3231
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x10019e0f
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x40]
mov eax, dword [eax]
inc dword [ebp - 0x2c]
cmp ecx, eax
mov eax, esi
cmovge eax, ebx
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], ebx
je 0x10019e43
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
xor ecx, ecx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x40]
mov edx, dword [eax]
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x24]
cmp eax, edx
setle cl
sub ecx, edx
xor edx, edx
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebp - 0x20]
add ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
cmp eax, ecx
mov eax, dword [ebp - 0x40]
setge dl
mov dword [eax], edx
test edx, edx
je 0x10019e8c
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x40]
add dword [eax], ecx
jmp 0x10019edd
mov dword [ebp - 0x20], 0xfffffff7
jmp 0x10019ed7
mov dword [ebp - 0x14], ebx
jmp 0x10019ebf
cmp byte [ebp - 0xd], bl
je 0x10019ea6
push ebx
call dword [sym.imp.KERNEL32.dll_EncodePointer]
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
je 0x10019ebc
push ebx
push 0xca8
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x1c
mov byte [ebp - 0xd], bl
jne 0x10019e9a
cmp byte [ebp - 0xd], bl
je 0x10019ed4
push ebx
call dword [sym.imp.KERNEL32.dll_SetCommBreak]
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0x36
jge 0x10019e95
mov dword [ebp - 0x14], ebx
jmp 0x10019f3c
mov dword [ebp - 0x28], esi
mov dword [ebp - 0xc4], edi
mov dword [ebp - 0xc0], edi
mov dword [ebp - 0xbc], edi
mov dword [ebp - 0xb8], edi
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
je 0x10019f0d
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp eax, 0x28d8805e
setle cl
xor eax, eax
cmp ecx, 0xffffffff
setge al
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x100]
mov eax, dword [ebp - 0xbc]
mov eax, dword [ebp - 0x40]
mov dword [eax], esi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x20
jge 0x10019ee2
lea ecx, [ebp - 0x40]
call fcn.1001732e
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xffffffe9
jne 0x10019dd6
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_DrawMenuBar]
jmp 0x1001a5c9
mov dword [ebp - 0x1c], 0x76b0f738
lea ecx, [ebp - 0xa4]
mov dword [ebp - 0x14], 0xffffffff
xor esi, esi
inc esi
mov dword [ebp - 0xb4], esi
mov dword [ebp - 0xb0], esi
mov dword [ebp - 0xac], esi
mov dword [ebp - 0xa8], esi
call fcn.10016a6e
xor ebx, ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x14], ebx
jmp 0x10019fb5
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x34], 0x70f9e3d3
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x10019fa7
mov dword [ebp - 0x14], ebx
jmp 0x10019fc9
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x64], esi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x10019fbf
mov dword [ebp - 0x14], ebx
jmp 0x10019fe7
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xa4]
mov dword [eax + ecx*4], 0xfffffffb
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x10019fd4
mov eax, dword [ebp - 0x1c]
xor edx, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
cmp ecx, eax
setge dl
cmp dword [ebp - 0x1c], 0xffffffff
sbb eax, eax
xor ecx, ecx
neg eax
cmp eax, edx
setg cl
xor edx, edx
cmp ecx, 0x213e
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0x1c]
setne dl
xor ecx, ecx
cmp edx, eax
setge cl
cmp ecx, 0x7ad53a38
jl 0x1001a03d
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
cmp dword [ebp - 0x14], ebx
je 0x1001a0d8
mov dword [ebp - 0x1c], ebx
jmp 0x1001a0cd
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], 0xfffffff7
jmp 0x1001a08d
mov dword [ebp - 0x20], 0xfffffffa
mov dword [ebp - 0x24], 0xfffffffb
mov dword [ebp - 0x20], ebx
jmp 0x1001a084
mov dword [ebp - 0x24], esi
cmp dword [ebp - 0x18], ebx
jne 0x1001a08a
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 8
jl 0x1001a079
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
je 0x1001a066
mov dword [ebp - 0x18], ebx
jmp 0x1001a0c5
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
je 0x1001a0ad
push ebx
push 0xcb6
push ebx
call dword [sym.imp.ADVAPI32.dll_ControlService]
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
je 0x1001a0c2
push ebx
push 0xcb6
push ebx
call dword [sym.imp.ADVAPI32.dll_ControlService]
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jle 0x1001a098
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x36
jle 0x1001a05a
jmp 0x1001a189
mov dword [ebp - 0x20], 0x523e
lea ecx, [ebp - 0x80]
push 3
call fcn.10016a6e
mov dword [ebp - 0x18], ebx
jmp 0x1001a0fa
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x80]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x1001a0ee
mov eax, dword [ebp - 0x14]
xor ecx, ecx
mov eax, dword [ebp - 0x20]
cmp eax, esi
setle cl
xor eax, eax
cmp ecx, 0x76dcb0c7
setge al
cmp eax, dword [ebp - 0x20]
jle 0x1001a124
mov eax, ebx
cmp dword [ebp - 0x20], ebx
je 0x1001a126
mov eax, esi
xor edx, edx
cmp eax, 0x56eb3e19
mov eax, dword [ebp - 0x80]
setg dl
xor ecx, ecx
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x20]
cmp edx, eax
mov eax, dword [ebp - 0x20]
setg cl
xor edx, edx
cmp eax, ecx
setge dl
xor ecx, ecx
mov dword [ebp - 0x34], edx
mov eax, dword [ebp - 0x64]
cmp edx, eax
setne cl
xor edx, edx
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x14]
cmp eax, ecx
setne dl
cmp edx, dword [ebp - 0x1c]
jg 0x1001a176
mov ecx, ebx
cmp dword [ebp - 0xb4], ebx
je 0x1001a178
mov ecx, esi
mov eax, dword [ebp - 0xa4]
mov dword [eax + 8], ecx
lea ecx, [ebp - 0x80]
call fcn.1001732e
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa4]
call fcn.1001732e
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x24], 0xfffffff8
push 3
mov dword [ebp - 0x18], 0xc8d3c891
pop ecx
mov dword [ebp - 0x20], ecx
cmp dword [ebp - 0x20], ebx
jl 0x1001a220
mov dword [ebp - 0x24], edi
dec dword [ebp - 0x24]
mov dword [ebp - 0x18], ebx
jmp 0x1001a216
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp + eax*4 - 0x74]
mov eax, dword [ebp - 0x20]
sub ecx, dword [ebp + eax*4 - 0x74]
je 0x1001a202
mov dword [ebp - 0x24], 0x15d7249a
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x24], eax
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
je 0x1001a210
push ebx
push ebx
push 0x1155
push ebx
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_AdjustTokenPrivileges]
jmp 0x1001a210
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
je 0x1001a210
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
inc dword [ebp - 0x18]
push 3
pop ecx
cmp dword [ebp - 0x18], ecx
jle 0x1001a1cb
dec dword [ebp - 0x20]
jns 0x1001a1c0
mov eax, 0xdd1e1e87
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x18], ebx
jmp 0x1001a243
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xf4], esi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ecx
jl 0x1001a236
mov dword [ebp - 0x48], ebx
jmp 0x1001a28f
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x18], ebx
jmp 0x1001a286
mov dword [ebp - 0x24], ebx
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
je 0x1001a26e
push ebx
push esi
push 0x17bd
push ebx
call dword [sym.imp.USER32.dll_GetMenuItemInfoW]
mov eax, dword [ebp - 0x18]
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0xf4]
cmp eax, 2
setle cl
mov dword [ebp - 0x24], ecx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jle 0x1001a255
inc dword [ebp - 0x48]
cmp dword [ebp - 0x48], 2
jle 0x1001a24d
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
je 0x1001a2b9
push 0x973
push 0xebe
push ebx
push ebx
push 0xb27
push 0x2267
call dword [sym.imp.USER32.dll_ToUnicode]
mov eax, dword [ebp - 0x30]
mov dword [eax], 0x15
jmp 0x1001a4f8
mov dword [ebp - 0x1c], 0x971c
lea ecx, [ebp - 0x98]
mov dword [ebp - 0x24], 0x4768c0aa
mov dword [ebp - 0x24], 3
call fcn.10016a6e
mov dword [ebp - 4], esi
lea ecx, [ebp - 0x5c]
mov dword [ebp - 0x18], 0x3859
mov dword [ebp - 0x2c], 0xfffffffd
mov dword [ebp - 0x28], 0xa97f51ef
mov dword [ebp - 0x28], ebx
push esi
call fcn.10016a6e
mov dword [ebp - 0x20], 0x8f49235
push 3
mov dword [ebp - 0x28], 0x4643a64e
mov dword [ebp - 0x14], ebx
pop edx
jmp 0x1001a332
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x10c], 0x978f3c34
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jl 0x1001a321
mov dword [ebp - 0x14], ebx
jmp 0x1001a34f
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x98]
mov dword [eax + ecx*4], 0x5cc2
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x1001a33c
mov dword [ebp - 0x14], ebx
jmp 0x1001a369
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x5c]
mov dword [eax + ecx*4], 0x3eb61943
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x1001a359
mov dword [ebp - 0x14], ebx
jmp 0x1001a384
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xe8], 5
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jl 0x1001a373
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x5c]
mov dword [eax], ecx
inc dword [ebp - 0x20]
test ecx, ecx
jne 0x1001a3d3
mov eax, dword [ebp - 0x18]
neg eax
cmp eax, dword [ebp - 0x24]
jle 0x1001a3bd
mov eax, dword [ebp - 0xe8]
sub eax, dword [ebp - 0x2c]
neg eax
sbb eax, eax
inc eax
cmp eax, 0x5438
mov eax, dword [ebp - 0x5c]
setg cl
mov dword [eax], ecx
mov ecx, dword [ebp - 0x28]
xor edx, edx
mov eax, dword [ebp - 0x24]
cmp ecx, eax
mov eax, ebx
setge dl
add edx, edi
cmp dword [ebp - 0x28], edx
jg 0x1001a3d5
mov eax, esi
cmp dword [ebp - 0x1c], eax
jl 0x1001a406
mov dword [ebp - 0x18], 3
cmp dword [ebp - 0x18], ebx
jl 0x1001a48c
mov dword [ebp - 0x24], ebx
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x98]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x24], eax
dec dword [ebp - 0x18]
jns 0x1001a3ea
jmp 0x1001a48c
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], 0
je 0x1001a41d
push ebx
push 0xca8
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
mov dword [ebp - 0x20], ebx
jmp 0x1001a486
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], 0
je 0x1001a432
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileType]
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], 0
je 0x1001a483
push 0x1a95
push 0xbb4
push ebx
push ebx
push 0x26d0
push 0x208f
push 0x22ac
push 0x119b
push 0x144b
push 0x1abe
push 0x1933
push 0x17d
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_StretchDIBits]
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jle 0x1001a422
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x5c]
neg ecx
sbb ecx, ecx
neg ecx
mov dword [eax], ecx
lea ecx, [ebp - 0x5c]
call fcn.1001732e
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x98]
call fcn.1001732e
mov dword [ebp - 0x28], 0xfffffff9
mov dword [ebp - 0x24], 0xb0b0
mov dword [ebp - 0x24], 0xffffffff
cmp dword [ebp - 0x24], ebx
mov byte [ebp - 0xd], bl
je 0x1001a4e3
cmp byte [ebp - 0xd], 0
je 0x1001a4f0
push ebx
push 0x8d9
push ebx
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x1001a4f0
cmp byte [ebp - 0xd], 0
je 0x1001a4f0
push ebx
call dword [sym.imp.KERNEL32.dll_SetDllDirectoryW]
mov eax, dword [ebp - 0x30]
dec dword [ebp - 0x28]
dec dword [eax]
cmp dword [eax], 0xffffffeb
push edi
jle 0x1001a2c7
mov dword [ebp - 0x30], 9
lea ecx, [ebp - 0xdc]
mov dword [ebp - 0x24], 0x5dae5a60
call fcn.10016a6e
mov dword [ebp - 4], 2
lea ecx, [ebp - 0x8c]
mov dword [ebp - 0x2c], 0xfffffffb
mov dword [ebp - 0x24], 0x7278fa8f
push esi
call fcn.10016a6e
mov dword [ebp - 0x28], 0xe291920b
mov dword [ebp - 0x18], 0x6fd8
mov dword [ebp - 0x1c], ebx
jmp 0x1001a55e
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0xdc]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x1001a54f
mov dword [ebp - 0x1c], ebx
jmp 0x1001a57b
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x8c]
mov dword [eax + ecx*4], 0x720348f4
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x1001a568
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x8c]
dec dword [eax]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x18], eax
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], 0
je 0x1001a5b3
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
lea ecx, [ebp - 0x8c]
call fcn.1001732e
lea ecx, [ebp - 0xdc]
call fcn.1001732e
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret