Function at 0x402e70
Capabilities:
Delete file
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x41f6cb
mov eax, dword fs:[0]
push eax
sub esp, 0x430
mov eax, dword [0x42a008]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov edi, dword [ebp + 8]
lea eax, [ebp - 0x42c]
sub esp, 8
xorps xmm0, xmm0
mov edx, str.nextchecktime
movlpd qword [ebp - 0x42c], xmm0
mov esi, 2
push eax
call fcn.00409290
add esp, 0xc
cmp eax, 3
je 0x402eda
xorps xmm0, xmm0
movlpd qword [ebp - 0x42c], xmm0
lea eax, [ebp - 0x434]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
push 0
push 0x2710
push dword [ebp - 0x430]
push dword [ebp - 0x434]
call fcn.00415810
push 0
push 0x425908
mov ecx, edi
mov dword [ebp - 0x430], eax
mov dword [ebp - 0x438], edx
call fcn.004023b0
mov ecx, dword [ebp - 0x42c]
mov eax, ecx
mov edx, dword [ebp - 0x428]
or eax, edx
jne 0x402fd4
mov edi, dword [ebx + 8]
mov esi, dword [ebx + 0xc]
call fcn.004106b5
mov edx, esi
mov ecx, edi
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x426a80]
movsd qword [ebp - 0x42c], xmm0
call fcn.0041f43c
mulsd xmm0, qword [ebp - 0x42c]
call fcn.0041f31e
add eax, dword [ebp - 0x430]
adc edx, dword [ebp - 0x438]
jne 0x402f9f
test eax, eax
jne 0x402f9f
lea eax, [ebp - 0x42c]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
push 0
push 0x2710
push dword [ebp - 0x428]
push dword [ebp - 0x42c]
call fcn.00415810
sub esp, 0xc
push edx
push eax
mov edx, str.nextchecktime
call fcn.00409370
add esp, 0x14
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0040f9cf
mov esp, ebp
pop ebp
ret 4
cmp dword [ebp - 0x438], edx
jb 0x402fb1
ja 0x402fe6
cmp dword [ebp - 0x430], ecx
jbe 0x402fb1
lea eax, [ebp - 0x424]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
cmp eax, 0x104
jae 0x4030f3
lea eax, [ebp - 0x21c]
push eax
push 0
push 0x425cac
lea eax, [ebp - 0x424]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
je 0x4030f3
lea eax, [ebp - 0x21c]
push eax
push str.https:__dhupdateprod.blob.core.windows.net_dhupdate_dhupdateconfig.xml
call fcn.00403800
test eax, eax
js 0x4030da
mov word [ebp - 0x438], 0x100
push 0
push 0
mov dword [ebp - 4], 0
call dword [sym.imp.ole32.dll_CoInitializeEx]
test eax, eax
js 0x4030a5
push edi
lea eax, [ebp - 0x21c]
mov byte [ebp - 0x438], 1
push eax
lea ecx, [ebp - 0x438]
call fcn.00401560
test eax, eax
js 0x40309d
mov edx, 0x425908
mov ecx, edi
call fcn.00404860
test al, al
je 0x40308f
xor esi, esi
jmp 0x4030b7
mov ecx, ebx
call fcn.00404480
mov esi, 1
jmp 0x4030b7
push eax
push str.LoadConfig:_x
jmp 0x4030ab
push eax
push str.ConfigInit:_x
lea eax, [ebx + 0x38]
push eax
call fcn.00404ee0
add esp, 0xc
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp byte [ebp - 0x438], 1
jne 0x403117
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, esi
jmp 0x402fb6
push eax
lea eax, [ebx + 0x38]
push str.DLConfig:_x
push eax
call fcn.00404ee0
add esp, 0xc
mov eax, esi
jmp 0x402fb6
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x403105
movzx eax, ax
or eax, 0x80070000
push eax
lea eax, [ebx + 0x38]
push str.ConfigTempFile:_x
push eax
call fcn.00404ee0
add esp, 0xc
mov eax, esi
jmp 0x402fb6