Function at 0x423c40
Capabilities:
Check http status code
Copy file
Create process on windows
Self delete
Start service

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43e45e
mov eax, dword fs:[0]
push eax
sub esp, 0x104
mov eax, dword [0x469644]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
sub esp, 0x1c
mov esi, esp
mov dword [ebp - 4], 1
xor eax, eax
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], 0
mov dword [ebp - 0xc4], esp
mov word [esi], ax
push 0xe
mov eax, str.Update_started
call fcn.00404210
call fcn.00410a60
add esp, 0x1c
lea ecx, [ebp + 8]
push ecx
lea edx, [ebp - 0x48]
push edx
mov ebx, 0x470c3c
call fcn.00412e70
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x2c]
push ecx
mov ebx, 0x470c04
mov byte [ebp - 4], 2
call fcn.00412e70
sub esp, 0xc
mov edx, esp
mov dword [ebp - 0xc4], esp
push str.Local_update_EXE:
push edx
lea ebx, [ebp - 0x48]
mov byte [ebp - 4], 3
call fcn.00404920
add esp, 8
call fcn.00410b20
mov eax, esp
mov dword [ebp - 0xc4], esp
push str.Local_manager_EXE:
push eax
lea ebx, [ebp - 0x2c]
call fcn.00404920
add esp, 8
call fcn.00410b20
xor ebx, ebx
add esp, 0x1c
cmp dword [ebp + 0x34], ebx
jbe 0x423d42
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xc4], esp
push str.Service_name:
push ecx
lea ebx, [ebp + 0x24]
call fcn.00404920
add esp, 8
call fcn.00410b20
add esp, 0x1c
xor ebx, ebx
push ebx
push ebx
push ebx
push ebx
mov byte [ebp - 0xb9], bl
xor esi, esi
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov dword [ebp - 0xc8], eax
lea ebx, [ebx]
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xc0], esp
push ebx
lea eax, [ebp - 0x2c]
mov edi, 7
xor edx, edx
push eax
inc esi
mov dword [ecx + 0x14], edi
mov dword [ecx + 0x10], ebx
or eax, 0xffffffff
mov dword [ebp - 0xc4], esi
mov word [ecx], dx
call fcn.00403a30
call fcn.00405dd0
add esp, 0x1c
cmp al, bl
je 0x423dc6
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xc0], esp
push ebx
lea eax, [ebp - 0x2c]
xor edx, edx
push eax
mov dword [ecx + 0x14], edi
mov dword [ecx + 0x10], ebx
or eax, 0xffffffff
mov word [ecx], dx
call fcn.00403a30
call fcn.004060d0
add esp, 0x1c
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xc0], esp
push ebx
lea eax, [ebp - 0x2c]
xor edx, edx
push eax
mov dword [ecx + 0x14], edi
mov dword [ecx + 0x10], ebx
or eax, 0xffffffff
mov word [ecx], dx
call fcn.00403a30
call fcn.00405dd0
add esp, 0x1c
cmp al, bl
jne 0x423e0b
mov ecx, dword [ebp - 0xc8]
push ecx
mov byte [ebp - 0xb9], 1
call dword [sym.imp.KERNEL32.dll_SetEvent]
jmp 0x423e89
lea edx, [ebp - 0x80]
push esi
push edx
call fcn.004063a0
push eax
mov edx, str.Delete_old_EXE_failed__Trial
lea eax, [ebp - 0x64]
mov byte [ebp - 4], 4
call fcn.00404a00
sub esp, 0x10
mov ecx, esp
mov dword [ebp - 0xc0], esp
push eax
mov eax, 0x45d75c
mov byte [ebp - 4], 5
call fcn.0040f880
add esp, 4
call fcn.00410b20
mov esi, 8
add esp, 0x1c
cmp dword [ebp - 0x50], esi
jb 0x423e62
mov eax, dword [ebp - 0x64]
push eax
call fcn.00426e9f
add esp, 4
xor ecx, ecx
mov byte [ebp - 4], 3
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x54], ebx
mov word [ebp - 0x64], cx
cmp dword [ebp - 0x6c], esi
jb 0x423e83
mov edx, dword [ebp - 0x80]
push edx
call fcn.00426e9f
add esp, 4
mov esi, dword [ebp - 0xc4]
cmp esi, 0xc8
jl 0x423e9e
mov eax, dword [ebp - 0xc8]
push eax
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov ecx, dword [ebp - 0xc8]
push 0xbb8
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
je 0x423d60
mov edx, dword [ebp - 0xc8]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
sub esp, 0x1c
mov esi, esp
mov dword [ebp - 0xc0], esp
mov dword [esi + 0x14], edi
mov dword [esi + 0x10], ebx
cmp byte [ebp - 0xb9], bl
je 0x4241f2
xor eax, eax
mov word [esi], ax
push 0x19
mov eax, str.Delete_old_EXE_successful
call fcn.00404210
call fcn.00410a60
mov ecx, dword [ebp - 0x2c]
mov eax, 8
add esp, 0x1c
cmp dword [ebp - 0x18], eax
jae 0x423f0e
lea ecx, [ebp - 0x2c]
cmp dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x48]
jae 0x423f19
lea eax, [ebp - 0x48]
push ebx
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
sub esp, 0x1c
mov esi, esp
mov dword [ebp - 0xc0], esp
mov dword [esi + 0x14], edi
mov dword [esi + 0x10], ebx
cmp eax, ebx
je 0x4241da
xor ecx, ecx
push 0x13
mov eax, str.Copy_EXE_successful
mov word [esi], cx
call fcn.00404210
call fcn.00410a60
add esp, 0x1c
cmp dword [ebp + 0x34], ebx
jbe 0x42403b
sub esp, 0x1c
mov eax, str.Start_ServiceManager_by_Windows_services
mov ecx, esp
mov dword [ebp - 0xc0], esp
call fcn.00402770
call fcn.00410a60
add esp, 0x1c
push 0xf003f
push ebx
push ebx
mov byte [ebp - 0xb9], bl
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
xor esi, esi
mov dword [ebp - 0xc4], eax
cmp eax, ebx
je 0x423fd3
cmp dword [ebp + 0x38], 8
mov ecx, dword [ebp + 0x24]
jae 0x423fa5
lea ecx, [ebp + 0x24]
push 0xf01ff
push ecx
push eax
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov esi, eax
cmp esi, ebx
je 0x423fcc
push ebx
push ebx
push esi
call dword [sym.imp.ADVAPI32.dll_StartServiceW]
test eax, eax
setne byte [ebp - 0xb9]
jmp 0x423ff0
mov eax, str.OpenService_failed
jmp 0x423fd8
mov eax, str.OpenSCManager_failed
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xc0], esp
call fcn.00402770
call fcn.00410b20
add esp, 0x1c
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
call esi
mov edx, dword [ebp - 0xc4]
push edx
call esi
sub esp, 0x1c
mov dword [ebp - 0xc0], esp
mov ecx, esp
cmp byte [ebp - 0xb9], bl
je 0x424029
mov eax, str.Service_start_successful
call fcn.00402770
call fcn.00410b20
jmp 0x42422c
mov eax, str.Service_start_failed
call fcn.00402770
call fcn.00410b20
add esp, 0x1c
sub esp, 0x1c
mov eax, str.Start_ServiceManager_by_CreateProcess
mov ecx, esp
mov dword [ebp - 0xc0], esp
call fcn.00402770
call fcn.00410a60
add esp, 0x1c
xor eax, eax
push ebx
lea ecx, [ebp - 0x2c]
mov word [ebp - 0x64], ax
push ecx
or eax, 0xffffffff
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x54], ebx
call fcn.00403a30
sub esp, 0x1c
mov edx, esp
mov dword [ebp - 0xc0], esp
push str.CMD:
push edx
lea ebx, [ebp - 0x64]
mov byte [ebp - 4], 6
call fcn.00404920
add esp, 8
call fcn.00410b20
add esp, 0x1c
push 0x44
lea eax, [ebp - 0x110]
push 0
push eax
call fcn.0042ec60
xor eax, eax
mov ebx, 8
add esp, 0xc
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x110], 0x44
cmp dword [ebp - 0x50], ebx
jae 0x4240d7
lea eax, [ebp - 0x64]
lea ecx, [ebp - 0x74]
push ecx
lea edx, [ebp - 0x110]
push edx
push 0
push 0
push 0
push 0
push 0
push 0
push eax
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
je 0x42412a
sub esp, 0x1c
mov eax, str.CreateProcess_successful
mov ecx, esp
mov dword [ebp - 0xc0], esp
call fcn.00402770
call fcn.00410b20
add esp, 0x1c
lea esi, [ebp - 0x64]
call fcn.004027b0
xor ebx, ebx
lea edi, [ebx + 7]
jmp 0x42422f
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x9c]
push eax
call fcn.004063a0
push eax
mov edx, str.CreateProcess_failed__ErrorCode:
lea eax, [ebp - 0xb8]
mov byte [ebp - 4], 7
call fcn.00404a00
sub esp, 0x10
mov ecx, esp
mov dword [ebp - 0xc0], esp
push eax
mov eax, 0x45d75c
mov byte [ebp - 4], bl
call fcn.0040f880
add esp, 4
call fcn.00410b20
add esp, 0x1c
lea esi, [ebp - 0xb8]
call fcn.004027b0
lea esi, [ebp - 0x9c]
mov byte [ebp - 4], 6
call fcn.004027b0
sub esp, 0x1c
mov eax, str.Update_canceled
mov ecx, esp
mov dword [ebp - 0xc0], esp
call fcn.00402770
call fcn.00410a60
add esp, 0x1c
lea esi, [ebp - 0x64]
call fcn.004027b0
lea esi, [ebp - 0x2c]
call fcn.004027b0
lea esi, [ebp - 0x48]
call fcn.004027b0
lea esi, [ebp + 8]
call fcn.004027b0
lea esi, [ebp + 0x24]
call fcn.004027b0
jmp 0x42429c
xor edx, edx
push 0xf
mov eax, str.Copy_EXE_failed
mov word [esi], dx
call fcn.00404210
call fcn.00410a60
jmp 0x424208
xor edx, edx
push 0x11
mov eax, str.Max_trial_reached
mov word [esi], dx
call fcn.00404210
call fcn.00410b20
mov esi, esp
mov dword [esi + 0x14], edi
xor eax, eax
mov dword [esi + 0x10], ebx
mov dword [ebp - 0xc0], esp
mov word [esi], ax
push 0xf
mov eax, str.Update_canceled
call fcn.00404210
call fcn.00410a60
add esp, 0x1c
mov esi, 8
cmp dword [ebp - 0x18], esi
jb 0x424245
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.00426e9f
add esp, 4
xor edx, edx
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x1c], ebx
mov word [ebp - 0x2c], dx
cmp dword [ebp - 0x34], esi
jb 0x424262
mov eax, dword [ebp - 0x48]
push eax
call fcn.00426e9f
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x38], ebx
mov word [ebp - 0x48], cx
cmp dword [ebp + 0x1c], esi
jb 0x42427f
mov edx, dword [ebp + 8]
push edx
call fcn.00426e9f
add esp, 4
xor eax, eax
mov dword [ebp + 0x1c], edi
mov dword [ebp + 0x18], ebx
mov word [ebp + 8], ax
cmp dword [ebp + 0x38], esi
jb 0x42429c
mov ecx, dword [ebp + 0x24]
push ecx
call fcn.00426e9f
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0042575d
mov esp, ebp
pop ebp
ret