Function at 0x56bf40
Capabilities:
Get common file path

Disassembly:
sub esp, 0x204
mov eax, dword [0x691844]
xor eax, esp
mov dword [esp + 0x200], eax
push ebx
push ebp
push esi
push edi
xor ebx, ebx
push 0xff
lea eax, [esp + 0x115]
push ebx
push eax
mov ebp, ecx
mov byte [esp + 0x11c], bl
call sub.MSVCR90.dll_memset
push 0xff
lea ecx, [esp + 0x21]
push ebx
push ecx
mov byte [esp + 0x28], bl
call sub.MSVCR90.dll_memset
add esp, 0x18
lea edx, [esp + 0x110]
push edx
push 0x100
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea eax, [esp + 0x110]
push eax
lea ecx, [ebp + 4]
call fcn.0041f000
xor eax, eax
cmp dword [0x5e507c], ebx
je 0x56c3f0
mov edi, edi
mov cl, byte [esp + eax + 0x110]
mov byte [esp + eax + 0x10], cl
inc eax
cmp cl, bl
jne 0x56bfc0
lea edi, [esp + 0x10]
dec edi
mov al, byte [edi + 1]
inc edi
cmp al, bl
jne 0x56bfd5
mov cl, byte [0x5af25f]
lea edx, [esp + 0x10]
mov byte [edi], cl
push edx
lea ecx, [ebp + 8]
call fcn.0041f000
xor eax, eax
mov cl, byte [esp + eax + 0x110]
mov byte [esp + eax + 0x10], cl
inc eax
cmp cl, bl
jne 0x56bff4
lea edi, [esp + 0x10]
dec edi
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
cmp al, bl
jne 0x56c010
mov ecx, 5
mov esi, str.ResourceEffectScript
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
lea eax, [esp + 0x10]
push eax
lea ecx, [ebp + 0xc]
movsb byte es:[edi], byte [esi]
call fcn.0041f000
xor eax, eax
jmp 0x56c040
mov cl, byte [esp + eax + 0x110]
mov byte [esp + eax + 0x10], cl
inc eax
cmp cl, bl
jne 0x56c040
lea eax, [esp + 0x10]
dec eax
mov cl, byte [eax + 1]
inc eax
cmp cl, bl
jne 0x56c055
mov ecx, dword [str.Ini]
mov dl, byte [0x5c34e0]
mov dword [eax], ecx
mov byte [eax + 4], dl
lea eax, [esp + 0x10]
push eax
lea ecx, [ebp + 0x10]
call fcn.0041f000
xor eax, eax
lea ecx, [ecx]
mov cl, byte [esp + eax + 0x110]
mov byte [esp + eax + 0x10], cl
inc eax
cmp cl, bl
jne 0x56c080
lea eax, [esp + 0x10]
dec eax
mov cl, byte [eax + 1]
inc eax
cmp cl, bl
jne 0x56c095
mov ecx, dword [str.Sound]
mov dx, word [0x5c34d8]
mov dword [eax], ecx
mov cl, byte [0x5c34da]
mov word [eax + 4], dx
lea edx, [esp + 0x10]
mov byte [eax + 6], cl
push edx
lea ecx, [ebp + 0x14]
call fcn.0041f000
xor eax, eax
jmp 0x56c0d0
mov cl, byte [esp + eax + 0x110]
mov byte [esp + eax + 0x10], cl
inc eax
cmp cl, bl
jne 0x56c0d0
lea eax, [esp + 0x10]
dec eax
mov cl, byte [eax + 1]
inc eax
cmp cl, bl
jne 0x56c0e5
mov ecx, dword [str.Resource]
mov edx, dword [0x5c34cc]
mov dword [eax], ecx
mov cx, word [0x5c34d0]
mov dword [eax + 4], edx
lea edx, [esp + 0x10]
mov word [eax + 8], cx
push edx
lea ecx, [ebp + 0x18]
call fcn.0041f000
xor eax, eax
jmp 0x56c120
mov cl, byte [esp + eax + 0x110]
mov byte [esp + eax + 0x10], cl
inc eax
cmp cl, bl
jne 0x56c120
lea eax, [esp + 0x10]
dec eax
mov cl, byte [eax + 1]
inc eax
cmp cl, bl
jne 0x56c135
mov ecx, dword [str.BGM]
mov dl, byte [0x5c34c4]
mov dword [eax], ecx
mov byte [eax + 4], dl
lea eax, [esp + 0x10]
push eax
lea ecx, [ebp + 0x1c]
call fcn.0041f000
xor eax, eax
lea ecx, [ecx]
mov cl, byte [esp + eax + 0x110]
mov byte [esp + eax + 0x10], cl
inc eax
cmp cl, bl
jne 0x56c160
lea edi, [esp + 0x10]
dec edi
mov al, byte [edi + 1]
inc edi
cmp al, bl
jne 0x56c175
mov cl, byte [0x5af25f]
lea edx, [esp + 0x10]
mov byte [edi], cl
push edx
lea ecx, [ebp + 0x20]
call fcn.0041f000
xor eax, eax
mov cl, byte [esp + eax + 0x110]
mov byte [esp + eax + 0x10], cl
inc eax
cmp cl, bl
jne 0x56c194
lea edi, [esp + 0x10]
dec edi
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
cmp al, bl
jne 0x56c1b0
mov al, byte [0x5af25f]
lea ecx, [esp + 0x10]
push ecx
lea ecx, [ebp + 0x24]
mov byte [edi], al
call fcn.0041f000
xor eax, eax
mov edi, edi
mov cl, byte [esp + eax + 0x110]
mov byte [esp + eax + 0x10], cl
inc eax
cmp cl, bl
jne 0x56c1d0
lea edi, [esp + 0x10]
dec edi
mov al, byte [edi + 1]
inc edi
cmp al, bl
jne 0x56c1e5
mov dl, byte [0x5af25f]
lea eax, [esp + 0x10]
push eax
lea ecx, [ebp + 0x28]
mov byte [edi], dl
call fcn.0041f000
xor eax, eax
mov cl, byte [esp + eax + 0x110]
mov byte [esp + eax + 0x10], cl
inc eax
cmp cl, bl
jne 0x56c204
lea edi, [esp + 0x10]
dec edi
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
cmp al, bl
jne 0x56c220
mov cl, byte [0x5af25f]
lea edx, [esp + 0x10]
mov byte [edi], cl
push edx
lea ecx, [ebp + 0x2c]
call fcn.0041f000
xor eax, eax
nop
mov cl, byte [esp + eax + 0x110]
mov byte [esp + eax + 0x10], cl
inc eax
cmp cl, bl
jne 0x56c240
lea edi, [esp + 0x10]
dec edi
mov al, byte [edi + 1]
inc edi
cmp al, bl
jne 0x56c255
mov al, byte [0x5af25f]
lea ecx, [esp + 0x10]
push ecx
lea ecx, [ebp + 0x30]
mov byte [edi], al
call fcn.0041f000
xor eax, eax
mov cl, byte [esp + eax + 0x110]
mov byte [esp + eax + 0x10], cl
inc eax
cmp cl, bl
jne 0x56c273
lea edi, [esp + 0x10]
dec edi
mov al, byte [edi + 1]
inc edi
cmp al, bl
jne 0x56c288
mov dl, byte [0x5af25f]
lea eax, [esp + 0x10]
push eax
lea ecx, [ebp + 0x38]
mov byte [edi], dl
call fcn.0041f000
xor eax, eax
jmp 0x56c2b0
mov cl, byte [esp + eax + 0x110]
mov byte [esp + eax + 0x10], cl
inc eax
cmp cl, bl
jne 0x56c2b0
lea edi, [esp + 0x10]
dec edi
mov al, byte [edi + 1]
inc edi
cmp al, bl
jne 0x56c2c5
mov cl, byte [0x5af25f]
lea edx, [esp + 0x10]
mov byte [edi], cl
push edx
lea ecx, [ebp + 0x3c]
call fcn.0041f000
xor eax, eax
mov cl, byte [esp + eax + 0x110]
mov byte [esp + eax + 0x10], cl
inc eax
cmp cl, bl
jne 0x56c2e4
lea eax, [esp + 0x10]
dec eax
lea esp, [esp]
mov cl, byte [eax + 1]
inc eax
cmp cl, bl
jne 0x56c300
mov ecx, dword [str.ImageMinimap]
mov edx, dword [0x5c34b4]
mov dword [eax], ecx
mov ecx, dword [0x5c34b8]
mov dword [eax + 4], edx
mov dx, word [0x5c34bc]
mov dword [eax + 8], ecx
mov cl, byte [0x5c34be]
mov word [eax + 0xc], dx
lea edx, [esp + 0x10]
mov byte [eax + 0xe], cl
push edx
lea ecx, [ebp + 0x34]
call fcn.0041f000
xor eax, eax
jmp 0x56c350
mov cl, byte [esp + eax + 0x110]
mov byte [esp + eax + 0x10], cl
inc eax
cmp cl, bl
jne 0x56c350
lea edi, [esp + 0x10]
dec edi
mov al, byte [edi + 1]
inc edi
cmp al, bl
jne 0x56c365
mov al, byte [0x5af25f]
lea ecx, [esp + 0x10]
push ecx
lea ecx, [ebp + 0x40]
mov byte [edi], al
call fcn.0041f000
xor eax, eax
mov cl, byte [esp + eax + 0x110]
mov byte [esp + eax + 0x10], cl
inc eax
cmp cl, bl
jne 0x56c383
lea edi, [esp + 0x10]
dec edi
mov al, byte [edi + 1]
inc edi
cmp al, bl
jne 0x56c398
mov dl, byte [0x5af25f]
lea eax, [esp + 0x10]
push eax
lea ecx, [ebp + 0x44]
mov byte [edi], dl
call fcn.0041f000
xor eax, eax
jmp 0x56c3c0
mov cl, byte [esp + eax + 0x110]
mov byte [esp + eax + 0x10], cl
inc eax
cmp cl, bl
jne 0x56c3c0
lea edi, [esp + 0x10]
dec edi
mov al, byte [edi + 1]
inc edi
cmp al, bl
jne 0x56c3d5
mov cl, byte [0x5af25f]
lea edx, [esp + 0x10]
mov byte [edi], cl
push edx
jmp 0x56c926
mov cl, byte [esp + eax + 0x110]
mov byte [esp + eax + 0x10], cl
inc eax
cmp cl, bl
jne 0x56c3f0
lea edi, [esp + 0x10]
dec edi
mov al, byte [edi + 1]
inc edi
cmp al, bl
jne 0x56c405
mov al, byte [0x5af25f]
lea ecx, [esp + 0x10]
push ecx
lea ecx, [ebp + 8]
mov byte [edi], al
call fcn.0041f000
xor eax, eax
mov cl, byte [esp + eax + 0x110]
mov byte [esp + eax + 0x10], cl
inc eax
cmp cl, bl
jne 0x56c423
lea edi, [esp + 0x10]
dec edi
mov al, byte [edi + 1]
inc edi
cmp al, bl
jne 0x56c438
mov ecx, 5
mov esi, str.ResourceEffectScript
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
lea edx, [esp + 0x10]
push edx
lea ecx, [ebp + 0xc]
movsb byte es:[edi], byte [esi]
call fcn.0041f000
xor eax, eax
mov edi, edi
mov cl, byte [esp + eax + 0x110]
mov byte [esp + eax + 0x10], cl
inc eax
cmp cl, bl
jne 0x56c460
lea eax, [esp + 0x10]
dec eax
mov cl, byte [eax + 1]
inc eax
cmp cl, bl
jne 0x56c475
mov ecx, dword [str.Ini]
mov dl, byte [0x5c34e0]
mov dword [eax], ecx
mov byte [eax + 4], dl
lea eax, [esp + 0x10]
push eax
lea ecx, [ebp + 0x10]
call fcn.0041f000
xor eax, eax
lea ecx, [ecx]
mov cl, byte [esp + eax + 0x110]
mov byte [esp + eax + 0x10], cl
inc eax
cmp cl, bl
jne 0x56c4a0
lea eax, [esp + 0x10]
dec eax
mov cl, byte [eax + 1]
inc eax
cmp cl, bl
jne 0x56c4b5
mov ecx, dword [str.Sound]
mov dx, word [0x5c34d8]
mov dword [eax], ecx
mov cl, byte [0x5c34da]
mov word [eax + 4], dx
lea edx, [esp + 0x10]
mov byte [eax + 6], cl
push edx
lea ecx, [ebp + 0x14]
call fcn.0041f000
xor eax, eax
jmp 0x56c4f0
mov cl, byte [esp + eax + 0x110]
mov byte [esp + eax + 0x10], cl
inc eax
cmp cl, bl
jne 0x56c4f0
lea eax, [esp + 0x10]
dec eax
mov cl, byte [eax + 1]
inc eax
cmp cl, bl
jne 0x56c505
mov ecx, dword [str.Resource]
mov edx, dword [0x5c34cc]
mov dword [eax], ecx
mov cx, word [0x5c34d0]
mov dword [eax + 4], edx
lea edx, [esp + 0x10]
mov word [eax + 8], cx
push edx
lea ecx, [ebp + 0x18]
call fcn.0041f000
xor eax, eax
jmp 0x56c540
mov cl, byte [esp + eax + 0x110]
mov byte [esp + eax + 0x10], cl
inc eax
cmp cl, bl
jne 0x56c540
lea eax, [esp + 0x10]
dec eax
mov cl, byte [eax + 1]
inc eax
cmp cl, bl
jne 0x56c555
mov ecx, dword [str.BGM]
mov dl, byte [0x5c34c4]
mov dword [eax], ecx
mov byte [eax + 4], dl
lea eax, [esp + 0x10]
push eax
lea ecx, [ebp + 0x1c]
call fcn.0041f000
xor eax, eax
lea ecx, [ecx]
mov cl, byte [esp + eax + 0x110]
mov byte [esp + eax + 0x10], cl
inc eax
cmp cl, bl
jne 0x56c580
lea eax, [esp + 0x10]
dec eax
mov cl, byte [eax + 1]
inc eax
cmp cl, bl
jne 0x56c595
mov ecx, dword [str.3DDataCharacter]
mov edx, dword [0x5c34a0]
mov dword [eax], ecx
mov ecx, dword [0x5c34a4]
mov dword [eax + 4], edx
mov edx, dword [0x5c34a8]
mov dword [eax + 8], ecx
mov cx, word [0x5c34ac]
mov dword [eax + 0xc], edx
lea edx, [esp + 0x10]
mov word [eax + 0x10], cx
push edx
lea ecx, [ebp + 0x20]
call fcn.0041f000
xor eax, eax
lea ebx, [ebx]
mov cl, byte [esp + eax + 0x110]
mov byte [esp + eax + 0x10], cl
inc eax
cmp cl, bl
jne 0x56c5e0
lea eax, [esp + 0x10]
dec eax
mov cl, byte [eax + 1]
inc eax
cmp cl, bl
jne 0x56c5f5
mov ecx, dword [str.3DDataPet]
mov edx, dword [0x5c3494]
mov dword [eax], ecx
mov ecx, dword [0x5c3498]
mov dword [eax + 4], edx
lea edx, [esp + 0x10]
mov dword [eax + 8], ecx
push edx
lea ecx, [ebp + 0x24]
call fcn.0041f000
xor eax, eax
jmp 0x56c630
mov cl, byte [esp + eax + 0x110]
mov byte [esp + eax + 0x10], cl
inc eax
cmp cl, bl
jne 0x56c630
lea eax, [esp + 0x10]
dec eax
mov cl, byte [eax + 1]
inc eax
cmp cl, bl
jne 0x56c645
mov ecx, dword [str.3DDataMonster]
mov edx, dword [0x5c3484]
mov dword [eax], ecx
mov ecx, dword [0x5c3488]
mov dword [eax + 4], edx
mov edx, dword [0x5c348c]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
lea eax, [esp + 0x10]
push eax
lea ecx, [ebp + 0x28]
call fcn.0041f000
xor eax, eax
nop
mov cl, byte [esp + eax + 0x110]
mov byte [esp + eax + 0x10], cl
inc eax
cmp cl, bl
jne 0x56c680
lea eax, [esp + 0x10]
dec eax
mov cl, byte [eax + 1]
inc eax
cmp cl, bl
jne 0x56c695
mov ecx, dword [str.3DDataNpc]
mov edx, dword [0x5c3478]
mov dword [eax], ecx
mov ecx, dword [0x5c347c]
mov dword [eax + 4], edx
lea edx, [esp + 0x10]
mov dword [eax + 8], ecx
push edx
lea ecx, [ebp + 0x2c]
call fcn.0041f000
xor eax, eax
jmp 0x56c6d0
mov cl, byte [esp + eax + 0x110]
mov byte [esp + eax + 0x10], cl
inc eax
cmp cl, bl
jne 0x56c6d0
lea eax, [esp + 0x10]
dec eax
mov cl, byte [eax + 1]
inc eax
cmp cl, bl
jne 0x56c6e5
mov ecx, dword [str.3DDataEffect]
mov edx, dword [0x5c3468]
mov dword [eax], ecx
mov ecx, dword [0x5c346c]
mov dword [eax + 4], edx
mov dx, word [0x5c3470]
mov dword [eax + 8], ecx
mov cl, byte [0x5c3472]
mov word [eax + 0xc], dx
lea edx, [esp + 0x10]
mov byte [eax + 0xe], cl
push edx
lea ecx, [ebp + 0x30]
call fcn.0041f000
xor eax, eax
lea ebx, [ebx]
mov cl, byte [esp + eax + 0x110]
mov byte [esp + eax + 0x10], cl
inc eax
cmp cl, bl
jne 0x56c730
lea eax, [esp + 0x10]
dec eax
mov cl, byte [eax + 1]
inc eax
cmp cl, bl
jne 0x56c745
mov ecx, dword [str.3DDataMap]
mov edx, dword [0x5c345c]
mov dword [eax], ecx
mov ecx, dword [0x5c3460]
mov dword [eax + 4], edx
lea edx, [esp + 0x10]
mov dword [eax + 8], ecx
push edx
lea ecx, [ebp + 0x38]
call fcn.0041f000
xor eax, eax
jmp 0x56c780
mov cl, byte [esp + eax + 0x110]
mov byte [esp + eax + 0x10], cl
inc eax
cmp cl, bl
jne 0x56c780
lea eax, [esp + 0x10]
dec eax
mov cl, byte [eax + 1]
inc eax
cmp cl, bl
jne 0x56c795
mov ecx, dword [str.3DDataCloud]
mov edx, dword [0x5c344c]
mov dword [eax], ecx
mov ecx, dword [0x5c3450]
mov dword [eax + 4], edx
mov dx, word [0x5c3454]
mov dword [eax + 8], ecx
mov word [eax + 0xc], dx
lea eax, [esp + 0x10]
push eax
lea ecx, [ebp + 0x3c]
call fcn.0041f000
xor eax, eax
mov cl, byte [esp + eax + 0x110]
mov byte [esp + eax + 0x10], cl
inc eax
cmp cl, bl
jne 0x56c7d1
lea eax, [esp + 0x10]
dec eax
mov cl, byte [eax + 1]
inc eax
cmp cl, bl
jne 0x56c7e6
mov ecx, dword [str.ImageMinimap]
mov edx, dword [0x5c34b4]
mov dword [eax], ecx
mov ecx, dword [0x5c34b8]
mov dword [eax + 4], edx
mov dx, word [0x5c34bc]
mov dword [eax + 8], ecx
mov cl, byte [0x5c34be]
mov word [eax + 0xc], dx
lea edx, [esp + 0x10]
mov byte [eax + 0xe], cl
push edx
lea ecx, [ebp + 0x34]
call fcn.0041f000
xor eax, eax
jmp 0x56c830
mov cl, byte [esp + eax + 0x110]
mov byte [esp + eax + 0x10], cl
inc eax
cmp cl, bl
jne 0x56c830
lea eax, [esp + 0x10]
dec eax
mov cl, byte [eax + 1]
inc eax
cmp cl, bl
jne 0x56c845
mov ecx, dword [str.3DDataMapObject]
mov edx, dword [0x5c3438]
mov dword [eax], ecx
mov ecx, dword [0x5c343c]
mov dword [eax + 4], edx
mov edx, dword [0x5c3440]
mov dword [eax + 8], ecx
mov cx, word [0x5c3444]
mov dword [eax + 0xc], edx
lea edx, [esp + 0x10]
mov word [eax + 0x10], cx
push edx
lea ecx, [ebp + 0x40]
call fcn.0041f000
xor eax, eax
lea ebx, [ebx]
mov cl, byte [esp + eax + 0x110]
mov byte [esp + eax + 0x10], cl
inc eax
cmp cl, bl
jne 0x56c890
lea eax, [esp + 0x10]
dec eax
mov cl, byte [eax + 1]
inc eax
cmp cl, bl
jne 0x56c8a5
mov ecx, dword [str.3DDataTitan]
mov edx, dword [0x5c3428]
mov dword [eax], ecx
mov ecx, dword [0x5c342c]
mov dword [eax + 4], edx
mov dx, word [0x5c3430]
mov dword [eax + 8], ecx
mov word [eax + 0xc], dx
lea eax, [esp + 0x10]
push eax
lea ecx, [ebp + 0x44]
call fcn.0041f000
xor eax, eax
mov cl, byte [esp + eax + 0x110]
mov byte [esp + eax + 0x10], cl
inc eax
cmp cl, bl
jne 0x56c8e1
lea eax, [esp + 0x10]
dec eax
mov cl, byte [eax + 1]
inc eax
cmp cl, bl
jne 0x56c8f6
mov ecx, dword [str.3DDataMap2]
mov edx, dword [0x5c3418]
mov dword [eax], ecx
mov ecx, dword [0x5c341c]
mov dword [eax + 4], edx
mov dl, byte [0x5c3420]
mov dword [eax + 8], ecx
mov byte [eax + 0xc], dl
lea eax, [esp + 0x10]
push eax
lea ecx, [ebp + 0x48]
call fcn.0041f000
mov ecx, dword [esp + 0x210]
pop edi
pop esi
mov dword [ebp + 0x50], ebx
pop ebp
pop ebx
xor ecx, esp
call fcn.005997a8
add esp, 0x204
ret