Function at 0x40c560
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x1084
call fcn.00456340
mov eax, dword [0x4a2300]
xor eax, esp
mov dword [esp + 0x1080], eax
push ebx
push esi
push edi
push 0xfff
lea eax, [esp + 0x8d]
mov dword [esp + 0x14], edx
push 0
push eax
mov dword [esp + 0x20], ecx
mov byte [esp + 0x94], 0
call fcn.00451650
add esp, 0xc
call fcn.0040ee00
mov edi, eax
mov ebx, edx
call fcn.0040ee00
sub eax, edi
sbb edx, ebx
test edx, edx
jg 0x40c65b
jl 0x40c5cf
cmp eax, 0x7530
ja 0x40c65b
mov esi, dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push 0x4814b8
call esi
push 0x4814b8
call fcn.0045738c
add esp, 4
lea ecx, [esp + 0x88]
call fcn.0040c3e0
cmp eax, 1
je 0x40c614
call fcn.0040ee00
sub eax, edi
sbb edx, ebx
mov dword [esp + 0x1c], edx
js 0x40c5d5
jg 0x40c65b
cmp eax, 0x7530
jbe 0x40c5d5
jmp 0x40c65b
push 0x63
lea eax, [esp + 0x25]
mov byte [esp + 0x24], 0
push 0
push eax
call fcn.00451650
add esp, 0xc
call fcn.0040ee00
sub eax, edi
sbb edx, ebx
push edx
push eax
lea eax, [esp + 0x28]
push str._DEBUG__
push eax
call fcn.0045671f
add esp, 0x10
lea eax, [esp + 0x20]
push eax
call esi
lea eax, [esp + 0x20]
push eax
call fcn.0045738c
add esp, 4
cmp byte [esp + 0x88], 0xef
lea ecx, [esp + 0x88]
mov dword [esp + 0x18], ecx
jne 0x40c690
cmp byte [esp + 0x89], 0xbb
jne 0x40c690
cmp byte [esp + 0x8a], 0xbf
lea eax, [esp + 0x8b]
cmovne eax, ecx
mov dword [esp + 0x18], eax
xor edx, edx
lea ecx, [esp + 0x18]
call fcn.00407e20
mov esi, eax
test esi, esi
je 0x40c6e6
cmp dword [esi + 4], 4
xorps xmm0, xmm0
jne 0x40c6d4
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x40c6d4
push 6
mov edx, str.status
call fcn.00407a10
add esp, 4
test eax, eax
je 0x40c6d1
cmp dword [eax + 4], 3
jne 0x40c6d1
movsd xmm0, qword [eax + 8]
jmp 0x40c6d4
xorps xmm0, xmm0
cvttsd2si eax, xmm0
cmp eax, 0xc8
je 0x40c6fd
mov ecx, esi
call fcn.00409230
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1080]
xor ecx, esp
call fcn.0045094b
mov esp, ebp
pop ebp
ret
cmp dword [esi + 4], 4
jne 0x40c72a
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x40c72a
push 0xc
mov edx, str.isNeedUpdate
call fcn.00407a10
add esp, 4
test eax, eax
je 0x40c72a
cmp dword [eax + 4], 3
jne 0x40c72a
movsd xmm0, qword [eax + 8]
jmp 0x40c72d
xorps xmm0, xmm0
cvttsd2si eax, xmm0
test eax, eax
je 0x40c6df
cmp dword [esi + 4], 4
jne 0x40c827
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x40c7af
push 0xd
mov edx, str.updateListUrl
call fcn.00407a10
add esp, 4
test eax, eax
je 0x40c7af
cmp dword [eax + 4], 2
jne 0x40c7af
add eax, 8
je 0x40c7af
mov edi, dword [eax]
test edi, edi
je 0x40c7af
cmp dword [esi + 4], 4
jne 0x40c775
mov ecx, dword [esi + 8]
jmp 0x40c777
xor ecx, ecx
mov edx, str.updateListUrl
call fcn.00409110
mov ebx, eax
lea ecx, [ebx - 1]
cmp ecx, 0x256
ja 0x40c7af
push 0x258
push 0
push dword [esp + 0x1c]
call fcn.00451650
add esp, 0xc
push ebx
push edi
push dword [esp + 0x1c]
call fcn.00451000
add esp, 0xc
cmp dword [esi + 4], 4
jne 0x40c827
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x40c827
push 0x12
mov edx, str.spareUpdateListUrl
call fcn.00407a10
add esp, 4
test eax, eax
je 0x40c827
cmp dword [eax + 4], 2
jne 0x40c827
lea edi, [eax + 8]
test edi, edi
je 0x40c827
mov edi, dword [edi]
test edi, edi
je 0x40c827
cmp dword [esi + 4], 4
jne 0x40c7ed
mov ecx, dword [esi + 8]
jmp 0x40c7ef
xor ecx, ecx
mov edx, str.spareUpdateListUrl
call fcn.00409110
mov ebx, eax
lea ecx, [ebx - 1]
cmp ecx, 0x256
ja 0x40c827
push 0x258
push 0
push dword [esp + 0x18]
call fcn.00451650
add esp, 0xc
push ebx
push edi
push dword [esp + 0x18]
call fcn.00451000
add esp, 0xc
mov ecx, esi
call fcn.00409230
mov ecx, dword [esp + 0x108c]
mov eax, 1
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0045094b
mov esp, ebp
pop ebp
ret