Function at 0x5ae860
Capabilities:
Get common file path
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x65f30e
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
mov eax, 0x1590
call fcn.005e1650
mov eax, dword [0x6f853c]
push ebx
mov ebx, ecx
mov dword [ebp - 0x14f4], 0
mov dword [ebp - 0x14], eax
push esi
mov dword [ebx], 0x67f354
mov eax, dword [0x6fa570]
test eax, eax
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x1530], ebx
je 0x5ae8cd
push 0x690a10
lea eax, [ebp - 0x1524]
push eax
mov dword [ebp - 0x1524], str.Object_already_exist.
call fcn.005e0f72
mov dword [0x6fa570], ebx
lea esi, [ebx + 4]
xor edi, edi
mov ecx, esi
mov dword [ebp - 4], edi
mov dword [ebx], 0x67f58c
call fcn.0058f930
mov dword [esi + 4], eax
mov byte [eax + 0x45], 1
mov eax, dword [esi + 4]
mov dword [eax + 4], eax
mov eax, dword [esi + 4]
mov dword [eax], eax
mov eax, dword [esi + 4]
mov dword [eax + 8], eax
mov dword [esi + 8], edi
lea esi, [ebx + 0x10]
mov ecx, esi
mov byte [ebp - 4], 1
call fcn.0058f930
mov dword [esi + 4], eax
mov byte [eax + 0x45], 1
mov eax, dword [esi + 4]
mov dword [eax + 4], eax
mov eax, dword [esi + 4]
mov dword [eax], eax
mov eax, dword [esi + 4]
mov dword [eax + 8], eax
mov dword [esi + 8], edi
lea esi, [ebx + 0x1c]
mov ecx, esi
mov byte [ebp - 4], 2
call fcn.0058f970
mov dword [esi + 4], eax
mov byte [eax + 0x29], 1
mov eax, dword [esi + 4]
mov dword [eax + 4], eax
mov eax, dword [esi + 4]
mov dword [eax], eax
mov eax, dword [esi + 4]
mov dword [eax + 8], eax
mov dword [esi + 8], edi
mov ecx, dword [ebp + 8]
push 0xffffffffffffffff
lea edi, [ebx + 0x28]
push 0
push ecx
mov dword [edi + 0x18], 0xf
mov dword [edi + 0x14], 0
mov ecx, edi
mov byte [ebp - 4], 3
mov byte [edi + 4], 0
call fcn.00401410
mov edx, dword [ebp + 0xc]
push 0xffffffffffffffff
lea esi, [ebx + 0x44]
push 0
mov dword [esi + 0x18], 0xf
mov dword [esi + 0x14], 0
push edx
mov ecx, esi
mov byte [ebp - 4], 4
mov byte [esi + 4], 0
call fcn.00401410
xor eax, eax
mov ecx, 0xf
mov dword [ebx + 0x78], ecx
mov dword [ebx + 0x74], eax
mov byte [ebx + 0x64], al
mov dword [ebx + 0x94], ecx
mov dword [ebx + 0x90], eax
mov byte [ebx + 0x80], al
mov byte [ebp - 4], 8
mov eax, dword [esi + 0x18]
cmp eax, 0x10
lea ecx, [esi + 4]
jb 0x5ae9e0
mov edx, dword [ecx]
mov dword [ebp - 0x14d0], edx
jmp 0x5ae9e6
mov dword [ebp - 0x14d0], ecx
cmp eax, 0x10
jb 0x5ae9ef
mov edx, dword [ecx]
jmp 0x5ae9f1
mov edx, ecx
mov esi, dword [esi + 0x14]
add esi, edx
cmp eax, 0x10
jb 0x5ae9fd
mov ecx, dword [ecx]
mov eax, dword [ebp - 0x14d0]
push fcn.005e27d3
push eax
push esi
push ecx
lea ecx, [ebp + 8]
push ecx
call fcn.005a0a30
mov esi, dword [edi + 0x18]
add esp, 0x14
cmp esi, 0x10
lea ecx, [edi + 4]
jb 0x5aea2c
mov edx, dword [ecx]
mov dword [ebp - 0x14d4], edx
jmp 0x5aea32
mov dword [ebp - 0x14d4], ecx
cmp esi, 0x10
jb 0x5aea3b
mov edx, dword [ecx]
jmp 0x5aea3d
mov edx, ecx
mov eax, dword [edi + 0x14]
add eax, edx
cmp esi, 0x10
jb 0x5aea49
mov ecx, dword [ecx]
mov edx, dword [ebp - 0x14d4]
push fcn.005e27d3
push edx
push eax
push ecx
lea eax, [ebp + 8]
push eax
call fcn.005a0a30
add esp, 0x14
push 0x2f
push 0x5c
push edi
call fcn.005a9610
mov eax, dword [edi + 0x18]
mov ecx, dword [ebx + 0x3c]
mov esi, 0x10
add esp, 0xc
cmp eax, esi
jb 0x5aea84
mov eax, dword [edi + 4]
jmp 0x5aea87
lea eax, [edi + 4]
cmp byte [ecx + eax - 1], 0x2f
je 0x5aea99
push 0x2f
push 1
mov ecx, edi
call fcn.004056e0
push 0
push 0x666713
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x18], 0xf
mov dword [ebp - 0x1c], 0
mov byte [ebp - 0x2c], 0
call fcn.00401500
lea ecx, [ebp - 0x30]
push ecx
push edi
mov ecx, ebx
mov byte [ebp - 4], 9
call fcn.005acec0
cmp dword [ebp - 0x18], esi
mov byte [ebp - 4], 8
jb 0x5aeadf
mov edx, dword [ebp - 0x2c]
push edx
call fcn.005e0f6d
add esp, 4
mov eax, dword [ebx + 0x20]
mov edi, dword [eax]
mov dword [ebp + 0xc], edi
cmp edi, dword [ebx + 0x20]
je 0x5aee51
push 0xffffffffffffffff
lea eax, [edi + 0xc]
push 0
mov esi, 0xf
push eax
lea ecx, [ebp - 0x68]
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x54], 0
mov byte [ebp - 0x64], 0
call fcn.00401410
lea eax, [ebp - 0x68]
push eax
lea ecx, [ebx + 0x28]
push ecx
lea edx, [ebp - 0x1510]
push edx
mov byte [ebp - 4], 0xa
call fcn.00401730
add esp, 0xc
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x14f0]
mov byte [ebp - 4], 0xb
mov dword [ebp - 0x14d8], esi
mov dword [ebp - 0x14dc], 0
mov byte [ebp - 0x14ec], 0
call fcn.00401410
lea eax, [ebp - 0x14f0]
push eax
mov byte [ebp - 4], 0xc
call fcn.005c7790
mov dword [ebp + 8], eax
mov eax, dword [ebp - 0x14d8]
add esp, 4
cmp eax, 0x10
jb 0x5aeb89
mov ecx, dword [ebp - 0x14ec]
push ecx
call fcn.005e0f6d
add esp, 4
cmp dword [ebp - 0x14f8], 0x10
mov dword [ebp - 0x14d8], esi
mov dword [ebp - 0x14dc], 0
mov byte [ebp - 0x14ec], 0
jb 0x5aebb8
mov edx, dword [ebp - 0x150c]
push edx
call fcn.005e0f6d
add esp, 4
xor eax, eax
mov dword [ebp - 0x14f8], esi
mov dword [ebp - 0x14fc], eax
mov byte [ebp - 0x150c], al
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x38], eax
mov byte [ebp - 0x48], al
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x4c]
push eax
push ecx
mov byte [ebp - 4], 0xd
call fcn.005c7fe0
add esp, 8
test al, al
je 0x5aedbb
mov ecx, dword [ebp - 0x34]
cmp ecx, 0x10
mov esi, dword [ebp - 0x48]
mov edi, esi
jae 0x5aec30
lea edi, [ebp - 0x48]
mov eax, edi
mov edx, dword [ebp - 0x38]
add eax, edx
cmp ecx, 0x10
mov dword [ebp - 0x14d4], eax
jae 0x5aec16
lea esi, [ebp - 0x48]
cmp esi, dword [ebp - 0x14d4]
je 0x5aec34
movsx eax, byte [esi]
push eax
call fcn.005e27d3
add esp, 4
mov byte [edi], al
inc esi
inc edi
jmp 0x5aec16
mov eax, esi
jmp 0x5aec03
lea ecx, [ebp - 0x4c]
push ecx
mov ecx, ebx
call fcn.005aab90
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x18], 0xf
mov dword [ebp - 0x1c], 0
mov byte [ebp - 0x2c], 0
call fcn.00401410
mov eax, dword [ebp - 0x1c]
test eax, eax
mov byte [ebp - 4], 0xe
jbe 0x5aed78
mov edx, dword [ebx + 8]
lea eax, [ebp - 0x4c]
lea esi, [ebx + 4]
push eax
mov ecx, esi
mov dword [ebp - 0x1514], edx
call fcn.00544650
mov esi, dword [esi + 4]
cmp eax, esi
mov dword [ebp - 0x151c], eax
mov dword [ebp - 0x1520], esi
je 0x5aecfd
cmp dword [eax + 0x24], 0x10
mov esi, dword [eax + 0x20]
mov dword [ebp - 0x14d4], esi
jb 0x5aecab
mov eax, dword [eax + 0x10]
jmp 0x5aecae
add eax, 0x10
mov edx, dword [ebp - 0x38]
test edx, edx
je 0x5aece0
cmp edx, esi
mov ecx, edx
jb 0x5aecbd
mov ecx, esi
cmp dword [ebp - 0x34], 0x10
mov esi, dword [ebp - 0x48]
jae 0x5aecc9
lea esi, [ebp - 0x48]
mov edi, eax
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x5aecd6
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x5aeced
mov esi, dword [ebp - 0x14d4]
cmp edx, esi
jb 0x5aecf7
xor eax, eax
cmp edx, esi
setne al
test eax, eax
jl 0x5aecf7
lea eax, [ebp - 0x151c]
jmp 0x5aed09
mov esi, dword [ebp - 0x1520]
mov dword [ebp - 0x1518], esi
lea eax, [ebp - 0x1518]
mov ecx, dword [ebp - 0x1514]
cmp dword [eax], ecx
lea edx, [ebp - 0x4c]
lea ecx, [ebx + 4]
push edx
je 0x5aed64
call fcn.00550840
mov edx, dword [eax + 0x14]
mov ecx, edx
cmp ecx, edx
jae 0x5aed28
test edx, edx
je 0x5aed52
cmp dword [eax + 0x18], 0x10
jb 0x5aed37
mov eax, dword [eax + 4]
jmp 0x5aed3a
add eax, 4
xor ecx, ecx
mov esi, eax
mov edi, 0x666713
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x5aed4e
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x5aed5d
xor eax, eax
test edx, edx
setne al
test eax, eax
je 0x5aed78
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebx + 4]
call fcn.00550840
push 0xffffffffffffffff
lea ecx, [ebp - 0x68]
push 0
push ecx
mov ecx, eax
call fcn.00401410
cmp dword [ebp - 0x18], 0x10
mov byte [ebp - 4], 0xd
jb 0x5aed8e
mov edx, dword [ebp - 0x2c]
push edx
call fcn.005e0f6d
add esp, 4
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x4c]
push eax
push ecx
mov dword [ebp - 0x18], 0xf
mov dword [ebp - 0x1c], 0
mov byte [ebp - 0x2c], 0
call fcn.005c8450
add esp, 8
test al, al
jne 0x5aebf1
mov edi, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
push edx
call fcn.005c7be0
mov eax, dword [ebp - 0x34]
add esp, 4
cmp eax, 0x10
jb 0x5aeddb
mov eax, dword [ebp - 0x48]
push eax
call fcn.005e0f6d
add esp, 4
mov eax, dword [ebp - 0x50]
xor esi, esi
cmp eax, 0x10
mov dword [ebp - 0x34], 0xf
mov dword [ebp - 0x38], esi
mov byte [ebp - 0x48], 0
mov byte [ebp - 4], 8
jb 0x5aee03
mov ecx, dword [ebp - 0x64]
push ecx
call fcn.005e0f6d
add esp, 4
mov al, byte [edi + 0x29]
test al, al
mov dword [ebp - 0x50], 0xf
mov dword [ebp - 0x54], esi
mov byte [ebp - 0x64], 0
jne 0x5aeae7
mov eax, dword [edi + 8]
mov cl, byte [eax + 0x29]
test cl, cl
jne 0x5aee37
mov edi, eax
mov eax, dword [edi]
mov cl, byte [eax + 0x29]
test cl, cl
jne 0x5aeae4
jmp 0x5aee26
mov eax, dword [edi + 4]
mov cl, byte [eax + 0x29]
test cl, cl
jne 0x5aee4a
cmp edi, dword [eax + 8]
jne 0x5aee4a
mov edi, eax
jmp 0x5aee37
mov edi, eax
jmp 0x5aeae4
xor edi, edi
push 0x60
mov dword [ebp - 0x14d0], edi
call fcn.005dfe81
mov esi, eax
add esp, 4
mov dword [ebp - 0x1514], esi
cmp esi, edi
mov byte [ebp - 4], 0xf
je 0x5aeeb2
push 0x10
push str.sys_settings.xml
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x18], 0xf
mov dword [ebp - 0x1c], edi
mov byte [ebp - 0x2c], 0
call fcn.00401500
mov ecx, dword [ebp - 0x14f4]
or ecx, 1
lea edx, [ebp - 0x30]
mov dword [ebp - 0x14f4], ecx
push edx
mov ecx, esi
mov byte [ebp - 4], 0x10
call fcn.005c43f0
mov esi, eax
jmp 0x5aeeb4
xor esi, esi
test byte [ebp - 0x14f4], 1
mov dword [ebp - 4], 8
je 0x5aeee4
cmp dword [ebp - 0x18], 0x10
jb 0x5aeed6
mov eax, dword [ebp - 0x2c]
push eax
call fcn.005e0f6d
add esp, 4
mov dword [ebp - 0x18], 0xf
mov dword [ebp - 0x1c], edi
mov byte [ebp - 0x2c], 0
push 4
push str.game
lea ecx, [ebp - 0x14f0]
mov dword [ebp - 0x14d8], 0xf
mov dword [ebp - 0x14dc], edi
mov byte [ebp - 0x14ec], 0
call fcn.00401500
mov edx, dword [esi]
lea eax, [ebp - 0x14d0]
push eax
lea ecx, [ebp - 0x14f0]
push ecx
mov ecx, esi
mov byte [ebp - 4], 0x12
call dword [edx + 0x10]
cmp dword [ebp - 0x14d8], 0x10
mov byte [ebp - 4], 8
jb 0x5aef42
mov edx, dword [ebp - 0x14ec]
push edx
call fcn.005e0f6d
add esp, 4
mov ecx, dword [ebp - 0x14d0]
mov eax, dword [ecx]
push str.app_directory
lea edx, [ebp - 0x1510]
push edx
call dword [eax + 0x7c]
lea ecx, [ebp - 0x84]
push ecx
mov ecx, eax
mov byte [ebp - 4], 0x13
call fcn.00402020
cmp dword [ebp - 0x14f8], 8
mov byte [ebp - 4], 0x15
jb 0x5aef87
mov edx, dword [ebp - 0x150c]
push edx
call fcn.005e0f6d
add esp, 4
push 0x2f
lea eax, [ebp - 0x84]
push 0x5c
push eax
mov dword [ebp - 0x14f8], 7
mov dword [ebp - 0x14fc], edi
mov word [ebp - 0x150c], di
call fcn.005a9610
mov eax, dword [ebp - 0x70]
add esp, 0xc
cmp eax, edi
jne 0x5af063
mov ecx, dword [ebp - 0x14d0]
mov edx, dword [ecx]
push str.window_title
lea eax, [ebp - 0x68]
push eax
call dword [edx + 0x7c]
lea ecx, [ebp - 0x14f0]
push ecx
mov ecx, eax
mov byte [ebp - 4], 0x16
call fcn.00402020
push 0xffffffffffffffff
push edi
push eax
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 0x17
call fcn.00401410
cmp dword [ebp - 0x14d8], 0x10
jb 0x5af00d
mov edx, dword [ebp - 0x14ec]
push edx
call fcn.005e0f6d
add esp, 4
cmp dword [ebp - 0x50], 8
mov dword [ebp - 0x14d8], 0xf
mov dword [ebp - 0x14dc], edi
mov byte [ebp - 0x14ec], 0
mov byte [ebp - 4], 0x15
jb 0x5af03a
mov eax, dword [ebp - 0x64]
push eax
call fcn.005e0f6d
add esp, 4
cmp dword [ebp - 0x70], edi
jne 0x5af063
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 4]
push 0x690a10
lea eax, [ebp - 0x1528]
push eax
mov dword [ebp - 0x1528], str.app_directory_not_defined.
call fcn.005e0f72
mov edx, dword [esi]
mov ecx, esi
call dword [edx]
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax + 4]
lea ecx, [ebp - 0x4cc]
push ecx
push edi
push edi
push 0x8023
push edi
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
lea eax, [ebp - 0x4cc]
mov dword [ebp - 0x18], 0xf
mov dword [ebp - 0x1c], edi
mov byte [ebp - 0x2c], 0
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x5af0a0
sub eax, edx
push eax
lea edx, [ebp - 0x4cc]
push edx
lea ecx, [ebp - 0x30]
call fcn.00401500
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x30]
lea esi, [ebx + 0x7c]
push eax
mov ecx, esi
mov byte [ebp - 4], 0x18
call fcn.00401410
mov eax, dword [ebp - 0x18]
mov edi, 0x10
cmp eax, edi
mov byte [ebp - 4], 0x15
jb 0x5af0eb
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.005e0f6d
add esp, 4
lea edx, [ebp - 0x84]
push edx
lea eax, [ebp - 0x14f0]
push str._._MNBVZ_
push eax
call fcn.0052f1d0
add esp, 0xc
push str._._MNBVZ_
push eax
lea ecx, [ebp - 0x30]
push ecx
mov byte [ebp - 4], 0x19
call fcn.00414310
add esp, 0xc
push 0xffffffffffffffff
push 0
push eax
mov ecx, esi
mov byte [ebp - 4], 0x1a
call fcn.004012d0
cmp dword [ebp - 0x18], edi
jb 0x5af13d
mov edx, dword [ebp - 0x2c]
push edx
call fcn.005e0f6d
add esp, 4
cmp dword [ebp - 0x14d8], edi
mov dword [ebp - 0x18], 0xf
mov dword [ebp - 0x1c], 0
mov byte [ebp - 0x2c], 0
mov byte [ebp - 4], 0x15
jb 0x5af16a
mov eax, dword [ebp - 0x14ec]
push eax
call fcn.005e0f6d
add esp, 4
push 0x2f
push 0x5c
push esi
call fcn.005a9610
add esp, 0xc
push esi
mov ecx, ebx
call fcn.005ab0a0
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 0x14]
lea edi, [ebx + 4]
mov dword [ebx + 0x14], ecx
mov dword [edi + 4], eax
mov edx, dword [edi + 8]
mov eax, dword [ebx + 0x18]
push 8
mov dword [ebx + 0x18], edx
push str.common
lea ecx, [ebp - 0x30]
mov dword [edi + 8], eax
mov dword [ebp - 0x18], 0xf
mov dword [ebp - 0x1c], 0
mov byte [ebp - 0x2c], 0
call fcn.00401500
lea eax, [ebp - 0x30]
push eax
push esi
mov ecx, ebx
mov byte [ebp - 4], 0x1c
call fcn.005acec0
mov eax, dword [ebp - 0x18]
mov esi, 0x10
cmp eax, esi
mov byte [ebp - 4], 0x15
jb 0x5af1e7
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.005e0f6d
add esp, 4
mov eax, dword [ebx + 0x14]
mov ecx, dword [eax]
push eax
push ecx
mov ecx, edi
call fcn.005acce0
cmp dword [ebp - 0x6c], esi
jb 0x5af206
mov edx, dword [ebp - 0x80]
push edx
call fcn.005e0f6d
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x14]
mov eax, ebx
call fcn.005e1637
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8