Function at 0x40ea80
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x514
mov eax, dword [0x4f92a0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
push 0x206
mov dword [ebp - 0x514], ecx
xor ebx, ebx
mov dword [ebp - 0x4f0], eax
lea ecx, [ebp - 0x41e]
xor eax, eax
push ebx
push ecx
mov dword [ebp - 0x4f4], edx
mov word [ebp - 0x420], ax
call fcn.00438230
add esp, 0xc
push 0x103
lea edx, [ebp - 0x217]
push ebx
push edx
mov byte [ebp - 0x218], bl
call fcn.00438230
add esp, 0xc
push 0x103
lea eax, [ebp - 0x10f]
push ebx
push eax
mov byte [ebp - 0x110], bl
call fcn.00438230
add esp, 0xc
lea ecx, [ebp - 0x420]
push ecx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea ecx, [ebp - 0x420]
call fcn.00410030
push ecx
lea eax, [ebp - 0x420]
mov esi, esp
call fcn.00403260
call fcn.00415980
mov esi, eax
lea edx, [ebp - 0x218]
add esp, 4
mov ecx, esi
sub edx, esi
mov al, byte [ecx]
mov byte [edx + ecx], al
inc ecx
cmp al, bl
jne 0x40eb40
lea ecx, [ebp - 0x218]
dec ecx
mov al, byte [ecx + 1]
inc ecx
cmp al, bl
jne 0x40eb51
mov edx, dword [0x4d4880]
mov eax, dword [0x4d4884]
mov dword [ecx], edx
mov edx, dword [0x4d4888]
mov dword [ecx + 4], eax
mov al, byte [0x4d488c]
mov dword [ecx + 8], edx
lea edx, [ebp - 0x110]
mov byte [ecx + 0xc], al
mov ecx, esi
sub edx, esi
mov al, byte [ecx]
mov byte [edx + ecx], al
inc ecx
cmp al, bl
jne 0x40eb84
lea ecx, [ebp - 0x110]
dec ecx
mov al, byte [ecx + 1]
inc ecx
cmp al, bl
jne 0x40eb95
mov edx, dword [str.gameInfo1.txt]
mov eax, dword [0x4d4894]
mov dword [ecx], edx
mov edx, dword [0x4d4898]
mov dword [ecx + 4], eax
mov ax, word [0x4d489c]
mov dword [ecx + 8], edx
push esi
mov word [ecx + 0xc], ax
call fcn.0042ec40
add esp, 4
lea ecx, [ebp - 0x110]
push ecx
lea eax, [ebp - 0x218]
call fcn.0040e9c0
sub esp, 0x1c
mov ecx, esp
lea eax, [ebp - 0x110]
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], ebx
mov byte [ecx], bl
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
cmp dl, bl
jne 0x40ebf5
sub eax, esi
push eax
lea edx, [ebp - 0x110]
push edx
call fcn.00402b40
lea ecx, [ebp - 0x458]
call fcn.0040e770
mov eax, dword [ebp - 0x458]
mov esi, 0x10
cmp dword [ebp - 0x444], esi
jae 0x40ec2f
lea eax, [ebp - 0x458]
push eax
lea edi, [ebp - 0x43c]
call fcn.0040e8f0
cmp dword [ebp - 0x42c], ebx
je 0x40edee
push ebx
lea ecx, [ebp - 0x510]
call fcn.0041de60
lea ecx, [ebp - 0x4e0]
call fcn.00424a40
push 1
lea eax, [ebp - 0x510]
push eax
mov ecx, edi
push ecx
lea ecx, [ebp - 0x4e0]
call fcn.00424b00
test al, al
je 0x40f11b
push str.game
push str.data
lea ecx, [ebp - 0x510]
call fcn.0041f3d0
mov ecx, eax
call fcn.0041f3d0
mov ecx, eax
call fcn.0041f5a0
test al, al
je 0x40f0aa
push str.game
push str.data
lea ecx, [ebp - 0x510]
xor esi, esi
call fcn.0041f3d0
mov ecx, eax
call fcn.0041f3d0
mov ecx, eax
call fcn.0041ece0
test eax, eax
je 0x40edd3
mov edx, dword [ebp - 0x4f0]
add edx, 0x1a68
mov dword [ebp - 0x4e4], edx
push 0x4d48a8
push esi
push str.game
push str.data
lea ecx, [ebp - 0x510]
call fcn.0041f3d0
mov ecx, eax
call fcn.0041f3d0
mov ecx, eax
call fcn.0041f040
mov ecx, eax
call fcn.0041f3d0
mov ecx, eax
call fcn.0041e5e0
mov edi, eax
mov eax, dword [0x4fa44c]
mov edx, dword [eax + 0xc]
mov ecx, 0x4fa44c
call edx
add eax, 0x10
mov dword [ebp - 0x4ec], eax
cmp edi, ebx
je 0x40ed60
test edi, 0xffff0000
jne 0x40ed60
movzx edi, di
call fcn.004030b0
cmp eax, ebx
je 0x40ed6f
push eax
mov eax, edi
lea edi, [ebp - 0x4ec]
call fcn.00403420
jmp 0x40ed6f
mov ebx, edi
lea eax, [ebp - 0x4ec]
call fcn.00403340
xor ebx, ebx
mov eax, dword [ebp - 0x4e4]
mov edi, dword [ebp - 0x4ec]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x40ee47
lea eax, [edi - 0x10]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40eda7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.game
push str.data
lea ecx, [ebp - 0x510]
inc esi
call fcn.0041f3d0
mov ecx, eax
call fcn.0041f3d0
mov ecx, eax
call fcn.0041ece0
cmp esi, eax
jb 0x40ece7
lea edi, [ebp - 0x4e0]
call fcn.0040e6e0
lea ecx, [ebp - 0x510]
call fcn.0041e370
mov esi, 0x10
cmp dword [ebp - 0x428], esi
jb 0x40ee05
mov eax, dword [ebp - 0x43c]
push eax
call fcn.0042ec40
add esp, 4
mov byte [ebp - 0x43c], bl
mov dword [ebp - 0x42c], ebx
mov dword [ebp - 0x428], 0xf
cmp dword [ebp - 0x444], esi
jb 0x40ee32
mov ecx, dword [ebp - 0x458]
push ecx
call fcn.0042ec40
add esp, 4
xor al, al
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0042e257
mov esp, ebp
pop ebp
ret 8
push str.name
push esi
push str.game
push str.data
lea ecx, [ebp - 0x510]
call fcn.0041f3d0
mov ecx, eax
call fcn.0041f3d0
mov ecx, eax
call fcn.0041f040
mov ecx, eax
call fcn.0041f3d0
mov ecx, eax
call fcn.0041e5e0
mov edx, dword [0x4fa44c]
mov edi, eax
mov eax, dword [edx + 0xc]
mov ecx, 0x4fa44c
call eax
add eax, 0x10
mov dword [ebp - 0x4e4], eax
cmp edi, ebx
je 0x40eec1
test edi, 0xffff0000
jne 0x40eec1
movzx edi, di
call fcn.004030b0
cmp eax, ebx
je 0x40eed0
push eax
mov eax, edi
lea edi, [ebp - 0x4e4]
call fcn.00403420
jmp 0x40eed0
mov ebx, edi
lea eax, [ebp - 0x4e4]
call fcn.00403340
xor ebx, ebx
push str.game_id
push esi
push str.game
push str.data
lea ecx, [ebp - 0x510]
call fcn.0041f3d0
mov ecx, eax
call fcn.0041f3d0
mov ecx, eax
call fcn.0041f040
mov ecx, eax
call fcn.0041f3d0
mov ecx, eax
call fcn.0041e5e0
mov edx, dword [0x4fa44c]
mov esi, eax
mov eax, dword [edx + 0xc]
mov ecx, 0x4fa44c
call eax
add eax, 0x10
mov dword [ebp - 0x4e8], eax
cmp esi, ebx
je 0x40ef4a
test esi, 0xffff0000
jne 0x40ef4a
movzx edi, si
call fcn.004030b0
cmp eax, ebx
je 0x40ef59
push eax
mov eax, edi
lea edi, [ebp - 0x4e8]
call fcn.00403420
jmp 0x40ef59
mov ebx, esi
lea eax, [ebp - 0x4e8]
call fcn.00403340
xor ebx, ebx
mov edi, dword [ebp - 0x514]
lea eax, [ebp - 0x4e4]
call fcn.00403ab0
mov edi, dword [ebp - 0x4f4]
lea eax, [ebp - 0x4e8]
call fcn.00403ab0
mov edi, dword [ebp - 0x4f0]
add edi, 0x24cc
lea eax, [ebp - 0x4e8]
call fcn.00403ab0
cmp byte [ebp + 0xc], bl
je 0x40efd0
push ecx
mov ecx, dword [ebp - 0x4f4]
mov eax, dword [ecx]
sub eax, 0x10
mov esi, esp
call fcn.00403c30
add eax, 0x10
mov dword [esi], eax
mov eax, dword [ebp - 0x4e4]
push ecx
add eax, 0xfffffff0
mov esi, esp
call fcn.00403c30
mov ecx, dword [ebp - 0x4f0]
add eax, 0x10
mov dword [esi], eax
call fcn.0040f180
mov eax, dword [ebp - 0x4e8]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40eff2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x4e4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40f014
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x4ec]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40f036
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea edi, [ebp - 0x4e0]
call fcn.0040e6e0
lea ecx, [ebp - 0x510]
call fcn.0041e370
mov esi, 0x10
cmp dword [ebp - 0x428], esi
jb 0x40f068
mov ecx, dword [ebp - 0x43c]
push ecx
call fcn.0042ec40
add esp, 4
mov dword [ebp - 0x428], 0xf
mov dword [ebp - 0x42c], ebx
mov byte [ebp - 0x43c], bl
cmp dword [ebp - 0x444], esi
jb 0x40f095
mov edx, dword [ebp - 0x458]
push edx
call fcn.0042ec40
add esp, 4
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0042e257
mov esp, ebp
pop ebp
ret 8
lea edi, [ebp - 0x4e0]
call fcn.0040e6e0
lea ecx, [ebp - 0x510]
call fcn.0041e370
cmp dword [ebp - 0x428], esi
jb 0x40f0d7
mov edx, dword [ebp - 0x43c]
push edx
call fcn.0042ec40
add esp, 4
mov dword [ebp - 0x428], 0xf
mov dword [ebp - 0x42c], ebx
mov byte [ebp - 0x43c], bl
cmp dword [ebp - 0x444], esi
jb 0x40ee34
mov eax, dword [ebp - 0x458]
push eax
call fcn.0042ec40
mov ecx, dword [ebp - 4]
add esp, 4
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0042e257
mov esp, ebp
pop ebp
ret 8
lea edi, [ebp - 0x4e0]
call fcn.0040e6e0
lea ecx, [ebp - 0x510]
call fcn.0041e370
cmp dword [ebp - 0x428], esi
jb 0x40f148
mov ecx, dword [ebp - 0x43c]
push ecx
call fcn.0042ec40
add esp, 4
mov dword [ebp - 0x428], 0xf
mov dword [ebp - 0x42c], ebx
mov byte [ebp - 0x43c], bl
cmp dword [ebp - 0x444], esi
jb 0x40ee32
mov edx, dword [ebp - 0x458]
push edx
jmp 0x40ee2a