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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x124c
call fcn.004125f0
mov eax, dword [0x4297c0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, ecx
mov eax, dword [ebx + 0x26f4]
sub eax, dword [ebx + 0x26f0]
push esi
push edi
mov edi, dword [ebp + 8]
sar eax, 2
cmp edi, eax
jb 0x407907
call fcn.004127f9
mov ecx, dword [ebx + 0x26f0]
mov esi, dword [ecx + edi*4]
mov dword [ebp - 0x1224], esi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebx + 0x26d8]
mov dword [ebx + 0x26dc], eax
mov edx, dword [esi + 0x20]
mov dword [esi + 0x2c], 0
cmp dword [edx + 4], 1
je 0x407d20
push esi
mov ecx, ebx
call fcn.00401910
mov dword [ebx + 0x26d4], eax
mov ecx, dword [esi + 0x20]
test ecx, ecx
je 0x407957
mov dword [ecx + 0x2450], eax
cmp dword [ebx + 0x26d4], 0xc8
jne 0x407ba4
push esi
mov ecx, ebx
call fcn.00402c10
push esi
mov ecx, ebx
call fcn.004017f0
push esi
mov ecx, ebx
call fcn.00401c30
push esi
mov ecx, ebx
call fcn.00401960
mov edx, dword [esi + 0x38]
mov eax, dword [ebx + 0x5d120]
mov edi, dword [esi + 0x3c]
cmp eax, edx
jne 0x407ba4
mov ecx, dword [ebx + 0x5d124]
cmp ecx, edi
jne 0x407ba4
cmp dword [ebx + 0x2690], 0
je 0x4079c3
xor eax, eax
cmp dword [esi + 0x30], 1
sete al
test eax, eax
je 0x407ba4
mov eax, dword [ebx + 0x5d128]
mov ecx, dword [ebx + 0x5d12c]
test eax, eax
jne 0x4079d7
test ecx, ecx
je 0x407a17
cmp eax, edx
jne 0x4079df
cmp ecx, edi
je 0x407a17
mov esi, dword [esi + 0x20]
test esi, esi
je 0x4079f0
mov dword [esi + 0x244c], 1
mov edx, dword [ebp + 8]
push edx
mov ecx, ebx
call fcn.004042e0
push 0
mov ecx, ebx
call fcn.00406e00
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004125d9
mov esp, ebp
pop ebp
ret 4
mov eax, dword [esi + 0x30]
push esi
mov ecx, ebx
mov dword [ebx + 0x2714], eax
call fcn.00401a30
test eax, eax
je 0x407ad4
xor eax, eax
mov dword [ebx + 0x247c], eax
mov dword [ebx + 0x2714], eax
lea edi, [ebx + 0x5d140]
push edi
mov dword [ebx + 0x2690], 1
mov dword [esi + 0x30], eax
or eax, 0xffffffff
push 0x4227a8
lea ecx, [ebx + 0x5d348]
mov dword [ebx + 0x5d120], eax
mov dword [ebx + 0x5d124], eax
push 0x103
push ecx
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], eax
call fcn.0041246a
push 0x208
push 0
push edi
call fcn.004123b0
xor edx, edx
push 0x206
push edx
lea eax, [ebp - 0x20a]
push eax
mov word [ebp - 0x20c], dx
call fcn.004123b0
add esp, 0x28
lea ecx, [ebp - 0x20c]
push ecx
push 0x103
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push edi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
push 0x42282c
lea edx, [ebp - 0x20c]
push edx
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
mov eax, dword [esi + 0x20]
test eax, eax
je 0x407af6
cmp dword [eax + 0x2448], 0xffffffff
jne 0x407af6
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esi + 8]
mov edx, dword [esi + 0x20]
mov dword [edx + 0x2448], eax
mov ecx, dword [esi + 0x1c]
mov eax, dword [ebx]
mov edx, dword [eax + 4]
push ecx
push 2
mov ecx, ebx
call edx
test eax, eax
je 0x408217
mov eax, dword [ebx]
mov edx, dword [eax + 4]
push 0
push 3
mov ecx, ebx
call edx
test eax, eax
je 0x408217
mov ecx, ebx
call fcn.004074d0
test eax, eax
je 0x40820c
mov eax, dword [ebx]
mov edx, dword [eax + 4]
push 0
push 4
mov ecx, ebx
call edx
test eax, eax
je 0x408217
cmp dword [ebx + 0x2714], 0
je 0x4081ef
mov eax, dword [ebx + 0x5d120]
cmp eax, dword [ebx + 0x5d130]
jne 0x407dd9
mov ecx, dword [ebx + 0x5d124]
cmp ecx, dword [ebx + 0x5d134]
jne 0x407dd9
mov edx, dword [ebp + 8]
push edx
mov ecx, ebx
call fcn.004042e0
pop edi
pop esi
mov dword [ebx + 0x5d118], 7
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004125d9
mov esp, ebp
pop ebp
ret 4
xor edi, edi
cmp dword [ebx + 0x2690], edi
je 0x407bdc
mov eax, dword [ebp + 8]
push 1
push eax
mov ecx, ebx
mov dword [esi + 0x28], edi
call fcn.004073b0
test eax, eax
je 0x40820c
lea eax, [edi + 1]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004125d9
mov esp, ebp
pop ebp
ret 4
mov eax, dword [ebx + 0x26d4]
cmp eax, 0x12e
jne 0x407cab
push 0xffe
lea edx, [ebp - 0x120a]
xor ecx, ecx
push edi
push edx
mov word [ebp - 0x120c], cx
call fcn.004123b0
add esp, 0xc
push 0x1000
lea eax, [ebp - 0x120c]
push eax
push esi
mov ecx, ebx
call fcn.004019e0
test eax, eax
je 0x40820c
mov ecx, dword [esi + 0x20]
push 0
push ecx
lea edx, [ebp - 0x120c]
push edx
call section..text
add esp, 0xc
test eax, eax
je 0x40820c
cmp dword [esi + 0x24], 0
jne 0x407c77
push 0x1048
lea esi, [ebx + 0x5f5e0]
push 0
push esi
call fcn.004123b0
lea eax, [ebp - 0x120c]
push eax
push 0x4227a8
push 0x823
push esi
call fcn.0041246a
add esp, 0x1c
push 0
mov ecx, ebx
call fcn.00406e00
test eax, eax
je 0x40820c
mov ecx, dword [ebp + 8]
push ecx
mov ecx, ebx
call fcn.004042e0
pop edi
pop esi
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004125d9
mov esp, ebp
pop ebp
ret 4
cmp eax, 0x194
je 0x407ce2
mov edx, dword [ebp + 8]
push 1
push edx
mov ecx, ebx
mov dword [esi + 0x28], edi
call fcn.004073b0
test eax, eax
je 0x40820c
pop edi
pop esi
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004125d9
mov esp, ebp
pop ebp
ret 4
mov eax, 1
mov dword [ebx + 0x2470], eax
mov esi, dword [esi + 0x20]
cmp esi, edi
je 0x407cfa
mov dword [esi + 0x244c], eax
mov eax, dword [ebp + 8]
push eax
mov ecx, ebx
call fcn.004042e0
push edi
mov ecx, ebx
call fcn.00406e00
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004125d9
mov esp, ebp
pop ebp
ret 4
cmp dword [esi], 0
jne 0x407da2
mov eax, dword [esi + 4]
test eax, eax
je 0x407da2
push esi
mov ecx, ebx
mov dword [esi + 0x1c], eax
call fcn.004017f0
mov ecx, dword [ebx + 0x5d120]
cmp ecx, dword [esi + 0x38]
jne 0x407d71
mov edx, dword [ebx + 0x5d124]
cmp edx, dword [esi + 0x3c]
jne 0x407d71
cmp dword [ebx + 0x2690], 0
je 0x407d63
xor eax, eax
cmp dword [esi + 0x30], 1
sete al
test eax, eax
je 0x407d71
mov eax, dword [esi + 0x30]
mov dword [ebx + 0x2714], eax
jmp 0x407ad4
mov dword [esi + 0x28], 0
push 1
push edi
mov ecx, ebx
call fcn.004073b0
test eax, eax
je 0x40820c
pop edi
pop esi
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004125d9
mov esp, ebp
pop ebp
ret 4
push 0x422824
lea ecx, [esi + 0x806c]
push ecx
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
test eax, eax
je 0x407dd2
xor eax, eax
mov dword [ebx + 0x2714], eax
mov dword [esi + 0x30], eax
mov dword [ebx + 0x26e0], 0x8000000
mov dword [esi + 0x28], eax
jmp 0x407d78
xor eax, eax
mov dword [esi + 0x28], eax
jmp 0x407d78
mov ecx, dword [esi + 0x1c]
push 4
lea eax, [ebp - 0x122c]
push eax
push 6
push ecx
mov dword [ebp - 0x122c], 0x4e20
call dword [sym.imp.WININET.dll_InternetSetOptionW]
xor edi, edi
mov dword [esi + 0x8040], edi
mov edx, dword [ebx + 0x270c]
sub edx, dword [ebx + 0x2708]
sar edx, 2
test edx, edx
jbe 0x407e5a
jmp 0x407e20
mov eax, dword [ebx + 0x270c]
sub eax, dword [ebx + 0x2708]
sar eax, 2
cmp edi, eax
jb 0x407e38
call fcn.004127f9
mov ecx, dword [ebx + 0x2708]
mov edx, dword [ecx + edi*4]
cmp dword [edx], 0
je 0x4080e3
mov eax, dword [ebx + 0x270c]
sub eax, ecx
inc edi
sar eax, 2
cmp edi, eax
jb 0x407e20
xor eax, eax
lea ecx, [ebx + 0x5cfd8]
mov dword [ebp - 0x124c], eax
mov dword [ebp - 0x1248], eax
mov dword [ebp - 0x1244], eax
mov dword [ebp - 0x1240], eax
mov dword [ebp - 0x123c], eax
mov dword [ebp - 0x1238], eax
mov dword [ebp - 0x1234], eax
mov dword [ebp - 0x1230], eax
xor esi, esi
mov dword [ebp - 0x1210], ecx
lea ebx, [ebx]
mov eax, 0x20
lea edx, [ebp - 0x124c]
jmp 0x407eb0
mov edi, dword [edx]
cmp edi, dword [ecx]
jne 0x408133
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x407eb0
mov dword [ebp - 0x1228], esi
cmp esi, 0xffffffff
je 0x407c88
mov edx, dword [ebx + 0x270c]
sub edx, dword [ebx + 0x2708]
xor eax, eax
sar edx, 2
mov dword [ebp - 0x1210], 0xffffffff
mov dword [ebp - 0x1220], eax
mov dword [ebp - 0x121c], eax
mov dword [ebp - 0x1214], eax
test edx, edx
jbe 0x407c88
lea esp, [esp]
mov eax, dword [ebp - 0x1214]
lea esi, [ebx + 0x26fc]
push eax
mov ecx, esi
call fcn.00401f40
mov edi, dword [eax]
mov ecx, dword [ebp - 0x1214]
push ecx
add edi, 0x18
mov ecx, esi
mov dword [ebp - 0x1218], edi
call fcn.00401f40
mov eax, dword [eax]
mov esi, dword [eax + 0x10]
sub esi, dword [edi]
mov edi, dword [eax + 0x14]
mov eax, dword [ebp - 0x1214]
mov edx, dword [ebp - 0x1218]
sbb edi, dword [edx + 4]
push eax
lea ecx, [ebx + 0x26fc]
call fcn.00401f40
mov eax, dword [eax]
sub esi, dword [eax + 8]
sbb edi, dword [eax + 0xc]
add esi, 1
adc edi, 0
cmp edi, dword [ebp - 0x121c]
jl 0x407f9a
jg 0x407f82
cmp esi, dword [ebp - 0x1220]
jbe 0x407f9a
mov ecx, dword [ebp - 0x1214]
mov dword [ebp - 0x1220], esi
mov dword [ebp - 0x121c], edi
mov dword [ebp - 0x1210], ecx
mov edx, dword [ebx + 0x270c]
sub edx, dword [ebx + 0x2708]
mov eax, dword [ebp - 0x1214]
lea esi, [ebx + 0x26fc]
inc eax
sar edx, 2
mov dword [ebp - 0x1214], eax
cmp eax, edx
jb 0x407f10
cmp dword [ebp - 0x1210], 0xffffffff
je 0x407c88
cmp dword [ebp - 0x121c], 0
jl 0x407c88
jg 0x407ff0
cmp dword [ebp - 0x1220], 0x40000
jbe 0x407c88
mov eax, dword [ebp - 0x1228]
mov ecx, dword [ebp - 0x1210]
shl eax, 5
lea edi, [eax + ebx]
lea eax, [edi + 0x5cfd8]
push ecx
mov ecx, esi
mov dword [ebp - 0x1218], eax
mov dword [eax], 1
call fcn.00401f40
mov eax, dword [eax]
mov edx, dword [eax + 0x10]
mov ecx, dword [ebp - 0x1210]
mov dword [edi + 0x5cfe8], edx
mov eax, dword [eax + 0x14]
push ecx
mov ecx, esi
mov dword [edi + 0x5cfec], eax
call fcn.00401f40
mov edx, dword [ebp - 0x121c]
mov edi, dword [eax]
mov eax, dword [ebp - 0x1220]
push 0xffffffffffffffff
push 0xfffffffffffffffe
push edx
push eax
call fcn.004132c0
add dword [edi + 0x10], eax
mov ecx, dword [ebp - 0x1210]
push ecx
adc dword [edi + 0x14], edx
mov ecx, esi
call fcn.00401f40
mov eax, dword [eax]
mov edx, dword [eax + 0x10]
mov ecx, dword [eax + 0x14]
mov eax, dword [ebp - 0x1228]
mov edi, dword [ebp - 0x1218]
add edx, 1
adc ecx, 0
add eax, 0x2e7f
shl eax, 5
mov dword [eax + ebx], edx
lea edx, [ebp - 0x1218]
mov dword [eax + ebx + 4], ecx
push edx
mov ecx, esi
mov dword [ebp - 0x1218], edi
call fcn.00405e30
mov eax, dword [ebp - 0x1224]
mov dword [eax + 0x8040], edi
mov esi, eax
mov eax, dword [esi + 0x8040]
cmp dword [eax + 8], 0
jne 0x408189
cmp dword [eax + 0xc], 0
jne 0x408189
mov dword [eax + 4], 1
mov dword [esi + 0x28], 8
jmp 0x40819d
mov ecx, dword [ebx + 0x270c]
sub ecx, dword [ebx + 0x2708]
sar ecx, 2
cmp edi, ecx
jb 0x4080fb
call fcn.004127f9
mov edx, dword [ebx + 0x2708]
mov eax, dword [edx + edi*4]
mov dword [eax], 1
mov ecx, dword [ebx + 0x270c]
sub ecx, dword [ebx + 0x2708]
sar ecx, 2
cmp edi, ecx
jb 0x408122
call fcn.004127f9
mov edx, dword [ebx + 0x2708]
mov eax, dword [edx + edi*4]
mov dword [esi + 0x8040], eax
jmp 0x4080b6
movzx edi, byte [ecx]
movzx eax, byte [edx]
sub eax, edi
jne 0x40815f
movzx eax, byte [edx + 1]
movzx edi, byte [ecx + 1]
sub eax, edi
jne 0x40815f
movzx eax, byte [edx + 2]
movzx edi, byte [ecx + 2]
sub eax, edi
jne 0x40815f
movzx eax, byte [edx + 3]
movzx ecx, byte [ecx + 3]
sub eax, ecx
sar eax, 0x1f
or eax, 1
je 0x407ec8
mov ecx, dword [ebp - 0x1210]
inc esi
add ecx, 0x20
mov dword [ebp - 0x1210], ecx
cmp esi, 0xa
jb 0x407ea0
jmp 0x407c88
mov ecx, dword [ebp + 8]
push 0
push ecx
mov ecx, ebx
mov dword [esi + 0x28], 4
call fcn.004073b0
cmp dword [ebx + 0x2690], 0
jne 0x4081c9
mov esi, 1
cmp dword [ebx + 0x2468], esi
jbe 0x4081c9
push 4
mov ecx, ebx
call fcn.00406e00
test eax, eax
je 0x4081c9
inc esi
cmp esi, dword [ebx + 0x2468]
jb 0x4081b3
mov edx, dword [ebx]
mov eax, dword [edx + 4]
push 0
push 5
mov ecx, ebx
call eax
neg eax
pop edi
sbb eax, eax
pop esi
neg eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004125d9
mov esp, ebp
pop ebp
ret 4
mov edx, dword [ebx]
mov eax, dword [edx + 4]
push 0
push 5
mov ecx, ebx
call eax
test eax, eax
je 0x408217
mov dword [esi + 0x28], 8
jmp 0x407d8a
mov ecx, dword [ebp + 8]
push ecx
mov ecx, ebx
call fcn.004042e0
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
xor eax, eax
pop ebx
call fcn.004125d9
mov esp, ebp
pop ebp
ret 4