Function at 0x496230
Capabilities:
Get common file path

Disassembly:
push ebx
push esi
push edi
add esp, 0xffffffe0
mov esi, eax
mov byte [esi + 0x11b], 0x12
mov al, byte [esi + 0x50]
xor edx, edx
mov dl, al
cmp edx, 4
ja case.default.0x49624f
jmp dword [edx*4 + 0x496256]
mov byte [esi + 0x50], 0
lea edx, [esi + 0x91]
mov eax, esi
call fcn.00494110
jmp case.default.0x49624f
mov dl, byte [esi + 0xa1]
sub dl, 2
je 0x4962ac
dec dl
jne 0x4962d3
mov byte [esi + 0x50], 0
lea edx, [esi + 0x91]
mov eax, esi
call fcn.00494110
mov eax, esi
call fcn.004966d4
jmp case.default.0x49624f
cmp byte [esi + 0x64], 0
jne case.default.0x49624f
mov byte [esi + 0x50], 0
lea edx, [esi + 0x91]
mov eax, esi
call fcn.00494110
mov eax, esi
call fcn.004964f0
jmp case.default.0x49624f
mov byte [esi + 0xa1], al
mov byte [esi + 0x50], 0
lea edx, [esi + 0x91]
mov eax, esi
call fcn.00494110
mov eax, dword [esi + 0x180]
cmp byte [eax + 0x10], 0
je case.default.0x49624f
mov eax, esi
call fcn.0049aecc
test eax, eax
je 0x496311
mov eax, esi
call fcn.0049aecc
mov edx, dword [eax]
call dword [edx + 0x7c]
xor edx, edx
mov eax, esi
call fcn.00490f8c
jmp case.default.0x49624f
mov al, byte [esi + 0xa1]
dec al
je 0x49632f
sub al, 2
je 0x496342
jmp 0x496355
mov eax, esi
call fcn.004964f0
mov byte [esi + 0xa1], 0
jmp case.default.0x49624f
mov eax, esi
call fcn.004966d4
mov byte [esi + 0xa1], 0
jmp case.default.0x49624f
mov byte [esi + 0x50], 0
lea edx, [esi + 0x91]
mov eax, esi
call fcn.00494110
jmp case.default.0x49624f
lea edx, [esp + 0x10]
mov eax, esi
mov ecx, dword [eax]
call dword [ecx + 0x5c]
lea eax, [esp + 0x10]
call fcn.00467520
cmp eax, dword [esi + 0x11c]
je 0x496390
cmp byte [esi + 0xa1], 1
jne 0x4963a3
mov eax, esi
call fcn.004964f0
mov byte [esi + 0xa1], 0
jmp case.default.0x49624f
mov byte [esi + 0x50], 0
mov eax, dword [esi + 0x95]
neg eax
push eax
mov eax, dword [esi + 0x91]
neg eax
push eax
lea eax, [esi + 0x91]
push eax
call fcn.004075f0
mov eax, esi
call fcn.0049aecc
mov eax, dword [eax + 0x44]
push eax
mov eax, esi
call fcn.0049aecc
mov eax, dword [eax + 0x40]
push eax
lea eax, [esi + 0x91]
push eax
call fcn.004075f0
lea edx, [esi + 0x91]
mov eax, esi
call fcn.00494110
jmp case.default.0x49624f
push esi
add esi, 0x91
lea edi, [esp + 4]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop esi
mov bl, byte [esi + 0xa1]
cmp byte [esi + 0x64], 0
je 0x496445
mov eax, dword [0x4e5a3c]
mov eax, dword [eax]
call fcn.004644c4
push 9
mov eax, dword [0x4e5a3c]
mov eax, dword [eax]
mov eax, dword [eax + 0x30]
push eax
call fcn.00407750
mov eax, dword [0x4e5a3c]
mov eax, dword [eax]
mov eax, dword [eax + 0x30]
push eax
call fcn.004076b0
jmp 0x496461
push 9
mov eax, esi
call fcn.0049aef0
push eax
call fcn.00407750
mov eax, esi
call fcn.0049aef0
push eax
call fcn.004076b0
lea eax, [esi + 0xa4]
push eax
push 2
call sub.shell32.dll_SHGetSpecialFolderLocation
mov byte [esi + 0xa1], bl
push esi
lea edi, [esi + 0x91]
lea esi, [esp + 4]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop esi
mov al, byte [esi + 0xa1]
dec al
je 0x496495
sub al, 2
je 0x4964b5
jmp 0x4964d5
mov eax, esi
call fcn.004964f0
push esi
lea edi, [esi + 0x91]
lea esi, [esp + 4]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop esi
mov byte [esi + 0xa1], 0
jmp case.default.0x49624f
mov eax, esi
call fcn.004966d4
push esi
lea edi, [esi + 0x91]
lea esi, [esp + 4]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop esi
mov byte [esi + 0xa1], 0
jmp case.default.0x49624f
mov byte [esi + 0x50], 0
lea edx, [esi + 0x91]
mov eax, esi
call fcn.00494110
add esp, 0x20
pop edi
pop esi
pop ebx
ret