Function at 0x45b280
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x120
mov eax, dword [0x4ab000]
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 0x45b2d5
mov ecx, eax
sub ecx, eax
sar ecx, 2
lea edi, [ecx*4]
push edi
push eax
push esi
call fcn.0045ce80
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 0x45b34c
mov edi, edi
mov edi, dword [esi + 0x10]
test edi, edi
je 0x45b305
mov ecx, edi
call fcn.0045b980
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 0x45b347
mov eax, dword [esi + 8]
cmp byte [eax + 0x15], 0
jne 0x45b32c
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0x15], 0
jne 0x45b347
mov edi, edi
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0x15], 0
je 0x45b320
jmp 0x45b347
mov eax, dword [esi + 4]
cmp byte [eax + 0x15], 0
jne 0x45b345
cmp esi, dword [eax + 8]
jne 0x45b345
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0x15], 0
je 0x45b335
mov esi, eax
cmp esi, dword [ecx + 0x20]
jne 0x45b2e0
xor eax, eax
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x110], eax
cmp dword [ebp + 8], eax
jle 0x45b583
fldz
fsub qword [0x497948]
fmul qword [0x497960]
fsub qword [0x492768]
fstp dword [ebp - 0x108]
fld dword [ebp - 0x108]
call fcn.0045d810
mov dword [ebp - 0x10c], eax
mov edi, edi
mov eax, dword [ebx + 4]
lea ecx, [ebp - 0x10c]
cmp ecx, eax
jae 0x45b403
mov edx, dword [ebx]
cmp edx, ecx
ja 0x45b403
mov esi, ecx
mov ecx, dword [ebx + 8]
sub esi, edx
sar esi, 2
cmp eax, ecx
jne 0x45b3ee
sub eax, edx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x45b596
sub ecx, edx
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x45b3ee
mov edx, ecx
shr edx, 1
mov edi, 0x3fffffff
sub edi, edx
cmp edi, ecx
jae 0x45b3de
xor ecx, ecx
jmp 0x45b3e0
add ecx, edx
cmp ecx, eax
jae 0x45b3e6
mov ecx, eax
push ecx
mov ecx, ebx
call fcn.0045ac90
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.0040b0c0
jmp 0x45b45d
mov ecx, dword [ebx + 8]
cmp eax, ecx
jne 0x45b449
mov edx, dword [ebx]
sub eax, edx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x45b596
sub ecx, edx
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x45b449
mov edx, ecx
shr edx, 1
mov esi, 0x3fffffff
sub esi, edx
cmp esi, ecx
jae 0x45b439
xor ecx, ecx
jmp 0x45b43b
add ecx, edx
cmp ecx, eax
jae 0x45b441
mov ecx, eax
push ecx
mov ecx, ebx
call fcn.0045ac90
mov ecx, dword [ebx + 4]
lea eax, [ebp - 0x10c]
push eax
push ecx
lea edx, [ebx + 0xc]
push edx
call fcn.0040b0c0
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 0x45b480
mov ecx, dword [str.Data_sounds_]
mov edx, dword [0x497954]
mov dword [eax], ecx
mov ecx, dword [0x497958]
mov dword [eax + 4], edx
mov dx, word [0x49795c]
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 0x45b4c0
lea edi, [ebp - 0x104]
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x45b4d2
mov edx, dword [0x49de00]
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 [0x49de04]
mov esi, dword [ebp - 0x114]
mov dword [eax], edx
mov edx, dword [0x49de08]
mov dword [eax + 4], ecx
mov ecx, dword [0x49de0c]
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.0045c560
cmp dword [ebp - 0x108], 0
je 0x45b56d
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.0045b200
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 0x45b390
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0045d691
mov esp, ebp
pop ebp
ret 8
push 0x4925b0
call fcn.0045c833
int3