Function at 0x1001b5af
Capabilities:
Get common file path

Disassembly:
mov eax, 0x10080855
call fcn.1007ffb0
sub esp, 0xe0
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x14], 0xda8e97ee
xor ebx, ebx
mov esi, edx
xor ecx, ecx
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x10], ebx
inc ecx
jmp 0x1001b5e8
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x48], 0xbaf43b7c
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ecx
jl 0x1001b5da
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], ebx
jl 0x1001b66f
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x10], ebx
jmp 0x1001b60b
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x64], 0xc5534bf8
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ecx
jl 0x1001b5fd
mov dword [ebp - 0x64], 3
mov dword [ebp - 0x10], ebx
jmp 0x1001b665
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], ebx
jl 0x1001b65f
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], bl
je 0x1001b657
push 0x2660
push 0xb9f
push 0x2bf
push 0x1c52
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_IntersectClipRect]
dec dword [ebp - 0x18]
jns 0x1001b627
xor ecx, ecx
inc ecx
mov eax, dword [ebp - 0x14]
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jle 0x1001b61c
dec dword [ebp - 0x14]
jns 0x1001b5f5
cmp dword [edi + 0x10], ebx
jne 0x1001b67b
xor al, al
jmp 0x1001bdb8
mov dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 0x14], ecx
lea ecx, [ebp - 0xb8]
push 4
call fcn.100170df
mov dword [ebp - 0x10], ebx
jmp 0x1001b6a7
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xb8]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jl 0x1001b697
mov dword [ebp - 0x10], ebx
jmp 0x1001b707
mov dword [ebp - 0x18], 0xda5043c4
mov dword [ebp - 0x24], 0xfffffffa
cmp dword [ebp - 0x18], ebx
jne 0x1001b6fd
mov eax, dword [ebp - 0x18]
xor edx, edx
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x18]
cmp eax, ecx
setg dl
xor eax, eax
cmp edx, 0x39e
setl al
xor ecx, ecx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0x20], eax
setne cl
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x18], 1
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 8
je 0x1001b6b2
mov dword [ebp - 0x14], ebx
jmp 0x1001b725
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xb8]
mov dword [eax + ecx*4], 0x13b28858
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x1001b712
lea ecx, [ebp - 0xb8]
call fcn.100178ce
mov dword [ebp - 0x14], 0x4b733c63
lea ecx, [ebp - 0xa0]
push 2
call fcn.100170df
push 2
mov dword [ebp - 0x18], ebx
pop edx
jmp 0x1001b760
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x5c], 0x4c865b49
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edx
jl 0x1001b752
mov dword [ebp - 0x18], ebx
jmp 0x1001b77b
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xcc], 1
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edx
jl 0x1001b76a
mov dword [ebp - 0x18], ebx
jmp 0x1001b798
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0xa0]
mov dword [eax + ecx*4], 0xd10caad9
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edx
jl 0x1001b785
cmp dword [ebp - 0x14], ebx
je 0x1001b7ca
mov ecx, dword [ebp - 0x14]
xor edx, edx
mov eax, dword [ebp - 0x14]
cmp ecx, eax
setne dl
cmp edx, dword [ebp - 0x14]
jg 0x1001b7b7
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
je 0x1001b7ca
xor eax, eax
inc eax
jmp 0x1001b7cc
mov eax, ebx
xor ecx, ecx
mov dword [ebp - 0x5c], 1
cmp eax, 1
mov eax, dword [ebp - 0x14]
sete cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x14]
setle dl
xor ecx, ecx
cmp edx, eax
setne cl
add ecx, dword [ebp - 0x14]
je 0x1001b7fe
cmp dword [ebp - 0x5c], ebx
je 0x1001b7fe
xor edx, edx
inc edx
jmp 0x1001b800
mov edx, ebx
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x14]
setl cl
sub eax, ecx
mov ecx, 0xcecb4571
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0x5c]
cmp ecx, eax
mov ecx, 0xdd5d0881
sbb eax, eax
neg eax
cmp ecx, eax
mov eax, dword [ebp - 0xa0]
sbb ecx, ecx
inc ecx
mov dword [eax], ecx
lea ecx, [ebp - 0xa0]
call fcn.100178ce
mov dword [ebp - 0x20], 0xf112
lea ecx, [ebp - 0xc4]
mov dword [ebp - 0x20], 0x8901f2c2
mov dword [ebp - 0x20], 0x3fa75c19
mov dword [ebp - 0x20], 0xfddd3f46
mov dword [ebp - 0x20], 2
push 4
call fcn.100170df
mov dword [ebp - 0x20], 0x4e665969
mov dword [ebp - 0x24], 3
mov dword [ebp - 0x10], ebx
jmp 0x1001b89b
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc4]
mov dword [eax + ecx*4], 0x1449c9fb
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jl 0x1001b888
inc dword [ebp - 0x24]
lea ecx, [ebp - 0xc4]
call fcn.100178ce
push dword [ebp - 0x48]
movdqa xmm0, xmmword [0x10007ad0]
lea eax, [ebp - 0xcc]
push eax
lea eax, [ebp - 0xdc]
mov dword [esi], ebx
push eax
push ebx
lea ecx, [ebp - 0x54]
mov dword [ebp - 0x54], ebx
movdqu xmmword [ebp - 0xdc], xmm0
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x4c], ebx
call fcn.1001863a
mov dword [ebp - 0x24], 1
push 0xfffffffffffffffb
pop ecx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x14], 9
mov dword [ebp - 0x24], 0x6e71ebdc
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x10], ebx
jmp 0x1001b915
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x40], 0x8e20b458
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x1001b907
mov esi, dword [ebp - 0x54]
mov dword [esi], ecx
cmp dword [esi], 0xe188a746
mov dword [ebp - 0x24], 0xffff
sbb eax, eax
xor edx, edx
inc eax
cmp eax, dword [esi]
mov eax, dword [ebp - 0x40]
setle dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x24]
setg cl
xor edx, edx
cmp ecx, dword [esi + 0xc]
setle dl
xor ecx, ecx
cmp dword [esi + 0xc], eax
mov eax, dword [ebp - 0x40]
setge cl
sub ecx, eax
mov eax, dword [ebp - 0x54]
imul ecx, edx
xor edx, edx
mov dword [eax], ecx
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x40]
cmp eax, 1
mov eax, dword [ebp - 0x14]
setl dl
xor ecx, ecx
cmp edx, eax
setne cl
xor edx, edx
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x24]
sub ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x40]
cmp ecx, eax
mov eax, dword [ebp - 0x3c]
setl dl
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [ebp - 0x20], ecx
lea ecx, [ebp - 0x54]
call fcn.100178ce
push dword [ebp - 0x48]
movdqa xmm0, xmmword [0x10007b20]
lea eax, [ebp - 0xdc]
push eax
lea eax, [ebp - 0xec]
mov dword [ebp - 0x88], ebx
push eax
push ebx
lea ecx, [ebp - 0x88]
mov dword [ebp - 0x84], ebx
movdqu xmmword [ebp - 0xec], xmm0
mov dword [ebp - 0x80], ebx
call fcn.1001863a
mov dword [ebp - 0x10], 0x8094a188
mov dword [ebp - 0x10], ebx
jmp 0x1001ba09
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], bl
je 0x1001ba06
push 0x699
push ebx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jle 0x1001b9f2
lea ecx, [ebp - 0x88]
call fcn.100178ce
cmp dword [edi + 0x14], 0x10
jb 0x1001ba24
mov esi, dword [edi]
jmp 0x1001ba26
mov esi, edi
mov edx, dword [ebp - 0x44]
cmp dword [edi + 0x14], 0x10
jb 0x1001ba33
mov ecx, dword [edi]
jmp 0x1001ba35
mov ecx, edi
mov eax, dword [edi + 0x10]
add eax, ecx
cmp esi, eax
je 0x1001bc4b
mov al, byte [esi]
cmp al, 0x30
jl 0x1001bc2c
cmp al, 0x39
jg 0x1001bc2c
mov dword [ebp - 0x18], 0xcff0ea75
mov dword [ebp - 0x60], 0x8f8256a9
mov dword [ebp - 0x20], 1
mov dword [ebp - 0x20], 0x999d94b4
mov dword [ebp - 0x20], 0x21f1eb32
mov dword [ebp - 0x20], 0xfffffffb
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x10], 0xfffffffe
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], 0xffffffeb
jge 0x1001bc19
mov dword [ebp - 0x20], 0xfffffffd
lea ecx, [ebp - 0xac]
push 2
call fcn.100170df
mov dword [ebp - 4], ebx
mov dword [ebp - 0x34], 0x5900b088
mov dword [ebp - 0x14], ebx
jmp 0x1001bad5
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xac]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x1001bac6
mov dword [ebp - 0x14], ebx
jmp 0x1001baee
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x70], 0x37c57f39
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x1001bae0
dec dword [ebp - 0x10]
mov ecx, 0xffffbf8d
mov eax, dword [ebp - 0x10]
xor edx, edx
sub eax, 9
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x34]
sub ecx, eax
mov eax, dword [ebp - 0x6c]
add ecx, eax
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x20]
cmp ecx, eax
mov eax, dword [ebp - 0x34]
setge dl
add edx, dword [eax + 4]
cmp edx, dword [ebp - 0x10]
jle 0x1001bbe3
push ebx
lea eax, [ebp - 0x38]
mov dword [ebp - 0x38], 1
push eax
lea eax, [ebp - 0x60]
push eax
call fcn.1001bffc
mov ecx, dword [ebp - 0x38]
xor edx, edx
mov eax, dword [ebp - 0x24]
add esp, 0xc
cmp eax, ecx
mov eax, dword [ebp - 0x6c]
setle dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x24]
setge cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x38]
setl dl
xor ecx, ecx
cmp eax, 0xffffffff
setle cl
cmp ecx, edx
jne 0x1001bb86
cmp dword [ebp - 0x18], ebx
je 0x1001bb86
xor eax, eax
inc eax
jmp 0x1001bb88
mov eax, ebx
xor ecx, ecx
cmp eax, 1
sete cl
xor eax, eax
cmp ecx, 0xc84a
mov ecx, dword [ebp - 0x34]
setle al
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov dword [ecx + 4], eax
test eax, eax
je 0x1001bbb5
cmp dword [ebp - 0x38], ebx
je 0x1001bbb5
xor eax, eax
inc eax
jmp 0x1001bbb7
mov eax, ebx
cmp dword [ebp - 0x70], eax
jl 0x1001bbc5
cmp dword [ebp - 0x38], ebx
jne 0x1001bbc5
mov ecx, ebx
jmp 0x1001bbc8
xor ecx, ecx
inc ecx
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
sub eax, ecx
sub eax, 0xfffffffd
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x20], eax
jmp 0x1001bbfa
mov dword [ebp - 0x20], 0x863e3202
xor edx, edx
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
cmp ecx, eax
setle dl
mov dword [ebp - 0x34], edx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xac]
call fcn.100178ce
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xffffffeb
jl 0x1001baa3
mov edx, dword [ebp - 0x44]
imul ecx, dword [edx], 0xa
movsx eax, byte [esi]
add eax, 0xffffffd0
add eax, ecx
inc esi
mov dword [edx], eax
jmp 0x1001ba29
push ebx
call fcn.1001d802
mov eax, dword [ebp - 0x44]
mov dword [esp], 0x57f4
push ebx
mov dword [eax], ebx
call fcn.1001be07
pop ecx
pop ecx
jmp 0x1001b674
push 2
lea ecx, [ebp - 0x7c]
call fcn.100170df
xor edx, edx
inc edx
mov dword [ebp - 4], edx
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x10], ebx
jmp 0x1001bc73
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x7c]
mov dword [eax + ecx*4], 0x2e0c
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x1001bc63
mov dword [ebp - 0x30], ebx
jmp 0x1001bce3
mov dword [ebp - 0x28], 0xbb11accb
mov dword [ebp - 0x28], ebx
jmp 0x1001bcbc
lea eax, [ebp - 0x7c]
push eax
push 0xfcf
push ebx
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.1001bf8b
push 0x3908
lea eax, [ebp - 0x29]
mov byte [ebp - 0x29], bl
push ebx
push eax
call fcn.1001e840
add esp, 0x20
xor edx, edx
inc dword [ebp - 0x28]
inc edx
cmp dword [ebp - 0x28], edx
jle 0x1001bc8a
mov dword [ebp - 0x28], ebx
jmp 0x1001bcdb
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x7c]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
xor edx, edx
inc dword [ebp - 0x28]
inc edx
cmp dword [ebp - 0x28], edx
jle 0x1001bcc6
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], edx
jle 0x1001bc7e
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x7c]
call fcn.100178ce
push 3
lea ecx, [ebp - 0x94]
call fcn.100170df
mov dword [ebp - 0x14], 1
mov dword [ebp - 0x10], ebx
jmp 0x1001bd20
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x94]
mov dword [eax + ecx*4], 0x27cb3f4f
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jl 0x1001bd0d
mov eax, dword [ebp - 0x94]
cmp dword [eax + 8], ebx
je 0x1001bd6a
mov dword [ebp - 0x10], 0xdcba
xor ecx, ecx
mov dword [ebp - 0x20], ebx
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x14], 1
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x94]
cmp dword [eax], 0xfffb
sete cl
mov dword [ebp - 0x20], ecx
jmp 0x1001bdab
mov dword [ebp - 0x14], ebx
jmp 0x1001bda5
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x1001bd86
push ebx
push 0x20ba
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_SignalObjectAndWait]
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x1001bda2
push ebx
push ebx
push 0xb6d
push 0x211e
push ebx
call dword [sym.imp.USER32.dll_ModifyMenuW]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x1c
jl 0x1001bd6f
lea ecx, [ebp - 0x94]
call fcn.100178ce
mov al, 1
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret