Function at 0x496790
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x512868
push 0x40b390
mov eax, dword fs:[0]
push eax
add esp, 0xfffffb6c
mov eax, dword [0x517138]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x24], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov dword [ebp - 0x18], esp
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x20], 0
jmp 0x4967e2
mov eax, dword [ebp - 0x20]
add eax, 1
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0x20
jge 0x496820
cmp dword [ebp - 0x1c], 0
jge 0x4967f6
mov ecx, dword [ebp - 0x1c]
neg ecx
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
je 0x49680c
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x220]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x4967d9
mov dword [ebp - 0x224], 0
jmp 0x49683b
mov eax, dword [ebp - 0x224]
add eax, 1
mov dword [ebp - 0x224], eax
cmp dword [ebp - 0x224], 0x10
jge 0x496888
mov eax, dword [ebp - 0x224]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x49686a
mov eax, dword [ebp - 0x224]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x49687a
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x224]
mov dword [ebp - 0x1c], edx
jmp 0x496886
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x224]
mov dword [ebp - 0x1c], eax
jmp 0x49682c
mov dword [ebp - 4], 0
mov dword [ebp - 0x228], 0xffffffff
mov dword [ebp - 0x22c], 0
jmp 0x4968b4
mov ecx, dword [ebp - 0x22c]
add ecx, 1
mov dword [ebp - 0x22c], ecx
cmp dword [ebp - 0x22c], 0xe
jge 0x4968e6
mov eax, dword [ebp - 0x22c]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x4968db
mov edx, dword [ebp - 0x228]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x4968a5
mov dword [ebp - 4], 0xfffffffe
jmp 0x496906
mov dword [ebp - 0x230], 0
jmp 0x496921
mov edx, dword [ebp - 0x230]
add edx, 1
mov dword [ebp - 0x230], edx
cmp dword [ebp - 0x230], 3
jge 0x49696e
mov eax, dword [ebp - 0x230]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x496950
mov eax, dword [ebp - 0x230]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x496960
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x230]
mov dword [ebp - 0x1c], edx
jmp 0x49696c
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x230]
mov dword [ebp - 0x1c], eax
jmp 0x496912
mov dword [ebp - 0x234], 0
jmp 0x496989
mov ecx, dword [ebp - 0x234]
add ecx, 1
mov dword [ebp - 0x234], ecx
cmp dword [ebp - 0x234], 4
jge 0x4969a0
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x234]
mov dword [ebp - 0x1c], edx
jmp 0x49697a
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x4969b2
mov eax, dword [ebp - 0x1c]
imul eax, eax, 0xfffffffb
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
je 0x4969ca
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x238], 0
jmp 0x4969e5
mov edx, dword [ebp - 0x238]
add edx, 1
mov dword [ebp - 0x238], edx
cmp dword [ebp - 0x238], 9
jge 0x4969fc
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x238]
mov dword [ebp - 0x1c], eax
jmp 0x4969d6
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x496a0e
mov ecx, dword [ebp - 0x1c]
imul ecx, ecx, 0xfffffffb
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
je 0x496a26
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x23c], 0
jmp 0x496a41
mov edx, dword [ebp - 0x23c]
add edx, 1
mov dword [ebp - 0x23c], edx
cmp dword [ebp - 0x23c], 3
jge 0x496a8e
mov eax, dword [ebp - 0x23c]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x496a70
mov eax, dword [ebp - 0x23c]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x496a80
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x23c]
mov dword [ebp - 0x1c], edx
jmp 0x496a8c
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x23c]
mov dword [ebp - 0x1c], eax
jmp 0x496a32
mov dword [ebp - 4], 1
mov dword [ebp - 0x240], 0xffffffff
mov dword [ebp - 0x244], 0
jmp 0x496aba
mov ecx, dword [ebp - 0x244]
add ecx, 1
mov dword [ebp - 0x244], ecx
cmp dword [ebp - 0x244], 1
jge 0x496aec
mov eax, dword [ebp - 0x244]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x496ae1
mov edx, dword [ebp - 0x240]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x496aab
mov dword [ebp - 4], 0xfffffffe
jmp 0x496b0c
mov dword [ebp - 4], 2
mov dword [ebp - 0x248], 0xffffffff
mov dword [ebp - 0x24c], 0
jmp 0x496b38
mov edx, dword [ebp - 0x24c]
add edx, 1
mov dword [ebp - 0x24c], edx
cmp dword [ebp - 0x24c], 2
jge 0x496b6a
mov eax, dword [ebp - 0x24c]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x496b5f
mov edx, dword [ebp - 0x248]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x496b29
mov dword [ebp - 4], 0xfffffffe
jmp 0x496b8a
mov dword [ebp - 0x250], 0
jmp 0x496ba5
mov edx, dword [ebp - 0x250]
add edx, 1
mov dword [ebp - 0x250], edx
cmp dword [ebp - 0x250], 8
jge 0x496bf2
mov eax, dword [ebp - 0x250]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x496bd4
mov eax, dword [ebp - 0x250]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x496be4
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x250]
mov dword [ebp - 0x1c], edx
jmp 0x496bf0
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x250]
mov dword [ebp - 0x1c], eax
jmp 0x496b96
mov dword [ebp - 4], 3
mov dword [ebp - 0x254], 0xffffffff
mov dword [ebp - 0x258], 0
jmp 0x496c1e
mov ecx, dword [ebp - 0x258]
add ecx, 1
mov dword [ebp - 0x258], ecx
cmp dword [ebp - 0x258], 7
jge 0x496c50
mov eax, dword [ebp - 0x258]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x496c45
mov edx, dword [ebp - 0x254]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x496c0f
mov dword [ebp - 4], 0xfffffffe
jmp 0x496c70
mov dword [ebp - 4], 4
mov dword [ebp - 0x25c], 0xffffffff
mov dword [ebp - 0x260], 0
jmp 0x496c9c
mov edx, dword [ebp - 0x260]
add edx, 1
mov dword [ebp - 0x260], edx
cmp dword [ebp - 0x260], 3
jge 0x496cce
mov eax, dword [ebp - 0x260]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x496cc3
mov edx, dword [ebp - 0x25c]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x496c8d
mov dword [ebp - 4], 0xfffffffe
jmp 0x496cee
mov dword [ebp - 0x264], 0
jmp 0x496d09
mov edx, dword [ebp - 0x264]
add edx, 1
mov dword [ebp - 0x264], edx
cmp dword [ebp - 0x264], 7
jge 0x496d20
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x264]
mov dword [ebp - 0x1c], eax
jmp 0x496cfa
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x496d32
mov ecx, dword [ebp - 0x1c]
imul ecx, ecx, 0xfffffffb
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
je 0x496d4a
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x268], 0
jmp 0x496d65
mov edx, dword [ebp - 0x268]
add edx, 1
mov dword [ebp - 0x268], edx
cmp dword [ebp - 0x268], 1
jge 0x496d7c
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x268]
mov dword [ebp - 0x1c], eax
jmp 0x496d56
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x496d8e
mov ecx, dword [ebp - 0x1c]
imul ecx, ecx, 0xfffffffb
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
je 0x496da6
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x26c], 0
jmp 0x496dc1
mov edx, dword [ebp - 0x26c]
add edx, 1
mov dword [ebp - 0x26c], edx
cmp dword [ebp - 0x26c], 3
jge 0x496e02
cmp dword [ebp - 0x1c], 0
jge 0x496dd8
mov eax, dword [ebp - 0x1c]
neg eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
je 0x496dee
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x468]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x496db2
mov dword [ebp - 0x46c], 0
jmp 0x496e1d
mov eax, dword [ebp - 0x46c]
add eax, 1
mov dword [ebp - 0x46c], eax
cmp dword [ebp - 0x46c], 0
jge 0x496e34
mov ecx, dword [ebp - 0x1c]
sub ecx, dword [ebp - 0x46c]
mov dword [ebp - 0x1c], ecx
jmp 0x496e0e
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x496e46
mov edx, dword [ebp - 0x1c]
imul edx, edx, 0xfffffffb
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
je 0x496e5e
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x470], 0
jmp 0x496e79
mov edx, dword [ebp - 0x470]
add edx, 1
mov dword [ebp - 0x470], edx
cmp dword [ebp - 0x470], 4
jge 0x496ec6
mov eax, dword [ebp - 0x470]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x496ea8
mov eax, dword [ebp - 0x470]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x496eb8
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x470]
mov dword [ebp - 0x1c], edx
jmp 0x496ec4
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x470]
mov dword [ebp - 0x1c], eax
jmp 0x496e6a
mov dword [ebp - 0x474], 0
jmp 0x496ee1
mov ecx, dword [ebp - 0x474]
add ecx, 1
mov dword [ebp - 0x474], ecx
cmp dword [ebp - 0x474], 0
jge 0x496ef8
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x474]
mov dword [ebp - 0x1c], edx
jmp 0x496ed2
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x496f0a
mov eax, dword [ebp - 0x1c]
imul eax, eax, 0xfffffffb
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
je 0x496f22
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 5
mov dword [ebp - 0x478], 0xffffffff
mov dword [ebp - 0x47c], 0
jmp 0x496f4e
mov edx, dword [ebp - 0x47c]
add edx, 1
mov dword [ebp - 0x47c], edx
cmp dword [ebp - 0x47c], 3
jge 0x496f80
mov eax, dword [ebp - 0x47c]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x496f75
mov edx, dword [ebp - 0x478]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x496f3f
mov dword [ebp - 4], 0xfffffffe
jmp 0x496fa0
mov edx, 1
test edx, edx
je 0x496fda
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x480], eax
mov eax, dword [ebp - 0x480]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x496fcc
jmp 0x496fda
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x480]
mov dword [ebp - 0x1c], edx
jmp 0x496fa0
mov eax, dword [ebp - 0x1c]
add eax, 3
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x484], 0
jmp 0x496ffe
mov ecx, dword [ebp - 0x484]
add ecx, 1
mov dword [ebp - 0x484], ecx
cmp dword [ebp - 0x484], 1
jge 0x497015
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x484]
mov dword [ebp - 0x1c], edx
jmp 0x496fef
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x497027
mov eax, dword [ebp - 0x1c]
imul eax, eax, 0xfffffffb
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
je 0x49703f
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov edx, 1
test edx, edx
je 0x497079
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x488], eax
mov eax, dword [ebp - 0x488]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x49706b
jmp 0x497079
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x488]
mov dword [ebp - 0x1c], edx
jmp 0x49703f
mov eax, dword [ebp - 0x1c]
add eax, 3
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 6
mov dword [ebp - 0x48c], 0xffffffff
mov dword [ebp - 0x490], 0
jmp 0x4970ae
mov ecx, dword [ebp - 0x490]
add ecx, 1
mov dword [ebp - 0x490], ecx
cmp dword [ebp - 0x490], 0
jge 0x4970e0
mov eax, dword [ebp - 0x490]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x4970d5
mov edx, dword [ebp - 0x48c]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x49709f
mov dword [ebp - 4], 0xfffffffe
jmp 0x497100
mov edx, 1
test edx, edx
je 0x49713a
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x494], eax
mov eax, dword [ebp - 0x494]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x49712c
jmp 0x49713a
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x494]
mov dword [ebp - 0x1c], edx
jmp 0x497100
mov eax, dword [ebp - 0x1c]
add eax, 4
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x498], 0
jmp 0x49715e
mov ecx, dword [ebp - 0x498]
add ecx, 1
mov dword [ebp - 0x498], ecx
cmp dword [ebp - 0x498], 3
jge 0x497175
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x498]
mov dword [ebp - 0x1c], edx
jmp 0x49714f
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x497187
mov eax, dword [ebp - 0x1c]
imul eax, eax, 0xfffffffb
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
je 0x49719f
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x49c], 0
jmp 0x4971ba
mov edx, dword [ebp - 0x49c]
add edx, 1
mov dword [ebp - 0x49c], edx
cmp dword [ebp - 0x49c], 4
jge 0x4971d1
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x49c]
mov dword [ebp - 0x1c], eax
jmp 0x4971ab
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x4971e3
mov ecx, dword [ebp - 0x1c]
imul ecx, ecx, 0xfffffffb
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
je 0x4971fb
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov edx, 1
test edx, edx
je 0x497235
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x4a0], eax
mov eax, dword [ebp - 0x4a0]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x497227
jmp 0x497235
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x4a0]
mov dword [ebp - 0x1c], edx
jmp 0x4971fb
mov eax, dword [ebp - 0x1c]
add eax, 4
mov dword [ebp - 0x1c], eax
mov ecx, 1
test ecx, ecx
je 0x497278
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x4a4], eax
mov eax, dword [ebp - 0x4a4]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x49726a
jmp 0x497278
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x4a4]
mov dword [ebp - 0x1c], edx
jmp 0x49723e
mov eax, dword [ebp - 0x1c]
add eax, 1
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x24]
xor ecx, ebp
call fcn.004079a5
mov esp, ebp
pop ebp
ret