Function at 0x1002f3f4
Capabilities:
Get common file path

Disassembly:
mov eax, 0x1005d373
call fcn.1005c3e4
sub esp, 0xe8
cmp byte [ebp + 0x14], 0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
je 0x1002f433
call fcn.1002dbec
push 0xa
pop ecx
xor edx, edx
div ecx
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0xc]
add dx, word [eax]
movzx eax, dx
push eax
call fcn.1002a15c
jmp 0x1002fd72
mov edi, dword [ebp + 0x10]
lea eax, [ebp + 8]
xor ebx, ebx
mov dword [ebp - 0x20], 0x8bac04ee
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x18], ebx
jmp 0x1002f45b
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x30], 0xfffffff7
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 1
jl 0x1002f44d
mov dword [ebp - 0x2c], 0x1a9d
cmp dword [ebp - 0x2c], 0x1b21
jle 0x1002f49f
mov esi, ebx
mov dword [ebp - 0x28], ebx
mov edi, esi
mov esi, 0x5590
mov eax, edi
mov ecx, 0x100758b8
cdq
push edx
push eax
call fcn.10004429
dec edi
dec esi
jne 0x1002f47d
mov esi, dword [ebp - 0x28]
inc esi
mov dword [ebp - 0x28], esi
cmp esi, 0x3143
jl 0x1002f476
mov dword [ebp - 0x30], ebx
jmp 0x1002f4ad
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x20], eax
dec dword [ebp - 0x30]
cmp dword [ebp - 0x30], 0xffffffec
jle 0x1002f4a4
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x2c], 0x1a0e
jge 0x1002f4ce
mov edx, str.uqwu_pray_rgoaun_rgzytmis_oqyxjx_sgromoh_cecnj_ezrhlrsmx_mzoi_xnbtcydy_zixmtci_fsanrrb_obnwi_xnvkaa
mov ecx, 0x100758b8
call fcn.100067d6
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x20], 0xf
jne 0x1002f6a7
mov dword [ebp - 0x18], 0xfffffffa
mov dword [ebp - 0x34], 0xfc1c5751
mov dword [ebp - 0x1c], 0x57a0
cmp dword [ebp - 0x1c], 0x5946
jle 0x1002f575
mov edi, ebx
mov dword [ebp - 0x2c], ebx
mov esi, ebx
mov dword [ebp - 0x28], ebx
mov ecx, esi
mov dword [ebp - 0x34], edi
mov esi, edi
mov dword [ebp - 0x48], ebx
shl esi, cl
mov edi, ebx
mov ecx, edi
mov eax, esi
shl eax, cl
lea ecx, [ebp - 0xdc]
cdq
push edx
push eax
call fcn.10001a65
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1002f533
mov eax, dword [eax]
push eax
call fcn.100442bc
pop ecx
push ebx
push 1
lea ecx, [ebp - 0xdc]
call fcn.10004a91
inc edi
cmp edi, 0x259b
jl 0x1002f515
mov esi, dword [ebp - 0x28]
mov edi, dword [ebp - 0x2c]
inc esi
mov dword [ebp - 0x28], esi
cmp esi, 0x686f
jl 0x1002f507
inc edi
mov dword [ebp - 0x2c], edi
cmp edi, 0x778b
jl 0x1002f502
call dword [sym.imp.KERNEL32.dll_GetACP]
mov dword [ebp - 0x18], ebx
jmp 0x1002f5b3
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x50], 8
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 1
jl 0x1002f5a5
cmp dword [ebp - 0x1c], 0x5466
jge 0x1002f5cd
push str.nctpvy_xyhxc_xabq_kwjrb_izcgtsd_tnwdm_qjvhlkx
call fcn.100442bc
pop ecx
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x30], 0xffffffff
mov dword [ebp - 0x18], ebx
jmp 0x1002f696
mov dword [ebp - 0x1c], 1
mov dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 0x1c], ebx
jmp 0x1002f64e
mov dword [ebp - 0x28], 0x8b166c19
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0x30]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x30], ecx
test ecx, ecx
je 0x1002f61a
mov eax, dword [ebp - 0x1c]
add eax, dword [ebp - 0x18]
je 0x1002f61a
xor ebx, ebx
inc ebx
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp ebx, 0xfffffffd
setne cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x20]
setne dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [ebp - 0x50]
setl bl
xor ecx, ecx
cmp ebx, eax
setne cl
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x2c], eax
inc dword [ebp - 0x1c]
xor ebx, ebx
cmp dword [ebp - 0x1c], ebx
jle 0x1002f5f3
cmp dword [ebp - 0x50], ebx
je 0x1002f66a
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x20], 0x6e2c9bf5
jg 0x1002f673
cmp dword [ebp - 0x20], ebx
jne 0x1002f673
mov eax, ebx
jmp 0x1002f676
xor eax, eax
inc eax
mov ecx, dword [ebp - 0x50]
xor edx, edx
imul ecx, eax
mov eax, dword [ebp - 0x2c]
cmp ecx, eax
mov eax, dword [ebp - 0x30]
setl dl
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [ebp - 0x34], ecx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jle 0x1002f5e0
inc dword [ebp - 0x20]
jmp 0x1002f4d5
xor eax, eax
mov dword [ebp - 0x80], 7
mov dword [ebp - 0x84], ebx
mov word [ebp - 0x94], ax
push 4
pop ecx
mov dword [ebp - 4], ecx
mov dword [ebp - 0x18], 0xccdd
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x34], 0xffffffff
mov dword [ebp - 0x1c], ebx
jmp 0x1002f6ea
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0xac], 0xffffffff
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ecx
jl 0x1002f6d9
mov dword [ebp - 0x1c], ebx
jmp 0x1002f702
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x5c], 0xffff
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 1
jl 0x1002f6f4
mov eax, dword [ebp - 0x18]
xor edx, edx
mov dword [ebp - 0xa8], eax
mov ecx, dword [ebp - 0x18]
add ecx, dword [ebp - 0x18]
cmp edx, eax
sbb eax, eax
neg eax
imul ecx, eax
neg ecx
je 0x1002f730
cmp dword [ebp - 0x5c], ebx
je 0x1002f730
xor eax, eax
inc eax
jmp 0x1002f732
mov eax, ebx
xor edx, edx
cmp eax, 0xffffffff
mov eax, dword [ebp - 0x5c]
setl dl
xor ecx, ecx
cmp edx, eax
setl cl
cmp ecx, dword [ebp - 0x18]
jg 0x1002f756
cmp dword [ebp - 0xac], ebx
je 0x1002f756
xor eax, eax
inc eax
jmp 0x1002f758
mov eax, ebx
push ecx
push dword [ebp - 0x58]
mov dword [ebp - 0x28], eax
mov dl, 1
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x94]
push ecx
push eax
call fcn.1002f0a3
mov dword [ebp - 0x20], 0xb3c692be
add esp, 0x10
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x28], 3
mov dword [ebp - 0x18], ebx
jmp 0x1002f79d
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x9c], ebx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x1002f790
cmp dword [ebp - 0x20], ebx
je 0x1002f7be
push ecx
push ecx
lea edx, [ebp - 0x3a]
mov byte [ebp - 0x3a], bl
mov cl, 1
call fcn.1002ea46
pop ecx
pop ecx
jmp 0x1002f858
xor ecx, ecx
inc ecx
push 4
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x18], ebx
pop esi
cmp dword [ebp - 0x18], ecx
jge 0x1002f7db
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x54], esi
inc dword [ebp - 0x18]
jmp 0x1002f7ca
mov dword [ebp - 0x20], ebx
jmp 0x1002f812
mov byte [ebp - 0x21], bl
cmp byte [ebp - 0x21], 0
je 0x1002f7f1
call fcn.1002e9db
xor ecx, ecx
inc ecx
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp + eax*4 - 0x9c]
add eax, 0x5526feaf
cmp esi, eax
sbb eax, eax
neg eax
mov dword [ebp - 0x2c], eax
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ecx
jle 0x1002f7e0
imul eax, dword [ebp - 0x34], 0x99b9
xor ecx, ecx
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x1c]
imul edx, eax
mov eax, dword [ebp - 0x54]
cmp edx, eax
setle cl
xor eax, eax
test ecx, ecx
setle al
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0xe87122a2
sbb eax, eax
inc eax
imul eax, dword [ebp - 0x28]
mov dword [ebp - 0x54], eax
mov byte [ebp - 0x21], bl
cmp byte [ebp - 0x21], 0
je 0x1002f86d
push 0x693
push ebx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
mov eax, dword [0x10076b74]
test al, 1
jne 0x1002f897
or eax, 1
mov dword [0x10076b74], eax
push 0x70f5
mov byte [ebp - 4], 5
call fcn.1003d8b9
pop ecx
mov word [0x10076b60], ax
mov byte [ebp - 4], 4
mov dword [ebp - 0x18], 0x6605
cmp dword [ebp - 0x18], 0x69a7
jle 0x1002f8fb
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov dword [ebp - 0x2c], ebx
mov edi, ebx
mov dword [ebp - 0x28], 0x725b
mov esi, ebx
mov ecx, esi
mov eax, edi
sar eax, cl
mov ecx, 0x100758b8
cdq
push edx
push eax
call fcn.10004429
inc esi
cmp esi, 0xaf8
jl 0x1002f8c9
mov esi, dword [ebp - 0x2c]
add edi, esi
dec dword [ebp - 0x28]
jne 0x1002f8c7
inc esi
mov dword [ebp - 0x2c], esi
cmp esi, 0x3bdc
jl 0x1002f8be
mov byte [ebp - 4], 6
cmp dword [ebp - 0x18], 0x647d
jge 0x1002f93b
mov edx, str.scmlqsox_bwxgz_mzed_brfcnajxr_faobnvae_txcyksljr_tbvvmkfxu_qqfnvh_cis_apw_bdoe
mov ecx, 0x100758b8
call fcn.100067d6
jmp 0x1002f93b
mov dword [ebp - 4], 4
mov dword [ebp - 0x20], 0x42c70bb7
mov dword [ebp - 0x18], ebx
jmp 0x1002f95f
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xc4], 6
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x1002f94e
mov byte [ebp - 0x21], bl
cmp byte [ebp - 0x21], 0
je 0x1002f999
push 0x3685
push 0x3309
push ebx
push 0x7d13
push 1
push 0x7747
push 1
mov edx, 0x7d5d
mov ecx, 0x5980
call fcn.1002ed75
add esp, 0x1c
mov dword [ebp - 0x20], 2
cmp dword [ebp - 0x20], ebx
jl 0x1002f9f6
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x18], 2
cmp dword [ebp - 0x18], ebx
jl 0x1002f9f1
mov byte [ebp - 0x21], bl
cmp byte [ebp - 0x21], 0
je 0x1002f9ec
push 0x76ca
push 0x4b30
push 0x1ffa
push 0x58d
push 0x2ff3
push ebx
push 1
mov dl, 1
mov ecx, 0x309d
call fcn.1002fe88
add esp, 0x1c
dec dword [ebp - 0x18]
jns 0x1002f9b8
dec dword [ebp - 0x20]
jns 0x1002f9a5
mov eax, dword [0x10076b74]
test al, 2
jne 0x1002fa20
or eax, 2
mov dword [0x10076b74], eax
push 0xf99c
mov byte [ebp - 4], 8
call fcn.1003d8b9
pop ecx
mov word [0x10076b6c], ax
mov byte [ebp - 4], 4
push 0x1a
mov esi, ebx
pop edi
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x34], esi
cmp esi, dword [eax]
jae 0x1002fce5
mov dword [ebp - 0x1c], 8
mov dword [ebp - 0x44], 0xcb03
mov dword [ebp - 0x28], 0xb000e2e4
mov dword [ebp - 0x4c], 1
mov dword [ebp - 0x60], 0x8323
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x18], ebx
jmp 0x1002fa73
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x6c], 1
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x1002fa65
mov dword [ebp - 0x1c], 0xa8c6a53d
cmp dword [ebp - 0x1c], ebx
je 0x1002fac3
mov dword [ebp - 0x1c], 0xf
jmp 0x1002faa8
lea eax, [ebp - 0x3b]
mov byte [ebp - 0x3b], bl
push 1
push eax
mov dl, 1
mov ecx, 0x4437
call fcn.1002ec62
dec dword [ebp - 0x1c]
pop ecx
pop ecx
cmp dword [ebp - 0x1c], 0xffffffeb
jge 0x1002fa8e
lea eax, [ebp - 0x44]
push eax
push ecx
push ecx
mov cl, 1
call fcn.1002efe2
add esp, 0xc
jmp 0x1002fc32
mov dword [ebp - 0x38], 0x3809d010
mov dword [ebp - 0x40], 0xfffffffa
mov dword [ebp - 0x18], ebx
jmp 0x1002fae4
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x7c], 0x5732aa6
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x1002fad6
mov dword [ebp - 0x38], 0x5613717b
mov ecx, dword [ebp - 0x38]
inc ecx
neg ecx
sbb ecx, ecx
dec ecx
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp ecx, 0x283066c9
setl al
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x40], 0x3d32
cmp dword [ebp - 0x40], 0x3def
jle 0x1002fbb5
mov eax, ebx
mov dword [ebp - 0x2c], ebx
mov esi, ebx
mov dword [ebp - 0x18], ebx
mov ecx, esi
mov edi, ebx
shl eax, cl
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x4c], eax
mov ecx, edi
mov dword [ebp - 0x1c], eax
mov edi, eax
mov esi, ebx
shl edi, cl
mov eax, esi
lea ecx, [ebp - 0xf4]
xor eax, edi
cdq
push edx
push eax
call fcn.10001a65
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1002fb5e
mov eax, dword [eax]
push eax
call fcn.100442bc
pop ecx
push ebx
push 1
lea ecx, [ebp - 0xf4]
call fcn.10004a91
inc esi
cmp esi, 0x2302
jl 0x1002fb42
mov edi, dword [ebp - 0x38]
mov eax, dword [ebp - 0x4c]
inc edi
mov dword [ebp - 0x38], edi
cmp edi, 0x1deb
jl 0x1002fb37
mov esi, dword [ebp - 0x18]
mov eax, dword [ebp - 0x2c]
inc esi
mov dword [ebp - 0x18], esi
cmp esi, 0x6063
jl 0x1002fb2b
inc eax
mov dword [ebp - 0x2c], eax
cmp eax, 0x6e65
jl 0x1002fb26
mov esi, dword [ebp - 0x34]
push 0x1a
pop edi
mov dword [ebp - 0x1c], 3
cmp dword [ebp - 0x1c], ebx
jl 0x1002fc17
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x7c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x7c]
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x28], ebx
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x7c]
cmp eax, 1
mov eax, dword [ebp - 0x1c]
setge cl
xor edx, edx
mov eax, dword [ebp + eax*4 - 0x7c]
cmp ecx, eax
mov eax, dword [ebp - 0x1c]
setg dl
sub edx, dword [ebp + eax*4 - 0x7c]
neg edx
sbb edx, edx
inc edx
mov dword [ebp - 0x4c], edx
cmp dword [ebp - 0x44], ebx
jne 0x1002fc17
dec dword [ebp - 0x1c]
jns 0x1002fbc1
cmp dword [ebp - 0x40], 0x3cfe
jge 0x1002fc2b
push str.tiqevrrwy_dbmrdxwbs_aksptwm_letfht_wyqit_gvov_gneq_mso_llzrppme_gzhdum_rjyl_oauumm
call fcn.100442bc
pop ecx
mov dword [ebp - 4], 4
mov eax, dword [ebp - 0x20]
inc dword [ebp - 0x20]
cmp eax, 0xffff
jb 0x1002fc44
xor ecx, ecx
inc ecx
jmp 0x1002fc46
mov ecx, ebx
cmp dword [ebp - 0x64], 0xffff
sbb eax, eax
inc eax
imul eax, ecx
test eax, eax
jne 0x1002fc6d
mov ecx, dword [ebp - 0x60]
xor edx, edx
mov eax, dword [ebp - 0x28]
cmp ecx, eax
setl dl
cmp edx, dword [ebp - 0x20]
jl 0x1002fc6d
mov ecx, ebx
jmp 0x1002fc70
xor ecx, ecx
inc ecx
mov eax, dword [ebp - 0x48]
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x64]
setge dl
xor ecx, ecx
cmp edx, eax
setge cl
cmp ecx, 5
jb 0x1002fc92
cmp dword [ebp - 0x6c], ebx
jne 0x1002fc92
mov ecx, ebx
jmp 0x1002fc95
xor ecx, ecx
inc ecx
mov eax, dword [ebp - 0x1c]
xor edx, edx
cmp eax, ecx
mov eax, dword [ebp - 0x48]
setne dl
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0x1c], ecx
call fcn.1002dbec
push 0x24
xor edx, edx
pop ecx
div ecx
mov eax, edx
cmp eax, edi
jge 0x1002fcc7
movzx edx, word [0x10076b60]
jmp 0x1002fcd1
cdq
idiv edi
movzx eax, word [0x10076b6c]
add edx, eax
lea ecx, [ebp - 0x94]
push edx
call fcn.1002a15c
inc esi
jmp 0x1002fa25
lea eax, [ebp - 0x39]
mov dword [ebp - 0x20], 0xd5e48d32
push eax
push 0x3956
push 1
push 0x20f2
push 1
push 0x4565
mov byte [ebp - 0x39], bl
mov edx, 0x2b66
push 1
mov ecx, 0x52f2
call fcn.1002ed75
add esp, 0x1c
mov dword [ebp - 0x20], ebx
jmp 0x1002fd46
mov dword [ebp - 0x18], ebx
jmp 0x1002fd35
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xb8], 0x3c8fc558
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x1002fd24
cmp dword [ebp - 0xb8], ebx
jne 0x1002fd4c
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0xe
jge 0x1002fd1f
mov edi, dword [ebp + 0x10]
lea eax, [ebp - 0x94]
cmp edi, eax
je 0x1002fd64
push 0xffffffffffffffff
push ebx
push eax
mov ecx, edi
call fcn.1000577e
push ebx
push 1
lea ecx, [ebp - 0x94]
call fcn.10004b5d
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret