Function at 0x464600
Capabilities:
Check for time delay via gettickcount
Get common file path

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1294
call fcn.004703d0
mov eax, dword [0x4a02f0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, ecx
lea ecx, [ebx + 0x26dc]
push esi
mov dword [ebp - 0x1278], ecx
mov ecx, dword [ecx]
push edi
mov edi, dword [ecx + eax*4]
mov dword [ebp - 0x1280], eax
mov dword [ebp - 0x1288], edi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebx + 0x26d0]
xor esi, esi
mov dword [ebx + 0x26d4], eax
mov eax, dword [edi + 0x20]
mov dword [edi + 0x2c], esi
cmp dword [eax + 4], 1
je 0x464b2b
push edi
mov ecx, ebx
call fcn.00461629
mov dword [ebx + 0x26cc], eax
mov ecx, dword [edi + 0x20]
cmp ecx, esi
je 0x46467b
mov dword [ecx + 0x2450], eax
cmp dword [ebx + 0x26cc], 0xc8
jne 0x464957
push edi
mov ecx, ebx
call fcn.00462af9
push edi
mov ecx, ebx
call fcn.00461515
push edi
mov ecx, ebx
call fcn.004618e8
push edi
mov ecx, ebx
call fcn.0046166e
push edi
mov ecx, ebx
call fcn.004614d1
mov edx, dword [edi + 0x38]
mov eax, dword [edi + 0x3c]
cmp dword [ebx + 0x5d108], edx
jne 0x464957
cmp dword [ebx + 0x5d10c], eax
jne 0x464957
xor eax, eax
cmp dword [ebx + 0x2690], esi
je 0x4646e4
cmp dword [edi + 0x30], 1
sete al
jmp 0x4646e5
inc eax
cmp eax, esi
je 0x464957
mov eax, dword [ebx + 0x5d110]
mov ecx, dword [ebx + 0x5d114]
cmp eax, esi
jne 0x464705
cmp ecx, esi
je 0x4647df
cmp eax, edx
jne 0x464712
cmp ecx, dword [edi + 0x3c]
je 0x4647df
mov edi, dword [edi + 0x20]
cmp edi, esi
je 0x464723
mov dword [edi + 0x244c], 1
push dword [ebp - 0x1280]
mov ecx, ebx
call fcn.00462bff
xor ecx, ecx
lea edx, [ebx + 0x270c]
mov eax, 0x90e0
cmp dword [edx], esi
je 0x46474e
inc ecx
add edx, eax
cmp ecx, 0xa
jl 0x46473d
jmp 0x464a36
imul ecx, ecx, 0x90e0
lea edi, [ecx + ebx + 0x2700]
mov dword [ebp - 0x1288], edi
cmp edi, esi
je 0x464a36
push eax
push esi
push edi
call fcn.0046e0e0
or dword [edi + 0x38], 0xffffffff
or dword [edi + 0x3c], 0xffffffff
add esp, 0xc
push esi
push 1
push 1
push esi
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov dword [edi + 0xc], eax
cmp eax, esi
je 0x464a36
push edi
mov ecx, ebx
call fcn.00462724
test eax, eax
je 0x464a36
mov dword [edi + 0x28], esi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [edi + 8], eax
mov eax, dword [edi + 0x20]
cmp dword [eax + 4], 1
je 0x4647c8
push edi
mov ecx, ebx
call fcn.00461eff
test eax, eax
je 0x464a36
mov ecx, dword [ebp - 0x1278]
lea eax, [ebp - 0x1288]
push eax
call fcn.00435887
jmp 0x464979
mov eax, dword [edi + 0x30]
push edi
mov ecx, ebx
mov dword [ebx + 0x26fc], eax
call fcn.00461723
test eax, eax
je 0x4648a5
or eax, 0xffffffff
mov dword [ebx + 0x2690], 1
mov dword [ebx + 0x247c], esi
mov dword [ebx + 0x26fc], esi
mov dword [edi + 0x30], esi
mov dword [ebx + 0x5d108], eax
mov dword [ebx + 0x5d10c], eax
mov dword [edi + 0x38], eax
mov dword [edi + 0x3c], eax
lea eax, [ebx + 0x5d128]
push eax
push 0x4912cc
lea eax, [ebx + 0x5d330]
push 0x103
push eax
call fcn.0042c2f6
push 0x208
lea eax, [ebx + 0x5d128]
push esi
push eax
call fcn.0046e0e0
xor eax, eax
push 0x206
mov word [ebp - 0x20c], ax
lea eax, [ebp - 0x20a]
push esi
push eax
call fcn.0046e0e0
add esp, 0x28
lea eax, [ebp - 0x20c]
push eax
push 0x103
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea eax, [ebx + 0x5d128]
push eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
push 0x493830
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
mov eax, dword [edi + 0x20]
cmp eax, esi
je 0x4648c7
cmp dword [eax + 0x2448], 0xffffffff
jne 0x4648c7
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [edi + 8]
mov ecx, dword [edi + 0x20]
mov dword [ecx + 0x2448], eax
push dword [edi + 0x1c]
mov eax, dword [ebx]
push 2
mov ecx, ebx
call dword [eax + 4]
test eax, eax
je 0x464a36
mov eax, dword [ebx]
push esi
push 3
mov ecx, ebx
call dword [eax + 4]
test eax, eax
je 0x464a36
mov ecx, ebx
call fcn.00463d49
test eax, eax
je 0x464a29
mov eax, dword [ebx]
push esi
push 4
mov ecx, ebx
call dword [eax + 4]
test eax, eax
je 0x464a36
cmp dword [ebx + 0x26fc], esi
je 0x464ea9
mov eax, dword [ebx + 0x5d108]
cmp eax, dword [ebx + 0x5d118]
jne 0x464bbb
mov eax, dword [ebx + 0x5d10c]
cmp eax, dword [ebx + 0x5d11c]
jne 0x464bbb
push dword [ebp - 0x1280]
mov ecx, ebx
call fcn.00462bff
mov dword [ebx + 0x5d100], 7
jmp 0x464979
cmp dword [ebx + 0x2690], esi
je 0x464981
push 1
push dword [ebp - 0x1280]
mov ecx, ebx
mov dword [edi + 0x28], esi
call fcn.00463bd2
test eax, eax
je 0x464a29
xor eax, eax
inc eax
jmp 0x464a38
mov eax, dword [ebx + 0x26cc]
cmp eax, 0x12e
jne 0x464adb
xor eax, eax
push 0x1046
mov word [ebp - 0x1254], ax
lea eax, [ebp - 0x1252]
push esi
push eax
call fcn.0046e0e0
add esp, 0xc
push 0x1048
lea eax, [ebp - 0x1254]
push eax
push edi
mov ecx, ebx
call fcn.004616e8
test eax, eax
je 0x464a29
push esi
push dword [edi + 0x20]
lea eax, [ebp - 0x1254]
push eax
call fcn.00461363
add esp, 0xc
test eax, eax
je 0x464a29
cmp dword [edi + 0x24], esi
jne 0x464a10
push 0x1048
lea edi, [ebx + 0x5f5c8]
push esi
push edi
call fcn.0046e0e0
lea eax, [ebp - 0x1254]
push eax
push 0x4912cc
push 0x823
push edi
call fcn.0042c2d7
add esp, 0x1c
xor ecx, ecx
lea edx, [ebx + 0x270c]
mov eax, 0x90e0
cmp dword [edx], esi
je 0x464a49
inc ecx
add edx, eax
cmp ecx, 0xa
jl 0x464a1d
push dword [ebp - 0x1280]
mov ecx, ebx
call fcn.00462bff
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0046e0cd
leave
ret 4
imul ecx, ecx, 0x90e0
lea edi, [ecx + ebx + 0x2700]
mov dword [ebp - 0x1288], edi
cmp edi, esi
je 0x464a29
push eax
push esi
push edi
call fcn.0046e0e0
or dword [edi + 0x38], 0xffffffff
or dword [edi + 0x3c], 0xffffffff
add esp, 0xc
push esi
push 1
push 1
push esi
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov dword [edi + 0xc], eax
cmp eax, esi
je 0x464a29
push edi
mov ecx, ebx
call fcn.00462724
test eax, eax
je 0x464a29
mov dword [edi + 0x28], esi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [edi + 8], eax
mov eax, dword [edi + 0x20]
cmp dword [eax + 4], 1
je 0x464ab7
push edi
mov ecx, ebx
call fcn.00461eff
test eax, eax
je 0x464a29
mov ecx, dword [ebp - 0x1278]
lea eax, [ebp - 0x1288]
push eax
call fcn.00435887
push dword [ebp - 0x1280]
mov ecx, ebx
call fcn.00462bff
jmp 0x464979
cmp eax, 0x194
jne 0x46495f
xor eax, eax
inc eax
mov dword [ebx + 0x2470], eax
mov edi, dword [edi + 0x20]
cmp edi, esi
je 0x464afc
mov dword [edi + 0x244c], eax
push dword [ebp - 0x1280]
mov ecx, ebx
call fcn.00462bff
xor ecx, ecx
lea edx, [ebx + 0x270c]
mov eax, 0x90e0
cmp dword [edx], esi
je 0x46474e
inc ecx
add edx, eax
cmp ecx, 0xa
jl 0x464b16
jmp 0x464a36
cmp dword [edi], esi
jne 0x464b89
mov eax, dword [edi + 4]
cmp eax, esi
je 0x464b89
push edi
mov ecx, ebx
mov dword [edi + 0x1c], eax
call fcn.00461515
mov eax, dword [ebx + 0x5d108]
cmp eax, dword [edi + 0x38]
jne 0x46495f
mov eax, dword [ebx + 0x5d10c]
cmp eax, dword [edi + 0x3c]
jne 0x46495f
xor eax, eax
cmp dword [ebx + 0x2690], esi
je 0x464b72
cmp dword [edi + 0x30], 1
sete al
jmp 0x464b73
inc eax
cmp eax, esi
je 0x46495f
mov eax, dword [edi + 0x30]
mov dword [ebx + 0x26fc], eax
jmp 0x4648a5
push 0x4971a4
lea eax, [edi + 0x806c]
push eax
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
test eax, eax
je 0x46495f
mov dword [ebx + 0x26fc], esi
mov dword [edi + 0x30], esi
mov dword [ebx + 0x26d8], 0x8000000
jmp 0x46495f
push 4
lea eax, [ebp - 0x1294]
push eax
push 6
push dword [edi + 0x1c]
mov dword [ebp - 0x1294], 0x4e20
call dword [sym.imp.WININET.dll_InternetSetOptionW]
mov dword [edi + 0x8040], esi
mov edx, dword [ebx + 0x26f0]
sub edx, dword [ebx + 0x26ec]
xor ecx, ecx
sar edx, 2
cmp edx, esi
jbe 0x464c18
mov eax, dword [ebx + 0x26ec]
mov dword [ebp - 0x1278], eax
mov eax, dword [ebp - 0x1278]
mov eax, dword [eax]
cmp dword [eax], esi
je 0x464c72
add dword [ebp - 0x1278], 4
inc ecx
cmp ecx, edx
jb 0x464c00
push 8
xor eax, eax
pop ecx
lea edi, [ebp - 0x1274]
rep stosd dword es:[edi], eax
lea eax, [ebx + 0x5cfc0]
mov dword [ebp - 0x1278], esi
mov dword [ebp - 0x1284], eax
mov edi, dword [ebp - 0x1284]
push 0x20
pop ecx
lea esi, [ebp - 0x1274]
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x464c51
sbb eax, eax
sbb eax, 0xffffffff
xor ecx, ecx
cmp eax, ecx
je 0x464c94
inc dword [ebp - 0x1278]
add dword [ebp - 0x1284], 0x20
cmp dword [ebp - 0x1278], 0xa
jb 0x464c37
jmp 0x464ac9
mov eax, dword [ebx + 0x26ec]
mov eax, dword [eax + ecx*4]
xor edx, edx
inc edx
mov dword [eax], edx
mov eax, dword [ebx + 0x26ec]
mov eax, dword [eax + ecx*4]
mov dword [edi + 0x8040], eax
jmp 0x464e29
mov edi, dword [ebp - 0x1278]
cmp edi, 0xffffffff
je 0x464ac9
or dword [ebp - 0x127c], 0xffffffff
mov dword [ebp - 0x1290], ecx
mov dword [ebp - 0x128c], ecx
mov dword [ebp - 0x1278], ecx
cmp edx, ecx
jbe 0x464ac9
mov eax, dword [ebx + 0x26ec]
mov dword [ebp - 0x1284], eax
mov eax, dword [ebp - 0x1284]
mov esi, dword [eax]
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0x18]
mov eax, dword [esi + 0x14]
sbb eax, dword [esi + 0x1c]
sub ecx, dword [esi + 8]
sbb eax, dword [esi + 0xc]
add ecx, 1
adc eax, 0
cmp eax, dword [ebp - 0x128c]
jl 0x464d1a
jg 0x464d02
cmp ecx, dword [ebp - 0x1290]
jbe 0x464d1a
mov dword [ebp - 0x128c], eax
mov eax, dword [ebp - 0x1278]
mov dword [ebp - 0x1290], ecx
mov dword [ebp - 0x127c], eax
inc dword [ebp - 0x1278]
add dword [ebp - 0x1284], 4
cmp dword [ebp - 0x1278], edx
jb 0x464cd0
cmp dword [ebp - 0x127c], 0xffffffff
je 0x464ac9
cmp dword [ebp - 0x128c], 0
jl 0x464ac9
jg 0x464d5b
cmp dword [ebp - 0x1290], 0x40000
jbe 0x464ac9
lea eax, [edi + 0x2e7e]
shl eax, 5
add eax, ebx
mov dword [eax], 1
mov ecx, dword [ebx + 0x26ec]
mov dword [ebp - 0x1278], eax
mov eax, dword [ebp - 0x127c]
shl eax, 2
mov ecx, dword [eax + ecx]
mov edx, dword [ecx + 0x10]
shl edi, 5
push 0xffffffffffffffff
add edi, ebx
mov dword [edi + 0x5cfd0], edx
mov ecx, dword [ecx + 0x14]
push 0xfffffffffffffffe
push dword [ebp - 0x128c]
mov dword [edi + 0x5cfd4], ecx
mov ecx, dword [ebx + 0x26ec]
push dword [ebp - 0x1290]
mov dword [ebp - 0x1284], eax
mov eax, dword [eax + ecx]
mov dword [ebp - 0x127c], eax
call fcn.0046f500
mov ecx, dword [ebp - 0x127c]
add dword [ecx + 0x10], eax
adc dword [ecx + 0x14], edx
mov eax, dword [ebx + 0x26ec]
mov ecx, dword [ebp - 0x1284]
mov eax, dword [ecx + eax]
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
add ecx, 1
adc eax, 0
mov dword [edi + 0x5cfcc], eax
mov dword [edi + 0x5cfc8], ecx
mov edi, dword [ebp - 0x1278]
lea eax, [ebp - 0x127c]
push eax
lea ecx, [ebx + 0x26ec]
mov dword [ebp - 0x127c], edi
call fcn.00435887
mov eax, dword [ebp - 0x1288]
xor edx, edx
mov dword [eax + 0x8040], edi
xor esi, esi
mov edi, eax
inc edx
mov eax, dword [edi + 0x8040]
cmp dword [eax + 8], esi
jne 0x464e45
cmp dword [eax + 0xc], esi
jne 0x464e45
mov dword [eax + 4], edx
mov dword [edi + 0x28], 8
jmp 0x464e5d
push esi
push dword [ebp - 0x1280]
mov ecx, ebx
mov dword [edi + 0x28], 4
call fcn.00463bd2
xor edx, edx
inc edx
cmp dword [ebx + 0x2690], esi
jne 0x464e94
mov dword [ebp - 0x127c], edx
cmp dword [ebx + 0x2468], edx
jbe 0x464e94
push 4
mov ecx, ebx
call fcn.004637f1
test eax, eax
je 0x464e94
inc dword [ebp - 0x127c]
mov eax, dword [ebp - 0x127c]
cmp eax, dword [ebx + 0x2468]
jb 0x464e73
mov eax, dword [ebx]
push esi
push 5
mov ecx, ebx
call dword [eax + 4]
neg eax
sbb eax, eax
neg eax
jmp 0x464a38
mov eax, dword [ebx]
push esi
push 5
mov ecx, ebx
call dword [eax + 4]
test eax, eax
je 0x464a36
mov dword [edi + 0x28], 8
jmp 0x464979