Function at 0x10003d80
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10024594
mov eax, dword fs:[0]
push eax
sub esp, 0x4fc
mov eax, dword [0x1002f124]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, dword [ebp + 8]
lea eax, [ebp - 0x420]
mov esi, dword [ebp + 0xc]
push eax
push 0
push 0
push 0x1a
push 0
mov dword [ebp - 0x4a4], edi
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jns 0x10003dfe
xor eax, eax
mov dword [edi], 0
push eax
mov dword [edi + 0x10], 0
mov ecx, edi
mov dword [edi + 0x14], 7
push 0x100263b8
mov word [edi], ax
call fcn.10006760
jmp 0x100043b8
push esi
lea ecx, [ebp - 0x508]
call fcn.100022d0
mov ebx, eax
xor eax, eax
mov dword [ebp - 0x4d8], 0
lea ecx, [ebp - 0x420]
mov dword [ebp - 4], 0
mov dword [ebp - 0x4c8], 0
lea edx, [ecx + 2]
mov dword [ebp - 0x4c4], 7
mov word [ebp - 0x4d8], ax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10003e43
sub ecx, edx
lea eax, [ebp - 0x420]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x4d8]
call fcn.10006760
push 6
push str.TEMP_
lea ecx, [ebp - 0x4d8]
mov byte [ebp - 4], 1
call fcn.100064d0
mov esi, eax
mov dword [ebp - 0x4f0], 0
push 0x18
lea eax, [ebp - 0x4f0]
mov dword [ebp - 0x4e0], 0
push esi
push eax
mov dword [ebp - 0x4dc], 0
call fcn.10018bf0
xor eax, eax
mov dword [esi + 0x10], 0
add esp, 0xc
mov dword [esi + 0x14], 7
mov word [esi], ax
push ebx
lea eax, [ebp - 0x4f0]
mov byte [ebp - 4], 2
push eax
push dword [ebp - 0x4a4]
lea ecx, [ebp - 0x438]
call fcn.100023a0
lea ecx, [ebp - 0x4f0]
call fcn.10002fa0
lea ecx, [ebp - 0x4d8]
call fcn.10002fa0
lea ecx, [ebp - 0x508]
mov byte [ebp - 4], 6
call fcn.10002fa0
cmp dword [ebp - 0x424], 8
lea eax, [ebp - 0x438]
push dword [ebp - 0x428]
cmovae eax, dword [ebp - 0x438]
xor ecx, ecx
mov dword [ebp - 0x4a0], 0
mov word [ebp - 0x4a0], cx
lea ecx, [ebp - 0x4a0]
push eax
mov dword [ebp - 0x490], 0
mov dword [ebp - 0x48c], 7
call fcn.10006760
cmp dword [ebp - 0x48c], 8
lea ecx, [ebp - 0x488]
push 0xffffffffffffffff
push 3
lea eax, [ebp - 0x4a0]
mov byte [ebp - 4], 7
cmovae eax, dword [ebp - 0x4a0]
push ecx
push eax
mov dword [ebp - 0x4b4], 0
call fcn.100167cd
lea ecx, [ebp - 0x488]
mov dword [ebp - 0x4ac], eax
push ecx
push eax
lea ecx, [ebp - 0x4b4]
call fcn.10005620
mov eax, dword [ebp - 0x4ac]
mov ecx, dword [ebp - 0x4b4]
test ecx, ecx
mov dword [ebp - 0x4a8], eax
mov dword [ebp - 0x4a4], 0x1002f008
je 0x10004062
cmp ecx, 1
setne bl
lea ecx, [ebp - 0x4a0]
mov byte [ebp - 4], 6
call fcn.10002fa0
test bl, bl
je 0x10004071
cmp dword [ebp - 0x424], 8
lea eax, [ebp - 0x438]
push dword [ebp - 0x428]
cmovae eax, dword [ebp - 0x438]
xor ecx, ecx
mov dword [ebp - 0x4a0], 0
mov word [ebp - 0x4a0], cx
lea ecx, [ebp - 0x4a0]
push eax
mov dword [ebp - 0x490], 0
mov dword [ebp - 0x48c], 7
call fcn.10006760
lea eax, [ebp - 0x4a0]
mov byte [ebp - 4], 8
push eax
call fcn.100043f0
add esp, 4
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x4a0]
mov bl, al
call fcn.10002fa0
test bl, bl
jne 0x10004071
push 0x100263b8
mov ecx, edi
call fcn.10002350
jmp 0x100043ad
xor bl, bl
test eax, eax
jne 0x100043d6
jmp 0x10003fc5
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10004090
sub ecx, edx
mov dword [ebp - 0x4a0], 0
xor eax, eax
sar ecx, 1
mov word [ebp - 0x4a0], ax
lea eax, [ebp - 0x218]
push ecx
push eax
lea ecx, [ebp - 0x4a0]
mov dword [ebp - 0x490], 0
mov dword [ebp - 0x48c], 7
call fcn.10006760
cmp dword [ebp - 0x48c], 8
lea ebx, [ebp - 0x4a0]
mov eax, dword [ebp - 0x490]
cmovae ebx, dword [ebp - 0x4a0]
mov byte [ebp - 4], 9
lea esi, [ebx + eax*2]
push esi
push ebx
call fcn.10004eb0
add esp, 8
cmp eax, esi
je 0x10004155
movzx ecx, word [eax]
cmp ecx, 0x5c
je 0x10004115
cmp ecx, 0x2f
jne 0x10004120
add eax, 2
cmp eax, esi
jne 0x10004108
jmp 0x10004155
movzx edx, word [esi - 2]
cmp edx, 0x5c
je 0x10004137
cmp edx, 0x2f
je 0x10004137
add esi, 0xfffffffe
cmp eax, esi
jne 0x10004120
jmp 0x10004155
cmp eax, esi
je 0x10004155
nop dword [eax + eax]
movzx edx, word [esi - 2]
cmp edx, 0x5c
je 0x1000414e
cmp edx, 0x2f
jne 0x10004155
add esi, 0xfffffffe
cmp eax, esi
jne 0x10004140
sub esi, ebx
mov dword [ebp - 0x468], 0
sar esi, 1
lea ecx, [ebp - 0x468]
push esi
xor eax, eax
mov dword [ebp - 0x458], 0
push ebx
mov dword [ebp - 0x454], 7
mov word [ebp - 0x468], ax
call fcn.10006760
lea ecx, [ebp - 0x4a0]
mov byte [ebp - 4], 0xb
call fcn.10002fa0
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100041a5
sub ecx, edx
mov dword [ebp - 0x4c0], 0
xor eax, eax
sar ecx, 1
mov word [ebp - 0x4c0], ax
lea eax, [ebp - 0x218]
push ecx
push eax
lea ecx, [ebp - 0x4c0]
mov dword [ebp - 0x4b0], 0
mov dword [ebp - 0x4ac], 7
call fcn.10006760
cmp dword [ebp - 0x4ac], 8
lea ecx, [ebp - 0x4c0]
mov eax, dword [ebp - 0x4b0]
cmovae ecx, dword [ebp - 0x4c0]
mov byte [ebp - 4], 0xc
lea esi, [ecx + eax*2]
push esi
push ecx
call fcn.10004e60
add esp, 8
mov dword [ebp - 0x450], 0
sub esi, eax
mov dword [ebp - 0x440], 0
xor ecx, ecx
sar esi, 1
mov word [ebp - 0x450], cx
lea ecx, [ebp - 0x450]
push esi
push eax
mov dword [ebp - 0x43c], 7
call fcn.10006760
lea ecx, [ebp - 0x4c0]
mov byte [ebp - 4], 0xe
call fcn.10002fa0
cmp dword [ebp - 0x424], 8
lea eax, [ebp - 0x438]
push dword [ebp - 0x428]
cmovae eax, dword [ebp - 0x438]
xor ecx, ecx
mov dword [ebp - 0x4a0], 0
mov word [ebp - 0x4a0], cx
lea ecx, [ebp - 0x4a0]
push eax
mov dword [ebp - 0x490], 0
mov dword [ebp - 0x48c], 7
call fcn.10006760
lea eax, [ebp - 0x4a0]
mov byte [ebp - 4], 0xf
push eax
lea eax, [ebp - 0x468]
push eax
call fcn.10003850
add esp, 8
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x4a0]
mov bl, al
call fcn.10002fa0
test bl, bl
jne 0x10004307
xor eax, eax
mov dword [edi], 0
push eax
mov dword [edi + 0x10], 0
mov ecx, edi
mov dword [edi + 0x14], 7
push 0x100263b8
mov word [edi], ax
call fcn.10006760
jmp 0x10004397
cmp dword [ebp - 0x424], 8
lea eax, [ebp - 0x438]
push dword [ebp - 0x428]
cmovae eax, dword [ebp - 0x438]
xor ecx, ecx
mov dword [ebp - 0x4a0], 0
mov word [ebp - 0x4a0], cx
lea ecx, [ebp - 0x4a0]
push eax
mov dword [ebp - 0x490], 0
mov dword [ebp - 0x48c], 7
call fcn.10006760
lea eax, [ebp - 0x450]
mov byte [ebp - 4], 0x10
push eax
lea eax, [ebp - 0x4a0]
push eax
lea eax, [ebp - 0x480]
push eax
call fcn.10003470
add esp, 0xc
push eax
mov ecx, edi
mov byte [ebp - 4], 0x11
call fcn.100022d0
lea ecx, [ebp - 0x480]
call fcn.10002fa0
lea ecx, [ebp - 0x4a0]
call fcn.10002fa0
lea ecx, [ebp - 0x450]
call fcn.10002fa0
lea ecx, [ebp - 0x468]
call fcn.10002fa0
lea ecx, [ebp - 0x438]
call fcn.10002fa0
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10016b7b
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x4a0]
push eax
lea eax, [ebp - 0x4a8]
push eax
push str.exists
call fcn.10005cb0
int3