Function at 0x1002542b
Capabilities:
Get common file path

Disassembly:
mov eax, 0x1006199b
call fcn.10060ef0
sub esp, 0x118
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
xor ebx, ebx
push 2
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x14], ebx
pop edi
jmp 0x10025462
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x94], 0x62fd
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x10025451
mov byte [ebp - 0x31], bl
cmp byte [ebp - 0x31], bl
je 0x1002547b
push 0x2112
push ebx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
inc dword [ebp - 0x90]
xor esi, esi
mov dword [ebp - 0x28], 0xd06ce125
inc esi
mov dword [ebp - 0x18], 0xfffffff7
mov dword [ebp - 0x38], 9
mov dword [ebp - 0x24], 0x2250db85
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x20], ebx
jmp 0x100254b9
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0xc8], 0x7be9fb1c
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 4
jl 0x100254a8
mov dword [ebp - 0x20], ebx
jmp 0x100254d2
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x54], 0x7be2d3d4
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], esi
jl 0x100254c4
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x18], eax
inc dword [ebp - 0x54]
cmp dword [ebp - 0x44], ebx
je 0x100254f4
cmp dword [ebp - 0xc0], 0x64d9
jge 0x100254f4
mov eax, dword [ebp - 0x54]
mov eax, dword [ebp - 0x28]
xor edx, edx
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x38]
cmp eax, ecx
mov eax, dword [ebp - 0xc4]
setl dl
xor ecx, ecx
neg edx
cmp edx, eax
push edi
setl cl
mov dword [ebp - 0xc4], ecx
lea ecx, [ebp - 0x80]
mov dword [ebp - 0x20], 0x8748
mov dword [ebp - 0x40], 5
call fcn.1000ff33
push edi
lea ecx, [ebp - 0xa0]
mov dword [ebp - 4], ebx
call fcn.1000ff33
mov dword [ebp - 0x2c], 0x6ff23b1a
mov dword [ebp - 0x14], 0x8cccddd
mov dword [ebp - 0x24], 0x884cb8f6
mov dword [ebp - 0x28], 0x9b58331c
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x24], 0x4c3d
mov dword [ebp - 0x38], 0x61ca7276
mov dword [ebp - 0x1c], ebx
cmp dword [ebp - 0x1c], edi
jge 0x1002559a
or edi, 0xffffffff
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0xa0]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x10025583
jmp 0x1002559d
or edi, 0xffffffff
mov dword [ebp - 0x1c], ebx
jmp 0x100255ac
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x74], esi
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x100255a2
inc dword [ebp - 0x28]
jne 0x100255f3
cmp dword [ebp - 0x14], ebx
jne 0x100255f3
mov eax, dword [ebp - 0x70]
xor edx, edx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x28]
cmp eax, 0x7b83
mov eax, dword [ebp - 0x18]
setg dl
xor ecx, ecx
cmp edx, eax
mov edx, ebx
setg cl
imul ecx, dword [ebp - 0x14]
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], ebx
je 0x100255f5
mov edx, esi
mov eax, dword [ebp - 0xa0]
mov ecx, dword [eax + 4]
xor eax, eax
cmp edx, ecx
setl al
sub ecx, eax
je 0x1002569b
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x24], 0xbf7c295a
mov dword [ebp - 0x24], 0xfffffffe
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x24], 0xb1bb30b1
mov dword [ebp - 0x24], 0xe8e548e0
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x24], 0x6eae1177
mov dword [ebp - 0x24], 0x18d7c584
mov dword [ebp - 0x24], 0xa81f6ed7
mov dword [ebp - 0x24], 0xfffffffb
mov dword [ebp - 0x24], 0x5fe96f77
mov dword [ebp - 0x24], 0xcd890f6d
mov dword [ebp - 0x24], 0x2fd17ba7
mov dword [ebp - 0x24], 7
mov dword [ebp - 0x14], ebx
jmp 0x1002567c
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x10c], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x1002566f
mov dword [ebp - 0x2c], ebx
jmp 0x10025690
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x44], eax
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 9
jge 0x10025687
inc dword [ebp - 0x38]
jmp 0x100256c3
mov dword [ebp - 0x14], 0xd5f5ab95
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x14], 0xd012cd0a
mov dword [ebp - 0x14], ebx
jmp 0x100256bd
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x44], eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x1c
je 0x100256b1
lea ecx, [ebp - 0xa0]
call fcn.1000ffb5
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x44], 0xb5e35254
mov dword [ebp - 0x18], 9
mov dword [ebp - 0x68], 0x60edac7a
mov dword [ebp - 0x14], ebx
jmp 0x100256f9
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x60], 0x11c15747
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x100256eb
mov dword [ebp - 0x18], 0xffffffe7
cmp dword [ebp - 0x18], 0xfffffff7
push esi
jge 0x100258dd
mov dword [ebp - 0x28], ebx
lea ecx, [ebp - 0xac]
call fcn.1000ff33
mov byte [ebp - 4], 1
mov dword [ebp - 0x14], ebx
jmp 0x1002573b
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xac]
mov dword [eax + ecx*4], 0xc1543f36
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 1
jl 0x10025728
mov dword [ebp - 0x28], 0x17
cmp dword [ebp - 0x28], 0xfffffff5
jl 0x100258c4
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x14], 0xc3cbaa6f
mov dword [ebp - 0x1c], ebx
cmp dword [ebp - 0x1c], 1
jg 0x100258a3
mov dword [ebp - 0x14], 0xfffffffd
xor ecx, ecx
mov dword [ebp - 0x30], 0xd1532d49
mov dword [ebp - 0x50], 9
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp eax, 4
setl cl
add ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x28]
jne 0x10025797
mov eax, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x68]
cmp dword [ebp - 0x60], ebx
je 0x100257ac
cmp dword [ebp - 0x18], ebx
je 0x100257ac
xor ecx, ecx
inc ecx
jmp 0x100257ae
mov ecx, ebx
mov eax, dword [ebp - 0xac]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x14]
add eax, ecx
mov ecx, dword [ebp - 0x30]
imul ecx, eax
add ecx, 0x4ce3095f
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], 1
jg 0x1002589b
mov dword [ebp - 0x24], 0xa6df
mov dword [ebp - 0x30], 0x3f77
cmp dword [ebp - 0x30], 0x4140
jle 0x1002586d
xor esi, esi
mov edi, ebx
inc esi
mov eax, ebx
mov dword [ebp - 0x3c], ebx
mov ecx, eax
mov dword [ebp - 0x4c], 0x5d2f
mov dword [ebp - 0x48], ecx
mov eax, ebx
mov dword [ebp - 0x38], ebx
add eax, ecx
lea ecx, [ebp - 0x100]
or eax, edi
cdq
push edx
push eax
call fcn.1000d1e0
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10025828
mov eax, dword [eax]
push eax
call fcn.1004bc16
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x100]
call fcn.100102bf
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x48]
inc eax
mov dword [ebp - 0x38], eax
cmp eax, 0x199
jl 0x1002580c
dec ecx
dec dword [ebp - 0x4c]
mov dword [ebp - 0x48], ecx
jne 0x10025807
mov eax, dword [ebp - 0x3c]
inc eax
mov dword [ebp - 0x3c], eax
cmp eax, 0x1d5d
jl 0x100257fb
inc edi
cmp edi, 0x51b7
jl 0x100257f6
cmp dword [ebp - 0x50], ebx
jne 0x1002589b
cmp dword [ebp - 0x30], 0x3f46
jge 0x10025886
push 0x100095ac
call fcn.1004bc16
pop ecx
mov dword [ebp - 4], 1
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x30], eax
inc dword [ebp - 0x14]
jmp 0x100257d0
inc dword [ebp - 0x1c]
jmp 0x1002575f
mov byte [ebp - 0x31], bl
cmp byte [ebp - 0x31], 0
push 0xffffffffffffffff
pop edi
je 0x100258bc
push 0x140e
push 0x1d
call dword [sym.imp.USER32.dll_SetCaretPos]
dec dword [ebp - 0x28]
jmp 0x10025748
lea ecx, [ebp - 0xac]
mov byte [ebp - 4], bl
call fcn.1000ffb5
inc dword [ebp - 0x18]
xor esi, esi
inc esi
jmp 0x10025706
mov dword [ebp - 0x14], 8
lea ecx, [ebp - 0x8c]
mov dword [ebp - 0x18], 0x9ea7
call fcn.1000ff33
mov byte [ebp - 4], 4
lea ecx, [ebp - 0xb8]
mov dword [ebp - 0x30], edi
push esi
call fcn.1000ff33
mov dword [ebp - 0x3c], 0x85b3d925
mov dword [ebp - 0x24], 0xfffffff8
mov dword [ebp - 0x50], 0x4a788afb
mov dword [ebp - 0x1c], ebx
jmp 0x10025932
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x8c]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x10025923
mov dword [ebp - 0x1c], ebx
jmp 0x1002594f
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0xb8]
mov dword [eax + ecx*4], 0xa0cec519
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x1002593c
mov eax, dword [ebp - 0x18]
add eax, dword [ebp - 0x14]
jne 0x10025963
mov ecx, ebx
cmp dword [ebp - 0x14], ebx
je 0x10025965
mov ecx, esi
mov eax, dword [ebp - 0x8c]
xor edx, edx
mov dword [eax], ecx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x8c]
cmp dword [eax], ecx
setg dl
mov dword [ebp - 0x30], edx
xor edx, edx
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x8c]
cmp ecx, dword [eax]
mov eax, dword [ebp - 0x18]
setle dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0xb8]
setle cl
xor edx, edx
cmp ecx, dword [eax]
mov eax, dword [ebp - 0x3c]
setne dl
xor ecx, ecx
sub edx, 0x7ea34311
cmp edx, eax
mov eax, dword [ebp - 0x18]
sete cl
xor edx, edx
test ecx, ecx
sets dl
xor ecx, ecx
cmp edx, eax
mov eax, 0xffff
setne cl
imul ecx, dword [ebp - 0x3c]
sub ecx, dword [ebp - 0x24]
cmp eax, ecx
sbb eax, eax
xor edx, edx
inc eax
cmp eax, 9
mov eax, dword [ebp - 0x14]
setge dl
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [ebp - 0x50], ecx
lea ecx, [ebp - 0xb8]
call fcn.1000ffb5
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], bl
call fcn.1000ffb5
mov dword [ebp - 0x18], ebx
jmp 0x10025a28
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x80]
mov dword [eax + ecx*4], 0xfd03b15a
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x10025a18
cmp dword [ebp - 0x20], ebx
je 0x10025a6f
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x80]
neg ecx
mov dword [ebp - 0x40], 0xc18ab9c2
sbb ecx, ecx
neg ecx
mov dword [eax], ecx
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
dec edx
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setge cl
add ecx, dword [ebp - 0x20]
je 0x10025a66
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]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x20], eax
jl 0x10025a80
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x28], 0x8ae0512e
mov dword [ebp - 0x48], 5
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x50], 4
mov dword [ebp - 0x24], 0xdc67586e
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x14], 0x8d320cd5
mov dword [ebp - 0x3c], 0x24d5
cmp dword [ebp - 0x3c], 0x25c5
jle 0x10025b27
mov ecx, ebx
mov dword [ebp - 0x18], ebx
mov edi, ebx
mov eax, ebx
mov dword [ebp - 0x30], ebx
add eax, edi
xor eax, ecx
lea ecx, [ebp - 0x124]
cdq
push edx
push eax
call fcn.1000d1e0
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10025aea
mov eax, dword [eax]
push eax
call fcn.1004bc16
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x124]
call fcn.100102bf
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x30], eax
cmp eax, 0x25d9
jl 0x10025ace
inc edi
cmp edi, 0x5660
jl 0x10025ac9
inc ecx
mov dword [ebp - 0x18], ecx
cmp ecx, 0x4ec7
jl 0x10025ac7
or edi, 0xffffffff
mov dword [ebp - 0x1c], ebx
jmp 0x10025b39
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0xd0], ebx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x10025b2c
cmp dword [ebp - 0x3c], 0x229c
jge 0x10025b53
push 0x100095e8
call fcn.1004bc16
pop ecx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x1c], ebx
jmp 0x10025b6c
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0xdc], 0xfffffffb
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x10025b5b
mov dword [ebp - 0x2c], 5
cmp dword [ebp - 0x2c], 0xffffffe3
jge 0x10025cb6
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x3c], 0xdfe
cmp dword [ebp - 0x3c], 0x114a
jle 0x10025be3
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov ecx, ebx
mov dword [ebp - 0x18], ebx
mov edi, ebx
mov eax, ebx
mov dword [ebp - 0x30], ebx
add eax, edi
or eax, ecx
mov ecx, 0x10609cb8
cdq
push edx
push eax
call fcn.1000fe1e
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x30], eax
cmp eax, 0x1c04
jl 0x10025ba9
inc edi
cmp edi, 0x6486
jl 0x10025ba4
inc ecx
mov dword [ebp - 0x18], ecx
cmp ecx, 0x479b
jl 0x10025ba2
or edi, 0xffffffff
mov byte [ebp - 4], 7
cmp dword [ebp - 0x3c], 0xd77
jge 0x10025c23
mov edx, 0x10009620
mov ecx, 0x10609cb8
call fcn.100118c8
jmp 0x10025c23
mov dword [ebp - 4], ebx
mov dword [ebp - 0x18], ebx
jmp 0x10025c3c
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xe8], 0xfffffffa
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x10025c2b
mov edx, dword [ebp - 0x28]
neg edx
mov dword [ebp - 0x30], edi
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x80]
sbb edx, edx
neg ecx
xor ebx, ebx
neg edx
cmp ecx, dword [eax]
setle bl
lea eax, [edx - 0xcede]
xor ecx, ecx
mov dword [ebp - 0x24], ebx
cmp eax, 0x6b93dced
setl cl
xor ebx, ebx
imul eax, ecx, 0x2de4
cmp eax, 0xf8f0b53c
mov eax, dword [ebp - 0x2c]
setne bl
xor ecx, ecx
cmp eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x80]
setg cl
xor edx, edx
cmp ecx, ebx
setge dl
xor ebx, ebx
cmp edx, dword [eax]
mov eax, dword [ebp - 0xe8]
setle bl
xor ecx, ecx
cmp ebx, eax
setg cl
mov dword [ebp - 0x48], ecx
dec dword [ebp - 0x2c]
xor ebx, ebx
jmp 0x10025b79
mov eax, dword [ebp - 0x48]
xor ecx, ecx
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
sub eax, 0x38e4a6a7
imul eax, dword [ebp - 0x38]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0xd8]
mov eax, dword [ebp - 0x28]
test eax, eax
setle cl
cmp dword [ebp - 0xcc], ecx
je 0x10025d04
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x40], esi
cmp dword [ebp - 0x40], ebx
jl 0x10025d22
call fcn.10025119
dec dword [ebp - 0x40]
jns 0x10025d18
lea ecx, [ebp - 0x80]
mov dword [ebp - 4], edi
call fcn.1000ffb5
mov eax, dword [ebp - 0x64]
mov ecx, 0x3e8
cdq
idiv ecx
mov ecx, dword [ebp - 0x58]
mov esi, edx
mov edi, eax
call fcn.100250a7
mov ecx, dword [ebp - 0xc]
add eax, esi
add eax, edi
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret