Function at 0x459b70
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x120
mov eax, dword [0x4a4cf0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
lea ebx, [ecx + 0xc]
push esi
mov esi, dword [ebx]
mov dword [ebp - 0x11c], eax
mov eax, dword [ebx + 4]
push edi
mov dword [ebp - 0x114], ecx
cmp esi, eax
je 0x459bc5
mov ecx, eax
sub ecx, eax
sar ecx, 2
lea edi, [ecx*4]
push edi
push eax
push esi
call fcn.0045b7d0
mov ecx, dword [ebp - 0x114]
add esp, 0xc
add edi, esi
mov dword [ebx + 4], edi
mov eax, dword [ecx + 0x20]
mov esi, dword [eax]
cmp esi, eax
je 0x459c3c
mov edi, edi
mov edi, dword [esi + 0x10]
test edi, edi
je 0x459bf5
mov ecx, edi
call fcn.0045a2d0
mov edx, dword [edi]
mov eax, dword [edx]
push 1
mov ecx, edi
call eax
mov ecx, dword [ebp - 0x114]
mov dword [esi + 0x10], 0
cmp byte [esi + 0x15], 0
jne 0x459c37
mov eax, dword [esi + 8]
cmp byte [eax + 0x15], 0
jne 0x459c1c
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0x15], 0
jne 0x459c37
mov edi, edi
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0x15], 0
je 0x459c10
jmp 0x459c37
mov eax, dword [esi + 4]
cmp byte [eax + 0x15], 0
jne 0x459c35
cmp esi, dword [eax + 8]
jne 0x459c35
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0x15], 0
je 0x459c25
mov esi, eax
cmp esi, dword [ecx + 0x20]
jne 0x459bd0
xor eax, eax
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x110], eax
cmp dword [ebp + 8], eax
jle 0x459e73
fldz
fsub qword [0x4911c0]
fmul qword [0x4911d8]
fsub qword [0x48bf00]
fstp dword [ebp - 0x108]
fld dword [ebp - 0x108]
call fcn.0045c160
mov dword [ebp - 0x10c], eax
mov edi, edi
mov eax, dword [ebx + 4]
lea ecx, [ebp - 0x10c]
cmp ecx, eax
jae 0x459cf3
mov edx, dword [ebx]
cmp edx, ecx
ja 0x459cf3
mov esi, ecx
mov ecx, dword [ebx + 8]
sub esi, edx
sar esi, 2
cmp eax, ecx
jne 0x459cde
sub eax, edx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x459e86
sub ecx, edx
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x459cde
mov edx, ecx
shr edx, 1
mov edi, 0x3fffffff
sub edi, edx
cmp edi, ecx
jae 0x459cce
xor ecx, ecx
jmp 0x459cd0
add ecx, edx
cmp ecx, eax
jae 0x459cd6
mov ecx, eax
push ecx
mov ecx, ebx
call fcn.00459220
mov edx, dword [ebx]
mov ecx, dword [ebx + 4]
lea eax, [edx + esi*4]
push eax
push ecx
lea edx, [ebx + 0xc]
push edx
call fcn.00458fd0
jmp 0x459d4d
mov ecx, dword [ebx + 8]
cmp eax, ecx
jne 0x459d39
mov edx, dword [ebx]
sub eax, edx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x459e86
sub ecx, edx
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x459d39
mov edx, ecx
shr edx, 1
mov esi, 0x3fffffff
sub esi, edx
cmp esi, ecx
jae 0x459d29
xor ecx, ecx
jmp 0x459d2b
add ecx, edx
cmp ecx, eax
jae 0x459d31
mov ecx, eax
push ecx
mov ecx, ebx
call fcn.00459220
mov ecx, dword [ebx + 4]
lea eax, [ebp - 0x10c]
push eax
push ecx
lea edx, [ebx + 0xc]
push edx
call fcn.00458fd0
add dword [ebx + 4], 4
add esp, 0xc
lea eax, [ebp - 0x104]
push eax
push 0x100
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea eax, [ebp - 0x104]
dec eax
lea ecx, [ecx]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x459d70
mov ecx, dword [str.Data_sounds_]
mov edx, dword [0x4911cc]
mov dword [eax], ecx
mov ecx, dword [0x4911d0]
mov dword [eax + 4], edx
mov dx, word [0x4911d4]
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0x110]
mov word [eax + 0xc], dx
mov eax, dword [ebp - 0x11c]
mov eax, dword [eax + ecx*4]
mov ecx, eax
mov edi, edi
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x459db0
lea edi, [ebp - 0x104]
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x459dc2
mov edx, dword [0x497670]
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
push 1
mov ecx, eax
sub esp, 0x10
mov eax, esp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [0x497674]
mov esi, dword [ebp - 0x114]
mov dword [eax], edx
mov edx, dword [0x497678]
mov dword [eax + 4], ecx
mov ecx, dword [0x49767c]
mov dword [eax + 8], edx
push 0
mov dword [eax + 0xc], ecx
mov ecx, dword [esi + 8]
lea edx, [ebp - 0x104]
push edx
lea eax, [ebp - 0x108]
push eax
mov dword [ebp - 0x108], 0
call fcn.0045aeb0
cmp dword [ebp - 0x108], 0
je 0x459e5d
mov eax, dword [ebp - 0x118]
lea ecx, [ebp - 0x120]
mov dword [ebp - 0x120], eax
inc eax
push ecx
lea ecx, [esi + 0x1c]
mov dword [ebp - 0x118], eax
call fcn.00459af0
mov edx, dword [ebp - 0x108]
mov dword [eax], edx
mov eax, dword [ebp - 0x110]
inc eax
mov dword [ebp - 0x110], eax
cmp eax, dword [ebp + 8]
jl 0x459c80
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0045bfe1
mov esp, ebp
pop ebp
ret 8
push 0x48bd48
call fcn.0045b183
int3