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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1294
call fcn.004a2a90
mov eax, dword [0x59ece0]
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 0x4c0cca
push edi
mov ecx, ebx
call fcn.004bd7b6
mov dword [ebx + 0x26cc], eax
mov ecx, dword [edi + 0x20]
cmp ecx, esi
je 0x4c081a
mov dword [ecx + 0x2450], eax
cmp dword [ebx + 0x26cc], 0xc8
jne 0x4c0af6
push edi
mov ecx, ebx
call fcn.004bec38
push edi
mov ecx, ebx
call fcn.004bd6a2
push edi
mov ecx, ebx
call fcn.004bda75
push edi
mov ecx, ebx
call fcn.004bd7fb
push edi
mov ecx, ebx
call fcn.004bd65e
mov edx, dword [edi + 0x38]
mov eax, dword [edi + 0x3c]
cmp dword [ebx + 0x5d108], edx
jne 0x4c0af6
cmp dword [ebx + 0x5d10c], eax
jne 0x4c0af6
xor eax, eax
cmp dword [ebx + 0x2690], esi
je 0x4c0883
cmp dword [edi + 0x30], 1
sete al
jmp 0x4c0884
inc eax
cmp eax, esi
je 0x4c0af6
mov eax, dword [ebx + 0x5d110]
mov ecx, dword [ebx + 0x5d114]
cmp eax, esi
jne 0x4c08a4
cmp ecx, esi
je 0x4c097e
cmp eax, edx
jne 0x4c08b1
cmp ecx, dword [edi + 0x3c]
je 0x4c097e
mov edi, dword [edi + 0x20]
cmp edi, esi
je 0x4c08c2
mov dword [edi + 0x244c], 1
push dword [ebp - 0x1280]
mov ecx, ebx
call fcn.004bed99
xor ecx, ecx
lea edx, [ebx + 0x270c]
mov eax, 0x90e0
cmp dword [edx], esi
je 0x4c08ed
inc ecx
add edx, eax
cmp ecx, 0xa
jl 0x4c08dc
jmp 0x4c0bd5
imul ecx, ecx, 0x90e0
lea edi, [ecx + ebx + 0x2700]
mov dword [ebp - 0x1288], edi
cmp edi, esi
je 0x4c0bd5
push eax
push esi
push edi
call fcn.0049d850
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 0x4c0bd5
push edi
mov ecx, ebx
call fcn.004be8a0
test eax, eax
je 0x4c0bd5
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 0x4c0967
push edi
mov ecx, ebx
call fcn.004be07b
test eax, eax
je 0x4c0bd5
mov ecx, dword [ebp - 0x1278]
lea eax, [ebp - 0x1288]
push eax
call fcn.004bf3da
jmp 0x4c0b18
mov eax, dword [edi + 0x30]
push edi
mov ecx, ebx
mov dword [ebx + 0x26fc], eax
call fcn.004bd8b0
test eax, eax
je 0x4c0a44
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 0x4cc8bc
lea eax, [ebx + 0x5d330]
push 0x103
push eax
call fcn.0043b511
push 0x208
lea eax, [ebx + 0x5d128]
push esi
push eax
call fcn.0049d850
xor eax, eax
push 0x206
mov word [ebp - 0x20c], ax
lea eax, [ebp - 0x20a]
push esi
push eax
call fcn.0049d850
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 0x4ccb3c
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
mov eax, dword [edi + 0x20]
cmp eax, esi
je 0x4c0a66
cmp dword [eax + 0x2448], 0xffffffff
jne 0x4c0a66
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 0x4c0bd5
mov eax, dword [ebx]
push esi
push 3
mov ecx, ebx
call dword [eax + 4]
test eax, eax
je 0x4c0bd5
mov ecx, ebx
call fcn.004bff32
test eax, eax
je 0x4c0bc8
mov eax, dword [ebx]
push esi
push 4
mov ecx, ebx
call dword [eax + 4]
test eax, eax
je 0x4c0bd5
cmp dword [ebx + 0x26fc], esi
je 0x4c1048
mov eax, dword [ebx + 0x5d108]
cmp eax, dword [ebx + 0x5d118]
jne 0x4c0d5a
mov eax, dword [ebx + 0x5d10c]
cmp eax, dword [ebx + 0x5d11c]
jne 0x4c0d5a
push dword [ebp - 0x1280]
mov ecx, ebx
call fcn.004bed99
mov dword [ebx + 0x5d100], 7
jmp 0x4c0b18
cmp dword [ebx + 0x2690], esi
je 0x4c0b20
push 1
push dword [ebp - 0x1280]
mov ecx, ebx
mov dword [edi + 0x28], esi
call fcn.004bfdbb
test eax, eax
je 0x4c0bc8
xor eax, eax
inc eax
jmp 0x4c0bd7
mov eax, dword [ebx + 0x26cc]
cmp eax, 0x12e
jne 0x4c0c7a
xor eax, eax
push 0x1046
mov word [ebp - 0x1254], ax
lea eax, [ebp - 0x1252]
push esi
push eax
call fcn.0049d850
add esp, 0xc
push 0x1048
lea eax, [ebp - 0x1254]
push eax
push edi
mov ecx, ebx
call fcn.004bd875
test eax, eax
je 0x4c0bc8
push esi
push dword [edi + 0x20]
lea eax, [ebp - 0x1254]
push eax
call fcn.004bd4f0
add esp, 0xc
test eax, eax
je 0x4c0bc8
cmp dword [edi + 0x24], esi
jne 0x4c0baf
push 0x1048
lea edi, [ebx + 0x5f5c8]
push esi
push edi
call fcn.0049d850
lea eax, [ebp - 0x1254]
push eax
push 0x4cc8bc
push 0x823
push edi
call fcn.0043b4f2
add esp, 0x1c
xor ecx, ecx
lea edx, [ebx + 0x270c]
mov eax, 0x90e0
cmp dword [edx], esi
je 0x4c0be8
inc ecx
add edx, eax
cmp ecx, 0xa
jl 0x4c0bbc
push dword [ebp - 0x1280]
mov ecx, ebx
call fcn.004bed99
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0049d4b1
leave
ret 4
imul ecx, ecx, 0x90e0
lea edi, [ecx + ebx + 0x2700]
mov dword [ebp - 0x1288], edi
cmp edi, esi
je 0x4c0bc8
push eax
push esi
push edi
call fcn.0049d850
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 0x4c0bc8
push edi
mov ecx, ebx
call fcn.004be8a0
test eax, eax
je 0x4c0bc8
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 0x4c0c56
push edi
mov ecx, ebx
call fcn.004be07b
test eax, eax
je 0x4c0bc8
mov ecx, dword [ebp - 0x1278]
lea eax, [ebp - 0x1288]
push eax
call fcn.004bf3da
push dword [ebp - 0x1280]
mov ecx, ebx
call fcn.004bed99
jmp 0x4c0b18
cmp eax, 0x194
jne 0x4c0afe
xor eax, eax
inc eax
mov dword [ebx + 0x2470], eax
mov edi, dword [edi + 0x20]
cmp edi, esi
je 0x4c0c9b
mov dword [edi + 0x244c], eax
push dword [ebp - 0x1280]
mov ecx, ebx
call fcn.004bed99
xor ecx, ecx
lea edx, [ebx + 0x270c]
mov eax, 0x90e0
cmp dword [edx], esi
je 0x4c08ed
inc ecx
add edx, eax
cmp ecx, 0xa
jl 0x4c0cb5
jmp 0x4c0bd5
cmp dword [edi], esi
jne 0x4c0d28
mov eax, dword [edi + 4]
cmp eax, esi
je 0x4c0d28
push edi
mov ecx, ebx
mov dword [edi + 0x1c], eax
call fcn.004bd6a2
mov eax, dword [ebx + 0x5d108]
cmp eax, dword [edi + 0x38]
jne 0x4c0afe
mov eax, dword [ebx + 0x5d10c]
cmp eax, dword [edi + 0x3c]
jne 0x4c0afe
xor eax, eax
cmp dword [ebx + 0x2690], esi
je 0x4c0d11
cmp dword [edi + 0x30], 1
sete al
jmp 0x4c0d12
inc eax
cmp eax, esi
je 0x4c0afe
mov eax, dword [edi + 0x30]
mov dword [ebx + 0x26fc], eax
jmp 0x4c0a44
push 0x583598
lea eax, [edi + 0x806c]
push eax
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
test eax, eax
je 0x4c0afe
mov dword [ebx + 0x26fc], esi
mov dword [edi + 0x30], esi
mov dword [ebx + 0x26d8], 0x8000000
jmp 0x4c0afe
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 0x4c0db7
mov eax, dword [ebx + 0x26ec]
mov dword [ebp - 0x1278], eax
mov eax, dword [ebp - 0x1278]
mov eax, dword [eax]
cmp dword [eax], esi
je 0x4c0e11
add dword [ebp - 0x1278], 4
inc ecx
cmp ecx, edx
jb 0x4c0d9f
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 0x4c0df0
sbb eax, eax
sbb eax, 0xffffffff
xor ecx, ecx
cmp eax, ecx
je 0x4c0e33
inc dword [ebp - 0x1278]
add dword [ebp - 0x1284], 0x20
cmp dword [ebp - 0x1278], 0xa
jb 0x4c0dd6
jmp 0x4c0c68
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 0x4c0fc8
mov edi, dword [ebp - 0x1278]
cmp edi, 0xffffffff
je 0x4c0c68
or dword [ebp - 0x127c], 0xffffffff
mov dword [ebp - 0x1290], ecx
mov dword [ebp - 0x128c], ecx
mov dword [ebp - 0x1278], ecx
cmp edx, ecx
jbe 0x4c0c68
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 0x4c0eb9
jg 0x4c0ea1
cmp ecx, dword [ebp - 0x1290]
jbe 0x4c0eb9
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 0x4c0e6f
cmp dword [ebp - 0x127c], 0xffffffff
je 0x4c0c68
cmp dword [ebp - 0x128c], 0
jl 0x4c0c68
jg 0x4c0efa
cmp dword [ebp - 0x1290], 0x40000
jbe 0x4c0c68
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.004a3990
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.004bf3da
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 0x4c0fe4
cmp dword [eax + 0xc], esi
jne 0x4c0fe4
mov dword [eax + 4], edx
mov dword [edi + 0x28], 8
jmp 0x4c0ffc
push esi
push dword [ebp - 0x1280]
mov ecx, ebx
mov dword [edi + 0x28], 4
call fcn.004bfdbb
xor edx, edx
inc edx
cmp dword [ebx + 0x2690], esi
jne 0x4c1033
mov dword [ebp - 0x127c], edx
cmp dword [ebx + 0x2468], edx
jbe 0x4c1033
push 4
mov ecx, ebx
call fcn.004bf9da
test eax, eax
je 0x4c1033
inc dword [ebp - 0x127c]
mov eax, dword [ebp - 0x127c]
cmp eax, dword [ebx + 0x2468]
jb 0x4c1012
mov eax, dword [ebx]
push esi
push 5
mov ecx, ebx
call dword [eax + 4]
neg eax
sbb eax, eax
neg eax
jmp 0x4c0bd7
mov eax, dword [ebx]
push esi
push 5
mov ecx, ebx
call dword [eax + 4]
test eax, eax
je 0x4c0bd5
mov dword [edi + 0x28], 8
jmp 0x4c0b18