Function at 0x415f20
Capabilities:
Get common file path

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x49bc5b
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x230
mov eax, dword [0x4c0008]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x1c4], ecx
xor eax, eax
mov dword [ebp - 0x16c], eax
mov dword [ebp - 4], eax
lea eax, [ebp - 0x138]
push eax
push 0
push 0
push 0x28
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
mov esi, 1
test eax, eax
jne 0x416ac3
mov dword [ebp - 0x174], esi
nop word [eax + eax]
push 0x4e018
push 1
mov dword [ebp - 0x164], 0
call fcn.00477456
mov edi, eax
add esp, 8
mov dword [ebp - 0x170], edi
test edi, edi
je 0x415fe6
sub esp, 8
mov dword [edi + 0x50], 6
mov ecx, edi
call fcn.00405690
add esp, 8
test eax, eax
jne 0x415ff0
push edi
call fcn.004793d4
add esp, 4
mov dword [ebp - 0x170], 0
lea eax, [ebp - 0x164]
push eax
push esi
lea eax, [ebp - 0x210]
push eax
call fcn.00418f60
mov esi, eax
sub esp, 0x18
mov byte [ebp - 4], 1
mov ecx, esp
xorps xmm0, xmm0
push 0xc
movups xmmword [ecx], xmm0
push str.bXNDRCoIAwQ
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
call fcn.0040e870
lea eax, [ebp - 0x1f8]
push eax
call fcn.00417d90
mov edi, eax
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x138]
xorps xmm0, xmm0
mov dword [ebp - 0x180], 0
movups xmmword [ebp - 0x190], xmm0
mov dword [ebp - 0x17c], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x416068
sub ecx, edx
lea eax, [ebp - 0x138]
push ecx
push eax
lea ecx, [ebp - 0x190]
call fcn.0040e870
push edi
lea eax, [ebp - 0x190]
mov byte [ebp - 4], 3
push eax
push dword [ebp - 0x168]
lea ecx, [ebp - 0x1c0]
call fcn.0040ec50
mov edi, dword [ebp - 0x16c]
or edi, 1
push esi
lea eax, [ebp - 0x1c0]
mov byte [ebp - 4], 4
push eax
push dword [ebp - 0x168]
lea ecx, [ebp - 0x15c]
call fcn.0040ec50
or edi, 2
mov dword [ebp - 0x16c], edi
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x1ac]
cmp ecx, 0x10
jb 0x41610e
mov edx, dword [ebp - 0x1c0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x416104
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416b15
push ecx
push edx
call fcn.0041dd21
add esp, 8
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x17c]
cmp ecx, 0x10
jb 0x41614c
mov edx, dword [ebp - 0x190]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x416142
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416b15
push ecx
push edx
call fcn.0041dd21
add esp, 8
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x1e4]
cmp ecx, 0x10
jb 0x41618a
mov edx, dword [ebp - 0x1f8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x416180
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416b15
push ecx
push edx
call fcn.0041dd21
add esp, 8
mov dword [ebp - 0x1e8], 0
mov dword [ebp - 0x1e4], 0xf
mov byte [ebp - 0x1f8], 0
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x1fc]
cmp ecx, 0x10
jb 0x4161e3
mov edx, dword [ebp - 0x210]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4161d9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416b15
push ecx
push edx
call fcn.0041dd21
add esp, 8
sub esp, 0x18
mov dword [ebp - 0x200], 0
lea eax, [ebp - 0x15c]
mov dword [ebp - 0x1fc], 0xf
mov ecx, esp
mov byte [ebp - 0x210], 0
push eax
call fcn.0040e210
call fcn.0040f340
test eax, eax
je 0x416a71
mov edi, dword [ebp - 0x174]
lea esi, [ebp - 0x17]
mov ecx, edi
test edi, edi
jns 0x416269
neg ecx
mov dword [ebp - 0x160], ecx
mov eax, 0xcccccccd
dec esi
mul ecx
shr edx, 3
mov al, dl
mov cl, dl
shl al, 2
add cl, al
mov eax, dword [ebp - 0x160]
add cl, cl
sub al, cl
mov ecx, edx
add al, 0x30
mov byte [esi], al
mov eax, edx
mov dword [ebp - 0x160], eax
test eax, eax
jne 0x416233
dec esi
mov byte [esi], 0x2d
jmp 0x4162a0
mov dword [ebp - 0x160], ecx
nop
mov eax, 0xcccccccd
dec esi
mul ecx
shr edx, 3
mov al, dl
mov cl, dl
shl al, 2
add cl, al
mov eax, dword [ebp - 0x160]
add cl, cl
sub al, cl
mov ecx, edx
add al, 0x30
mov byte [esi], al
mov eax, edx
mov dword [ebp - 0x160], eax
test eax, eax
jne 0x416270
push ecx
lea eax, [ebp - 0x17]
push eax
push esi
lea ecx, [ebp - 0x1c0]
call fcn.0040ef30
sub esp, 0x18
mov byte [ebp - 4], 0xa
mov esi, esp
mov dword [ebp - 0x168], esp
mov dword [ebp - 0x160], esi
push 2
push 0x4b923c
push ecx
lea ecx, [ebp - 0x1c0]
call fcn.0040e030
xorps xmm0, xmm0
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
movups xmm0, xmmword [eax]
movups xmmword [esi], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [esi + 0x10], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov eax, dword [ebp - 0x16c]
or eax, 0xe00
mov dword [ebp - 0x16c], eax
sub esp, 0x18
mov byte [ebp - 4], 0xb
lea eax, [ebp - 0x15c]
mov ecx, esp
push eax
call fcn.0040e210
mov esi, dword [ebp - 0x170]
mov ecx, dword [ebp - 0x1c4]
push esi
mov byte [ebp - 4], 0xa
call fcn.00415bb0
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x1ac]
mov dword [ebp - 0x160], eax
cmp ecx, 0x10
jb 0x41638e
mov edx, dword [ebp - 0x1c0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x416384
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416b15
push ecx
push edx
call fcn.0041dd21
add esp, 8
cmp dword [ebp - 0x164], 1
jne 0x416a29
sub esp, 0x18
mov dword [ebp - 0x13c], 0
mov esi, esp
lea eax, [ebp - 0x164]
xorps xmm0, xmm0
movq qword [ebp - 0x144], xmm0
push eax
push edi
lea eax, [ebp - 0x240]
push eax
call fcn.00418f60
mov edi, eax
sub esp, 0x18
mov byte [ebp - 4], 0xc
mov ecx, esp
xorps xmm0, xmm0
push 0xc
movups xmmword [ecx], xmm0
push str.bXNDRCoIAwQ
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
call fcn.0040e870
lea eax, [ebp - 0x228]
push eax
call fcn.00417d90
mov dword [ebp - 0x164], eax
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x138]
xorps xmm0, xmm0
mov dword [ebp - 0x180], 0
movups xmmword [ebp - 0x190], xmm0
mov dword [ebp - 0x17c], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x416431
sub ecx, edx
lea eax, [ebp - 0x138]
push ecx
push eax
lea ecx, [ebp - 0x190]
call fcn.0040e870
mov byte [ebp - 4], 0xe
lea eax, [ebp - 0x190]
push dword [ebp - 0x164]
lea ecx, [ebp - 0x1c0]
push eax
push dword [ebp - 0x168]
call fcn.0040ec50
push edi
lea eax, [ebp - 0x1c0]
mov byte [ebp - 4], 0xf
push eax
push dword [ebp - 0x168]
mov ecx, esi
call fcn.0040ec50
or dword [ebp - 0x16c], 0x3000
lea eax, [ebp - 0x144]
push eax
call fcn.004195e0
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x1ac]
cmp ecx, 0x10
jb 0x4164dc
mov edx, dword [ebp - 0x1c0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4164d2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416b15
push ecx
push edx
call fcn.0041dd21
add esp, 8
mov byte [ebp - 4], 0x12
mov ecx, dword [ebp - 0x17c]
cmp ecx, 0x10
jb 0x41651a
mov edx, dword [ebp - 0x190]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x416510
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416b15
push ecx
push edx
call fcn.0041dd21
add esp, 8
mov byte [ebp - 4], 0x13
mov ecx, dword [ebp - 0x214]
cmp ecx, 0x10
jb 0x416558
mov edx, dword [ebp - 0x228]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x41654e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416b15
push ecx
push edx
call fcn.0041dd21
add esp, 8
mov dword [ebp - 0x218], 0
mov dword [ebp - 0x214], 0xf
mov byte [ebp - 0x228], 0
mov byte [ebp - 4], 0x14
mov ecx, dword [ebp - 0x22c]
cmp ecx, 0x10
jb 0x4165b1
mov edx, dword [ebp - 0x240]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4165a7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416b15
push ecx
push edx
call fcn.0041dd21
add esp, 8
mov eax, dword [ebp - 0x140]
mov edi, dword [ebp - 0x144]
mov dword [ebp - 0x230], 0
mov dword [ebp - 0x22c], 0xf
mov byte [ebp - 0x240], 0
mov dword [ebp - 0x168], eax
cmp edi, eax
je 0x4169a3
sub esp, 0x18
mov ecx, esp
push edi
call fcn.0040e210
call fcn.0040f340
test eax, eax
je 0x416988
push ecx
push 0x4b9018
mov ecx, edi
call fcn.004107b0
cmp eax, 0xffffffff
jne 0x416628
push edi
lea ecx, [ebp - 0x190]
call fcn.0040e210
mov dword [ebp - 0x160], 0x1f4
jmp 0x416682
lea edx, [eax + 1]
mov dword [ebp - 0x180], 0
mov eax, dword [edi + 0x10]
xorps xmm0, xmm0
mov dword [ebp - 0x17c], 0
movups xmmword [ebp - 0x190], xmm0
cmp eax, edx
jb 0x416b1a
sub eax, edx
or ecx, 0xffffffff
cmp eax, 0xffffffff
cmovb ecx, eax
cmp dword [edi + 0x14], 0x10
mov eax, edi
jb 0x416669
mov eax, dword [edi]
push ecx
add eax, edx
lea ecx, [ebp - 0x190]
push eax
call fcn.0040e870
mov dword [ebp - 0x160], 0x1fc
mov eax, dword [ebp - 0x174]
lea esi, [ebp - 0x17]
mov byte [ebp - 4], 0x15
mov ecx, eax
test eax, eax
jns 0x4166c0
neg ecx
mov eax, 0xcccccccd
dec esi
mul ecx
shr edx, 3
mov al, dl
mov ah, dl
shl al, 2
add ah, al
add ah, ah
sub cl, ah
add cl, 0x30
mov byte [esi], cl
mov ecx, edx
test ecx, ecx
jne 0x416697
dec esi
mov byte [esi], 0x2d
jmp 0x4166f6
mov dword [ebp - 0x164], ecx
mov eax, 0xcccccccd
dec esi
mul ecx
shr edx, 3
mov al, dl
mov cl, dl
shl al, 2
add cl, al
mov eax, dword [ebp - 0x164]
add cl, cl
sub al, cl
mov ecx, edx
add al, 0x30
mov byte [esi], al
mov eax, edx
mov dword [ebp - 0x164], eax
test eax, eax
jne 0x4166c6
push ecx
lea eax, [ebp - 0x17]
push eax
push esi
lea ecx, [ebp - 0x1e0]
call fcn.0040ef30
push 2
push 0x4b923c
push ecx
lea ecx, [ebp - 0x1e0]
mov byte [ebp - 4], 0x16
call fcn.0040e030
mov dword [ebp - 0x198], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x1a8], xmm0
mov dword [ebp - 0x194], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x1a8], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x198], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov byte [ebp - 4], 0x17
mov edx, dword [ebp - 0x194]
mov eax, edx
mov ecx, dword [ebp - 0x198]
sub eax, ecx
push 0xe
push str.SearchWallet_
cmp eax, 0xe
jb 0x4167b4
cmp edx, 0x10
lea esi, [ebp - 0x1a8]
lea eax, [ecx + 0xe]
cmovae esi, dword [ebp - 0x1a8]
add esi, ecx
mov dword [ebp - 0x198], eax
push esi
call fcn.00473b00
add esp, 0xc
mov byte [esi + 0xe], 0
lea eax, [ebp - 0x1a8]
jmp 0x4167ce
mov byte [ebp - 0x1c8], 0
lea ecx, [ebp - 0x1a8]
push dword [ebp - 0x1c8]
push 0xe
call fcn.0040e980
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x1c0], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x1b0], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
sub esp, 0x18
mov byte [ebp - 4], 0x18
mov ecx, esp
mov dword [ebp - 0x164], esp
lea eax, [ebp - 0x190]
mov dword [ebp - 0x178], ecx
push eax
lea eax, [ebp - 0x1c0]
push eax
push dword [ebp - 0x178]
call fcn.0040ec50
mov esi, dword [ebp - 0x16c]
or esi, dword [ebp - 0x160]
mov dword [ebp - 0x16c], esi
sub esp, 0x18
mov byte [ebp - 4], 0x19
mov ecx, esp
push edi
call fcn.0040e210
push dword [ebp - 0x170]
mov byte [ebp - 4], 0x18
call fcn.00415240
mov byte [ebp - 4], 0x17
mov ecx, dword [ebp - 0x1ac]
mov dword [ebp - 0x160], eax
cmp ecx, 0x10
jb 0x416898
mov edx, dword [ebp - 0x1c0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x41688e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416b15
push ecx
push edx
call fcn.0041dd21
add esp, 8
mov byte [ebp - 4], 0x16
mov ecx, dword [ebp - 0x194]
cmp ecx, 0x10
jb 0x4168d6
mov edx, dword [ebp - 0x1a8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4168cc
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416b15
push ecx
push edx
call fcn.0041dd21
add esp, 8
mov byte [ebp - 4], 0x15
mov ecx, dword [ebp - 0x1cc]
mov dword [ebp - 0x198], 0
mov dword [ebp - 0x194], 0xf
mov byte [ebp - 0x1a8], 0
cmp ecx, 0x10
jb 0x41692f
mov edx, dword [ebp - 0x1e0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x416925
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416b15
push ecx
push edx
call fcn.0041dd21
add esp, 8
mov byte [ebp - 4], 0x14
mov ecx, dword [ebp - 0x17c]
mov dword [ebp - 0x1d0], 0
mov dword [ebp - 0x1cc], 0xf
mov byte [ebp - 0x1e0], 0
cmp ecx, 0x10
jb 0x416988
mov edx, dword [ebp - 0x190]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x41697e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416b15
push ecx
push edx
call fcn.0041dd21
add esp, 8
add edi, 0x18
cmp edi, dword [ebp - 0x168]
jne 0x4165e6
mov eax, dword [ebp - 0x140]
mov edi, dword [ebp - 0x144]
mov byte [ebp - 4], 9
test edi, edi
je 0x416a23
push ecx
mov edx, eax
mov ecx, edi
call fcn.00417a80
mov ecx, dword [ebp - 0x13c]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0x144]
add esp, 4
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*2]
mov eax, esi
shl ecx, 3
cmp ecx, 0x1000
jb 0x4169fb
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416b15
push ecx
push esi
call fcn.0041dd21
add esp, 8
mov dword [ebp - 0x144], 0
mov dword [ebp - 0x140], 0
mov dword [ebp - 0x13c], 0
mov esi, dword [ebp - 0x170]
cmp dword [ebp - 0x160], 0
jle 0x416a71
sub esp, 0x18
lea eax, [ebx + 8]
mov ecx, esp
push eax
call fcn.0040e210
push esi
call fcn.00413b50
sub esp, 0x18
xorps xmm0, xmm0
mov ecx, esp
push 2
movups xmmword [ecx], xmm0
push 0x4b9250
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
call fcn.0040e870
push esi
call fcn.00414d60
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x148]
cmp ecx, 0x10
jb 0x416aab
mov edx, dword [ebp - 0x15c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x416aa1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416b15
push ecx
push edx
call fcn.0041dd21
add esp, 8
mov esi, dword [ebp - 0x174]
inc esi
mov dword [ebp - 0x174], esi
cmp esi, 0x10
jl 0x415fa0
xor esi, esi
mov ecx, dword [ebx + 0x1c]
cmp ecx, 0x10
jb 0x416af3
mov edx, dword [ebx + 8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x416ae9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x416b15
push ecx
push edx
call fcn.0041dd21
add esp, 8
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0041d890
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x18
call fcn.0047a537
call fcn.0040e480
int3