Function at 0x4499a0
Capabilities:
Create process on windows
Print debug messages

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4f59e3
mov eax, dword fs:[0]
push eax
sub esp, 0x160
mov eax, dword [0x54c1b4]
xor eax, esp
mov dword [esp + 0x158], eax
push ebx
push esi
push edi
mov eax, dword [0x54c1b4]
xor eax, esp
push eax
lea eax, [esp + 0x170]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x14], eax
mov eax, dword [0x54fee0]
mov edi, ecx
test eax, eax
je 0x449a20
cmp dword [eax + 8], 4
mov ebx, eax
jl 0x449a20
push str.MainUpdate.cpp
push 4
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push ecx
mov ecx, str.begin_RunTempUpdate
mov esi, 0x6e
call fcn.0042fa10
push ebx
mov ecx, esi
call fcn.0042d670
mov eax, 1
test byte [0x55012c], al
jne 0x449a5b
or dword [0x55012c], eax
mov dword [esp + 0x178], 0
call fcn.004411c0
push 0x4f70c0
call fcn.004bd58e
add esp, 4
mov dword [esp + 0x178], 0xffffffff
mov edx, dword [esp + 0x14]
push edx
lea eax, [esp + 0x48]
push eax
mov ebx, 0x5501e4
call fcn.0042f0f0
push eax
mov eax, str..exe
lea ecx, [esp + 0x74]
mov dword [esp + 0x184], 1
call fcn.004070c0
add esp, 0xc
mov byte [esp + 0x178], 3
cmp dword [esp + 0x58], 8
jb 0x449aa8
mov ecx, dword [esp + 0x44]
push ecx
call fcn.004bb4d8
add esp, 4
lea eax, [esp + 0xbc]
xor edx, edx
push edi
mov esi, 7
push eax
mov ebx, 0x5501ac
mov dword [esp + 0x60], esi
mov dword [esp + 0x5c], 0
mov word [esp + 0x4c], dx
call fcn.0042f0f0
push eax
mov eax, 0x5130f0
lea ecx, [esp + 0xe8]
mov byte [esp + 0x184], 4
call fcn.004070c0
add esp, 0xc
mov ecx, eax
mov eax, 0x5501e4
lea ebx, [esp + 0x84]
mov byte [esp + 0x178], 5
call fcn.004143f0
mov ebx, 8
cmp dword [esp + 0xf0], ebx
jb 0x449b29
mov ecx, dword [esp + 0xdc]
push ecx
call fcn.004bb4d8
add esp, 4
xor edi, edi
xor edx, edx
mov dword [esp + 0xf0], esi
mov dword [esp + 0xec], edi
mov word [esp + 0xdc], dx
mov byte [esp + 0x178], bl
cmp dword [esp + 0xd0], ebx
jb 0x449b63
mov eax, dword [esp + 0xbc]
push eax
call fcn.004bb4d8
add esp, 4
mov eax, dword [esp + 0x68]
xor ecx, ecx
mov dword [esp + 0xd0], esi
mov dword [esp + 0xcc], edi
mov word [esp + 0xbc], cx
cmp dword [esp + 0x7c], ebx
jae 0x449b89
lea eax, [esp + 0x68]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [esp + 0x68]
cmp dword [esp + 0x7c], ebx
jae 0x449b9e
lea eax, [esp + 0x68]
push eax
mov edx, 0x75
push 0x517f90
push str.MainUpdate.cpp
lea esi, [edx - 0x71]
mov eax, 0x54fee0
call fcn.0042c610
add esp, 0xc
lea edx, [esp + 0x18]
push edx
call fcn.004158b0
mov byte [esp + 0x178], 9
mov edx, dword [esp + 0x68]
cmp dword [esp + 0x7c], ebx
jae 0x449bde
lea edx, [esp + 0x68]
xor eax, eax
mov word [esp + 0x44], ax
mov eax, edx
mov dword [esp + 0x58], 7
mov dword [esp + 0x54], edi
lea esi, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x449bf6
sub eax, esi
sar eax, 1
push eax
push edx
lea ecx, [esp + 0x4c]
call fcn.00408810
mov byte [esp + 0x178], 0xa
mov eax, dword [esp + 0x84]
cmp dword [esp + 0x98], ebx
jae 0x449c2f
lea eax, [esp + 0x84]
push eax
lea ecx, [esp + 0x1c]
push ecx
lea ebx, [esp + 0x4c]
call fcn.00416300
test al, al
mov esi, 8
sete bl
mov byte [esp + 0x178], 9
cmp dword [esp + 0x58], esi
jb 0x449c63
mov edx, dword [esp + 0x44]
push edx
call fcn.004bb4d8
add esp, 4
xor edi, edi
test bl, bl
je 0x449cfd
mov eax, dword [0x54fee0]
cmp eax, edi
je 0x449ca5
cmp dword [eax + 8], 2
mov ebx, eax
jl 0x449ca5
push str.MainUpdate.cpp
push 2
push ecx
mov eax, esp
mov dword [esp + 0x1c], esp
push eax
mov ecx, 0x517fa8
lea esi, [edi + 0x7a]
call fcn.0042fa10
push ebx
mov ecx, esi
call fcn.0042d670
lea esi, [edi + 8]
lea ecx, [esp + 0x18]
call fcn.004159b0
cmp dword [esp + 0x98], esi
jb 0x449cc7
mov ecx, dword [esp + 0x84]
push ecx
call fcn.004bb4d8
add esp, 4
xor edx, edx
mov dword [esp + 0x98], 7
mov dword [esp + 0x94], edi
mov word [esp + 0x84], dx
cmp dword [esp + 0x7c], esi
jb 0x449cf6
mov eax, dword [esp + 0x68]
push eax
call fcn.004bb4d8
add esp, 4
xor al, al
jmp 0x44a3be
lea ecx, [esp + 0x68]
push ecx
lea ecx, [esp + 0xa4]
call fcn.00402730
add esp, 4
mov byte [esp + 0x178], 0xb
cmp dword [0x5501dc], 0x10
mov ecx, dword [0x5501c8]
jae 0x449d2d
mov ecx, 0x5501c8
mov esi, dword [esp + 0xb0]
mov ebx, dword [0x5501d8]
mov eax, esi
cmp esi, ebx
jb 0x449d42
mov eax, ebx
cmp dword [esp + 0xb4], 0x10
mov edx, dword [esp + 0xa0]
jae 0x449d5a
lea edx, [esp + 0xa0]
call fcn.004072c0
cmp eax, edi
jne 0x449d75
cmp esi, ebx
jae 0x449d6c
or eax, 0xffffffff
jmp 0x449d73
xor eax, eax
cmp esi, ebx
setne al
cmp eax, edi
sete al
test al, al
sete al
test al, al
je 0x449e50
mov ebx, dword [0x54fee0]
cmp ebx, edi
je 0x449dbb
cmp dword [ebx + 8], 2
jl 0x449dbb
push str.MainUpdate.cpp
push 2
push ecx
mov edx, esp
mov dword [esp + 0x1c], esp
push edx
mov ecx, 0x517fe8
mov esi, 0x81
call fcn.0042fa10
push ebx
mov ecx, esi
call fcn.0042d670
cmp dword [esp + 0xb4], 0x10
jb 0x449dd5
mov eax, dword [esp + 0xa0]
push eax
call fcn.004bb4d8
add esp, 4
lea ecx, [esp + 0x18]
mov dword [esp + 0xb4], 0xf
mov dword [esp + 0xb0], edi
mov byte [esp + 0xa0], 0
call fcn.004159b0
mov esi, 8
cmp dword [esp + 0x98], esi
jb 0x449e16
mov ecx, dword [esp + 0x84]
push ecx
call fcn.004bb4d8
add esp, 4
xor edx, edx
mov dword [esp + 0x98], 7
mov dword [esp + 0x94], edi
mov word [esp + 0x84], dx
cmp dword [esp + 0x7c], esi
jb 0x449cf6
mov eax, dword [esp + 0x68]
push eax
call fcn.004bb4d8
add esp, 4
xor al, al
jmp 0x44a3be
mov eax, 0xfffffe00
and dword [esp + 0xe4], eax
xor esi, esi
mov dword [esp + 0xe8], esi
and dword [esp + 0xc4], eax
mov dword [esp + 0xc8], esi
mov bl, 0xf
push 0x515c38
lea edi, [esp + 0x48]
mov byte [esp + 0x17c], bl
call fcn.0041a7a0
push esi
lea ecx, [esp + 0xc0]
push ecx
mov ecx, str.quiet
mov byte [esp + 0x180], 0x10
call fcn.0041bdd0
mov esi, eax
mov eax, edi
call fcn.0041aae0
mov eax, edi
mov byte [esp + 0x178], bl
call fcn.0041aa40
push 0x515c38
lea edi, [esp + 0x48]
call fcn.0041a7a0
push 0
lea edx, [esp + 0xc0]
push edx
mov ecx, 0x518038
mov byte [esp + 0x180], 0x11
call fcn.0041bdd0
mov esi, eax
mov eax, edi
call fcn.0041aae0
mov eax, edi
mov byte [esp + 0x178], bl
call fcn.0041aa40
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
xor ecx, ecx
push eax
mov dword [esp + 0x18], eax
mov byte [esp + 0x158], 0
mov dword [esp + 0x159], ecx
mov dword [esp + 0x15d], ecx
mov dword [esp + 0x161], ecx
mov dword [esp + 0x165], ecx
mov word [esp + 0x169], cx
mov byte [esp + 0x16b], cl
call dword [sym.imp.KERNEL32.dll_GetProcessId]
push eax
push 0x518044
lea edx, [esp + 0x15c]
call fcn.0044cff0
add esp, 8
lea eax, [esp + 0x154]
push eax
lea edi, [esp + 0x48]
call fcn.0041a7a0
push 0
lea ecx, [esp + 0xe0]
push ecx
mov ecx, 0x517ef4
mov byte [esp + 0x180], 0x12
call fcn.0041bdd0
mov esi, eax
mov eax, edi
call fcn.0041aae0
mov eax, edi
mov byte [esp + 0x178], bl
call fcn.0041aa40
mov ebx, 1
test byte [0x550018], bl
jne 0x449fc1
or dword [0x550018], ebx
call fcn.004443f0
push 0x4f70a0
call fcn.004bd58e
add esp, 4
push 0xb
push str.tempunsetup
push 0x54ffd8
xor eax, eax
call fcn.00407570
cmp eax, 0xffffffff
je 0x44a00a
test byte [0x550018], bl
jne 0x449ff9
or dword [0x550018], ebx
call fcn.004443f0
push 0x4f70a0
call fcn.004bd58e
add esp, 4
push 7
push str._update
mov ecx, 0x54ffd8
call fcn.00408810
test byte [0x550018], bl
jne 0x44a02a
or dword [0x550018], ebx
call fcn.004443f0
push 0x4f70a0
call fcn.004bd58e
add esp, 4
lea edx, [esp + 0x138]
push edx
mov ecx, 0x54ffd8
call fcn.0040b240
add esp, 4
mov byte [esp + 0x178], 0x13
mov ecx, dword [esp + 0x4c]
and ecx, 0xffffff04
or ecx, 0x104
cmp dword [eax + 0x14], 0x10
mov dword [esp + 0x4c], ecx
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x50], 0
jb 0x44a070
mov ebx, dword [eax]
jmp 0x44a072
mov ebx, eax
mov eax, ecx
call fcn.0041a220
mov dword [esp + 0x44], eax
push 0
lea edx, [esp + 0xe0]
push edx
mov ecx, 0x517ef8
mov byte [esp + 0x180], 0x14
call fcn.0041bdd0
mov esi, eax
lea eax, [esp + 0x44]
call fcn.0041aae0
lea eax, [esp + 0x44]
mov byte [esp + 0x178], 0x13
call fcn.0041aa40
mov esi, 0x10
mov byte [esp + 0x178], 0xf
cmp dword [esp + 0x14c], esi
jb 0x44a0db
mov eax, dword [esp + 0x138]
push eax
call fcn.004bb4d8
add esp, 4
lea ecx, [esp + 0x138]
push ecx
mov ecx, 0x550200
call fcn.0040b240
add esp, 4
mov byte [esp + 0x178], 0x15
mov edx, dword [esp + 0x4c]
mov ecx, dword [eax + 0x10]
and edx, 0xffffff04
or edx, 0x104
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], 0
cmp dword [eax + 0x14], esi
jb 0x44a120
mov ebx, dword [eax]
jmp 0x44a122
mov ebx, eax
mov eax, ecx
call fcn.0041a220
mov dword [esp + 0x44], eax
xor ebx, ebx
push ebx
lea eax, [esp + 0xe0]
push eax
mov ecx, str.updateversion
mov byte [esp + 0x180], 0x16
call fcn.0041bdd0
mov esi, eax
lea eax, [esp + 0x44]
call fcn.0041aae0
lea eax, [esp + 0x44]
mov byte [esp + 0x178], 0x15
call fcn.0041aa40
mov byte [esp + 0x178], 0xf
cmp dword [esp + 0x14c], 0x10
jb 0x44a188
mov ecx, dword [esp + 0x138]
push ecx
call fcn.004bb4d8
add esp, 4
push ebx
lea edx, [esp + 0xc0]
push edx
mov ecx, str.other
call fcn.0041bdd0
mov esi, eax
lea eax, [esp + 0xdc]
call fcn.0041aae0
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [esp + 0x11c]
push ecx
lea ecx, [esp + 0xc0]
call fcn.0040f820
add esp, 4
lea edx, [esp + 0x100]
push edx
lea ecx, [esp + 0x120]
mov byte [esp + 0x17c], 0x17
call fcn.0040b370
add esp, 4
mov byte [esp + 0x178], 0x18
cmp dword [esp + 0x7c], 8
mov ecx, dword [esp + 0x68]
jae 0x44a201
lea ecx, [esp + 0x68]
mov edi, dword [0x54fee0]
cmp edi, ebx
je 0x44a232
cmp dword [edi + 8], 2
jl 0x44a232
push str.MainUpdate.cpp
push 2
push ecx
mov eax, esp
mov dword [esp + 0x1c], esp
push eax
mov esi, 0x94
call fcn.0042fa10
push edi
mov ecx, esi
call fcn.0042d670
mov ecx, dword [esp + 0x100]
mov esi, 8
cmp dword [esp + 0x114], esi
jae 0x44a24e
lea ecx, [esp + 0x100]
mov eax, dword [esp + 0x68]
cmp dword [esp + 0x7c], esi
jae 0x44a25c
lea eax, [esp + 0x68]
push 1
push ebx
push ecx
push eax
push str.open
push ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov eax, dword [0x54fee0]
cmp eax, ebx
je 0x44a2a9
cmp dword [eax + 8], 4
mov edi, eax
jl 0x44a2a9
push str.MainUpdate.cpp
push 4
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push ecx
mov ecx, str.end_RunTempUpdate
mov esi, 0x97
call fcn.0042fa10
push edi
mov ecx, esi
call fcn.0042d670
mov esi, 8
cmp dword [esp + 0x114], esi
jb 0x44a2c2
mov edx, dword [esp + 0x100]
push edx
call fcn.004bb4d8
add esp, 4
xor eax, eax
cmp dword [esp + 0x130], 0x10
mov esi, 7
mov dword [esp + 0x114], esi
mov dword [esp + 0x110], ebx
mov word [esp + 0x100], ax
jb 0x44a2f9
mov ecx, dword [esp + 0x11c]
push ecx
call fcn.004bb4d8
add esp, 4
mov edi, 0xf
lea eax, [esp + 0xbc]
mov dword [esp + 0x130], edi
mov dword [esp + 0x12c], ebx
mov byte [esp + 0x11c], bl
mov byte [esp + 0x178], 0xd
call fcn.0041aa40
lea eax, [esp + 0xdc]
mov byte [esp + 0x178], 0xb
call fcn.0041aa40
cmp dword [esp + 0xb4], 0x10
jb 0x44a355
mov edx, dword [esp + 0xa0]
push edx
call fcn.004bb4d8
add esp, 4
lea ecx, [esp + 0x18]
mov dword [esp + 0xb4], edi
mov dword [esp + 0xb0], ebx
mov byte [esp + 0xa0], bl
call fcn.004159b0
mov edi, 8
cmp dword [esp + 0x98], edi
jb 0x44a391
mov eax, dword [esp + 0x84]
push eax
call fcn.004bb4d8
add esp, 4
xor ecx, ecx
mov dword [esp + 0x98], esi
mov dword [esp + 0x94], ebx
mov word [esp + 0x84], cx
cmp dword [esp + 0x7c], edi
jb 0x44a3bc
mov edx, dword [esp + 0x68]
push edx
call fcn.004bb4d8
add esp, 4
mov al, 1
mov ecx, dword [esp + 0x170]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x158]
xor ecx, esp
call fcn.004bb4e3
mov esp, ebp
pop ebp
ret