Function at 0x478d30
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x881f6b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x39c
mov dword [ebp - 0x2f4], ecx
mov dword [ebp - 0x14], 0x1f4
push 0x1f4
lea eax, [ebp - 0x20c]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x479040
push 0x5c
lea ecx, [ebp - 0x20c]
push ecx
call fcn.0083f840
add esp, 8
mov dword [ebp - 0x210], eax
cmp dword [ebp - 0x210], 0
je 0x479040
mov edx, dword [ebp - 0x210]
mov byte [edx + 1], 0
mov dword [ebp - 0x214], 0
jmp 0x478dc0
mov eax, dword [ebp - 0x214]
add eax, 1
mov dword [ebp - 0x214], eax
cmp dword [ebp - 0x214], 5
jge 0x479040
lea ecx, [ebp - 0x20c]
push ecx
lea ecx, [ebp - 0x230]
call fcn.0046fb80
mov dword [ebp - 4], 0
mov edx, dword [str.Custom_Tools]
mov dword [ebp - 0x27c], edx
mov eax, dword [ebp - 0x27c]
mov dword [ebp - 0x2f8], eax
mov ecx, dword [ebp - 0x2f8]
add ecx, 1
mov dword [ebp - 0x2fc], ecx
mov edx, dword [ebp - 0x2f8]
mov al, byte [edx]
mov byte [ebp - 0x2fd], al
add dword [ebp - 0x2f8], 1
cmp byte [ebp - 0x2fd], 0
jne 0x478e0d
mov ecx, dword [ebp - 0x2f8]
sub ecx, dword [ebp - 0x2fc]
mov dword [ebp - 0x304], ecx
mov edx, dword [ebp - 0x304]
push edx
mov eax, dword [ebp - 0x27c]
push eax
lea ecx, [ebp - 0x230]
call fcn.00449bf0
cmp dword [ebp - 0x218], 0x10
jb 0x478e6d
mov ecx, dword [ebp - 0x22c]
mov dword [ebp - 0x308], ecx
jmp 0x478e79
lea edx, [ebp - 0x22c]
mov dword [ebp - 0x308], edx
mov eax, dword [ebp - 0x308]
push eax
call fcn.004bc790
add esp, 4
mov dword [ebp - 0x30c], 0x8a2d38
mov ecx, dword [ebp - 0x30c]
add ecx, 1
mov dword [ebp - 0x310], ecx
mov edx, dword [ebp - 0x30c]
mov al, byte [edx]
mov byte [ebp - 0x311], al
add dword [ebp - 0x30c], 1
cmp byte [ebp - 0x311], 0
jne 0x478ea1
mov ecx, dword [ebp - 0x30c]
sub ecx, dword [ebp - 0x310]
mov dword [ebp - 0x318], ecx
mov edx, dword [ebp - 0x318]
push edx
push 0x8a2d38
lea ecx, [ebp - 0x230]
call fcn.00449bf0
mov eax, dword [ebp - 0x214]
mov ecx, dword [eax*4 + 0xb7f2b0]
mov dword [ebp - 0x280], ecx
mov edx, dword [ebp - 0x280]
mov dword [ebp - 0x31c], edx
mov eax, dword [ebp - 0x31c]
add eax, 1
mov dword [ebp - 0x320], eax
mov ecx, dword [ebp - 0x31c]
mov dl, byte [ecx]
mov byte [ebp - 0x321], dl
add dword [ebp - 0x31c], 1
cmp byte [ebp - 0x321], 0
jne 0x478f16
mov eax, dword [ebp - 0x31c]
sub eax, dword [ebp - 0x320]
mov dword [ebp - 0x328], eax
mov ecx, dword [ebp - 0x328]
push ecx
mov edx, dword [ebp - 0x280]
push edx
lea ecx, [ebp - 0x230]
call fcn.00449bf0
cmp dword [ebp - 0x218], 0x10
jb 0x478f76
mov eax, dword [ebp - 0x22c]
mov dword [ebp - 0x32c], eax
jmp 0x478f82
lea ecx, [ebp - 0x22c]
mov dword [ebp - 0x32c], ecx
mov edx, dword [ebp - 0x32c]
push edx
call fcn.004bc790
add esp, 4
cmp dword [ebp - 0x218], 0x10
jb 0x478fa8
mov eax, dword [ebp - 0x22c]
mov dword [ebp - 0x284], eax
jmp 0x478fb4
lea ecx, [ebp - 0x22c]
mov dword [ebp - 0x284], ecx
mov edx, dword [ebp - 0x284]
mov dword [ebp - 0x330], edx
mov eax, dword [ebp - 0x330]
add eax, 1
mov dword [ebp - 0x334], eax
mov ecx, dword [ebp - 0x330]
mov dl, byte [ecx]
mov byte [ebp - 0x335], dl
add dword [ebp - 0x330], 1
cmp byte [ebp - 0x335], 0
jne 0x478fcf
mov eax, dword [ebp - 0x330]
sub eax, dword [ebp - 0x334]
mov dword [ebp - 0x33c], eax
mov ecx, dword [ebp - 0x33c]
push ecx
mov edx, dword [ebp - 0x284]
push edx
mov eax, dword [ebp - 0x214]
imul eax, eax, 0x38
mov ecx, dword [ebp - 0x2f4]
lea ecx, [ecx + eax + 0x1c]
call fcn.0041cda0
mov dword [ebp - 4], 0xffffffff
push 0
push 1
lea ecx, [ebp - 0x230]
call fcn.0041ccf0
jmp 0x478db1
lea edx, [ebp - 0x20c]
push edx
push 0
push 0
push 0x801c
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x479432
lea eax, [ebp - 0x20c]
push eax
lea ecx, [ebp - 0x24c]
call fcn.0046fb80
mov dword [ebp - 4], 1
mov dword [ebp - 0x340], 0x8a2d3c
mov ecx, dword [ebp - 0x340]
add ecx, 1
mov dword [ebp - 0x344], ecx
mov edx, dword [ebp - 0x340]
mov al, byte [edx]
mov byte [ebp - 0x345], al
add dword [ebp - 0x340], 1
cmp byte [ebp - 0x345], 0
jne 0x479097
mov ecx, dword [ebp - 0x340]
sub ecx, dword [ebp - 0x344]
mov dword [ebp - 0x34c], ecx
mov edx, dword [ebp - 0x34c]
push edx
push 0x8a2d3c
lea ecx, [ebp - 0x24c]
call fcn.00449bf0
mov eax, dword [0xb7f2c4]
mov dword [ebp - 0x294], eax
mov ecx, dword [ebp - 0x294]
mov dword [ebp - 0x350], ecx
mov edx, dword [ebp - 0x350]
add edx, 1
mov dword [ebp - 0x354], edx
mov eax, dword [ebp - 0x350]
mov cl, byte [eax]
mov byte [ebp - 0x355], cl
add dword [ebp - 0x350], 1
cmp byte [ebp - 0x355], 0
jne 0x479104
mov edx, dword [ebp - 0x350]
sub edx, dword [ebp - 0x354]
mov dword [ebp - 0x35c], edx
mov eax, dword [ebp - 0x35c]
push eax
mov ecx, dword [ebp - 0x294]
push ecx
lea ecx, [ebp - 0x24c]
call fcn.00449bf0
cmp dword [ebp - 0x234], 0x10
jb 0x479164
mov edx, dword [ebp - 0x248]
mov dword [ebp - 0x360], edx
jmp 0x479170
lea eax, [ebp - 0x248]
mov dword [ebp - 0x360], eax
mov ecx, dword [ebp - 0x360]
push ecx
call fcn.004bc790
add esp, 4
mov dword [ebp - 0x364], 0x8a2d40
mov edx, dword [ebp - 0x364]
add edx, 1
mov dword [ebp - 0x368], edx
mov eax, dword [ebp - 0x364]
mov cl, byte [eax]
mov byte [ebp - 0x369], cl
add dword [ebp - 0x364], 1
cmp byte [ebp - 0x369], 0
jne 0x479198
mov edx, dword [ebp - 0x364]
sub edx, dword [ebp - 0x368]
mov dword [ebp - 0x370], edx
mov eax, dword [ebp - 0x370]
push eax
push 0x8a2d40
lea ecx, [ebp - 0x24c]
call fcn.00449bf0
mov ecx, dword [str.Custom_Tools]
mov dword [ebp - 0x298], ecx
mov edx, dword [ebp - 0x298]
mov dword [ebp - 0x374], edx
mov eax, dword [ebp - 0x374]
add eax, 1
mov dword [ebp - 0x378], eax
mov ecx, dword [ebp - 0x374]
mov dl, byte [ecx]
mov byte [ebp - 0x379], dl
add dword [ebp - 0x374], 1
cmp byte [ebp - 0x379], 0
jne 0x479206
mov eax, dword [ebp - 0x374]
sub eax, dword [ebp - 0x378]
mov dword [ebp - 0x380], eax
mov ecx, dword [ebp - 0x380]
push ecx
mov edx, dword [ebp - 0x298]
push edx
lea ecx, [ebp - 0x24c]
call fcn.00449bf0
cmp dword [ebp - 0x234], 0x10
jb 0x479266
mov eax, dword [ebp - 0x248]
mov dword [ebp - 0x384], eax
jmp 0x479272
lea ecx, [ebp - 0x248]
mov dword [ebp - 0x384], ecx
mov edx, dword [ebp - 0x384]
push edx
call fcn.004bc790
add esp, 4
mov dword [ebp - 0x250], 0
jmp 0x47929c
mov eax, dword [ebp - 0x250]
add eax, 1
mov dword [ebp - 0x250], eax
cmp dword [ebp - 0x250], 5
jge 0x47941c
push 0
push 0
lea ecx, [ebp - 0x26c]
call fcn.0041ccf0
mov ecx, dword [0x892260]
push ecx
push 0
lea edx, [ebp - 0x24c]
push edx
lea ecx, [ebp - 0x26c]
call fcn.0041cbc0
mov byte [ebp - 4], 2
mov dword [ebp - 0x388], 0x8a2d44
mov eax, dword [ebp - 0x388]
add eax, 1
mov dword [ebp - 0x38c], eax
mov ecx, dword [ebp - 0x388]
mov dl, byte [ecx]
mov byte [ebp - 0x38d], dl
add dword [ebp - 0x388], 1
cmp byte [ebp - 0x38d], 0
jne 0x4792f0
mov eax, dword [ebp - 0x388]
sub eax, dword [ebp - 0x38c]
mov dword [ebp - 0x394], eax
mov ecx, dword [ebp - 0x394]
push ecx
push 0x8a2d44
lea ecx, [ebp - 0x26c]
call fcn.00449bf0
mov edx, dword [ebp - 0x250]
mov eax, dword [edx*4 + 0xb7f2b0]
mov dword [ebp - 0x2ac], eax
mov ecx, dword [ebp - 0x2ac]
mov dword [ebp - 0x398], ecx
mov edx, dword [ebp - 0x398]
add edx, 1
mov dword [ebp - 0x39c], edx
mov eax, dword [ebp - 0x398]
mov cl, byte [eax]
mov byte [ebp - 0x39d], cl
add dword [ebp - 0x398], 1
cmp byte [ebp - 0x39d], 0
jne 0x479365
mov edx, dword [ebp - 0x398]
sub edx, dword [ebp - 0x39c]
mov dword [ebp - 0x3a4], edx
mov eax, dword [ebp - 0x3a4]
push eax
mov ecx, dword [ebp - 0x2ac]
push ecx
lea ecx, [ebp - 0x26c]
call fcn.00449bf0
cmp dword [ebp - 0x254], 0x10
jb 0x4793c5
mov edx, dword [ebp - 0x268]
mov dword [ebp - 0x3a8], edx
jmp 0x4793d1
lea eax, [ebp - 0x268]
mov dword [ebp - 0x3a8], eax
mov ecx, dword [ebp - 0x3a8]
push ecx
call fcn.004bc790
add esp, 4
mov edx, dword [0x892260]
push edx
push 0
lea eax, [ebp - 0x26c]
push eax
mov ecx, dword [ebp - 0x250]
imul ecx, ecx, 0x1c
add ecx, 0xba3f80
call fcn.0041cbc0
mov byte [ebp - 4], 1
push 0
push 1
lea ecx, [ebp - 0x26c]
call fcn.0041ccf0
jmp 0x47928d
mov dword [ebp - 4], 0xffffffff
push 0
push 1
lea ecx, [ebp - 0x24c]
call fcn.0041ccf0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret