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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4eb8f3
mov eax, dword fs:[0]
push eax
sub esp, 0x160
mov eax, dword [0x53f1e4]
xor eax, esp
mov dword [esp + 0x158], eax
push ebx
push esi
push edi
mov eax, dword [0x53f1e4]
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 [0x5430d8]
mov edi, ecx
test eax, eax
je 0x446220
cmp dword [eax + 8], 4
mov ebx, eax
jl 0x446220
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, 0x6f
call fcn.00408620
push ebx
mov ecx, esi
call fcn.0042c420
mov eax, 1
test byte [0x5432a4], al
jne 0x44625b
or dword [0x5432a4], eax
mov dword [esp + 0x178], 0
call fcn.0043fb30
push 0x4ecbf0
call fcn.004b4336
add esp, 4
mov dword [esp + 0x178], 0xffffffff
mov edx, dword [esp + 0x14]
push edx
lea eax, [esp + 0x48]
push eax
mov ebx, 0x54335c
call fcn.0042dc30
push eax
mov eax, str..exe
lea ecx, [esp + 0x74]
mov dword [esp + 0x184], 1
call fcn.004039a0
add esp, 0xc
mov byte [esp + 0x178], 3
cmp dword [esp + 0x58], 8
jb 0x4462a8
mov ecx, dword [esp + 0x44]
push ecx
call fcn.004b1c22
add esp, 4
lea eax, [esp + 0xbc]
xor edx, edx
push edi
mov esi, 7
push eax
mov ebx, 0x543324
mov dword [esp + 0x60], esi
mov dword [esp + 0x5c], 0
mov word [esp + 0x4c], dx
call fcn.0042dc30
push eax
mov eax, 0x507958
lea ecx, [esp + 0xe8]
mov byte [esp + 0x184], 4
call fcn.004039a0
add esp, 0xc
mov ecx, eax
mov eax, 0x54335c
lea ebx, [esp + 0x84]
mov byte [esp + 0x178], 5
call fcn.00403b00
mov ebx, 8
cmp dword [esp + 0xf0], ebx
jb 0x446329
mov ecx, dword [esp + 0xdc]
push ecx
call fcn.004b1c22
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 0x446363
mov eax, dword [esp + 0xbc]
push eax
call fcn.004b1c22
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 0x446389
lea eax, [esp + 0x68]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [esp + 0x68]
cmp dword [esp + 0x7c], ebx
jae 0x44639e
lea eax, [esp + 0x68]
push eax
mov edx, 0x76
push 0x50c758
push str.MainUpdate.cpp
lea esi, [edx - 0x72]
mov eax, 0x5430d8
call fcn.0042b3c0
add esp, 0xc
lea edx, [esp + 0x18]
push edx
call fcn.00415290
mov byte [esp + 0x178], 9
mov edx, dword [esp + 0x68]
cmp dword [esp + 0x7c], ebx
jae 0x4463de
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 0x4463f6
sub eax, esi
sar eax, 1
push eax
push edx
lea ecx, [esp + 0x4c]
call fcn.00404960
mov byte [esp + 0x178], 0xa
mov eax, dword [esp + 0x84]
cmp dword [esp + 0x98], ebx
jae 0x44642f
lea eax, [esp + 0x84]
push eax
lea ecx, [esp + 0x1c]
push ecx
lea ebx, [esp + 0x4c]
call fcn.00415b30
test al, al
mov esi, 8
sete bl
mov byte [esp + 0x178], 9
cmp dword [esp + 0x58], esi
jb 0x446463
mov edx, dword [esp + 0x44]
push edx
call fcn.004b1c22
add esp, 4
xor edi, edi
test bl, bl
je 0x4464fd
mov eax, dword [0x5430d8]
cmp eax, edi
je 0x4464a5
cmp dword [eax + 8], 2
mov ebx, eax
jl 0x4464a5
push str.MainUpdate.cpp
push 2
push ecx
mov eax, esp
mov dword [esp + 0x1c], esp
push eax
mov ecx, 0x50c770
lea esi, [edi + 0x7b]
call fcn.00408620
push ebx
mov ecx, esi
call fcn.0042c420
lea esi, [edi + 8]
lea ecx, [esp + 0x18]
call fcn.00415390
cmp dword [esp + 0x98], esi
jb 0x4464c7
mov ecx, dword [esp + 0x84]
push ecx
call fcn.004b1c22
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 0x4464f6
mov eax, dword [esp + 0x68]
push eax
call fcn.004b1c22
add esp, 4
xor al, al
jmp 0x446bbe
lea ecx, [esp + 0x68]
push ecx
lea ecx, [esp + 0xa4]
call fcn.004055f0
add esp, 4
mov byte [esp + 0x178], 0xb
cmp dword [0x543354], 0x10
mov ecx, dword [0x543340]
jae 0x44652d
mov ecx, 0x543340
mov esi, dword [esp + 0xb0]
mov ebx, dword [0x543350]
mov eax, esi
cmp esi, ebx
jb 0x446542
mov eax, ebx
cmp dword [esp + 0xb4], 0x10
mov edx, dword [esp + 0xa0]
jae 0x44655a
lea edx, [esp + 0xa0]
call fcn.00403ba0
cmp eax, edi
jne 0x446575
cmp esi, ebx
jae 0x44656c
or eax, 0xffffffff
jmp 0x446573
xor eax, eax
cmp esi, ebx
setne al
cmp eax, edi
sete al
test al, al
sete al
test al, al
je 0x446650
mov ebx, dword [0x5430d8]
cmp ebx, edi
je 0x4465bb
cmp dword [ebx + 8], 2
jl 0x4465bb
push str.MainUpdate.cpp
push 2
push ecx
mov edx, esp
mov dword [esp + 0x1c], esp
push edx
mov ecx, 0x50c7b0
mov esi, 0x82
call fcn.00408620
push ebx
mov ecx, esi
call fcn.0042c420
cmp dword [esp + 0xb4], 0x10
jb 0x4465d5
mov eax, dword [esp + 0xa0]
push eax
call fcn.004b1c22
add esp, 4
lea ecx, [esp + 0x18]
mov dword [esp + 0xb4], 0xf
mov dword [esp + 0xb0], edi
mov byte [esp + 0xa0], 0
call fcn.00415390
mov esi, 8
cmp dword [esp + 0x98], esi
jb 0x446616
mov ecx, dword [esp + 0x84]
push ecx
call fcn.004b1c22
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 0x4464f6
mov eax, dword [esp + 0x68]
push eax
call fcn.004b1c22
add esp, 4
xor al, al
jmp 0x446bbe
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 0x50a3d0
lea edi, [esp + 0x48]
mov byte [esp + 0x17c], bl
call fcn.00419920
push esi
lea ecx, [esp + 0xc0]
push ecx
mov ecx, str.quiet
mov byte [esp + 0x180], 0x10
call fcn.0041af50
mov esi, eax
mov eax, edi
call fcn.00419c60
mov eax, edi
mov byte [esp + 0x178], bl
call fcn.00419bc0
push 0x50a3d0
lea edi, [esp + 0x48]
call fcn.00419920
push 0
lea edx, [esp + 0xc0]
push edx
mov ecx, 0x50c800
mov byte [esp + 0x180], 0x11
call fcn.0041af50
mov esi, eax
mov eax, edi
call fcn.00419c60
mov eax, edi
mov byte [esp + 0x178], bl
call fcn.00419bc0
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 0x50c80c
lea edx, [esp + 0x15c]
call fcn.004499b0
add esp, 8
lea eax, [esp + 0x154]
push eax
lea edi, [esp + 0x48]
call fcn.00419920
push 0
lea ecx, [esp + 0xe0]
push ecx
mov ecx, 0x50c6bc
mov byte [esp + 0x180], 0x12
call fcn.0041af50
mov esi, eax
mov eax, edi
call fcn.00419c60
mov eax, edi
mov byte [esp + 0x178], bl
call fcn.00419bc0
mov ebx, 1
test byte [0x5431e4], bl
jne 0x4467c1
or dword [0x5431e4], ebx
call fcn.00442d10
push 0x4ecbd0
call fcn.004b4336
add esp, 4
push 0xb
push str.tempunsetup
push 0x5431a4
xor eax, eax
call fcn.0040d750
cmp eax, 0xffffffff
je 0x44680a
test byte [0x5431e4], bl
jne 0x4467f9
or dword [0x5431e4], ebx
call fcn.00442d10
push 0x4ecbd0
call fcn.004b4336
add esp, 4
push 7
push str._update
mov ecx, 0x5431a4
call fcn.00404960
test byte [0x5431e4], bl
jne 0x44682a
or dword [0x5431e4], ebx
call fcn.00442d10
push 0x4ecbd0
call fcn.004b4336
add esp, 4
lea edx, [esp + 0x138]
push edx
mov ecx, 0x5431a4
call fcn.0040b370
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 0x446870
mov ebx, dword [eax]
jmp 0x446872
mov ebx, eax
mov eax, ecx
call fcn.004193a0
mov dword [esp + 0x44], eax
push 0
lea edx, [esp + 0xe0]
push edx
mov ecx, 0x50c6c0
mov byte [esp + 0x180], 0x14
call fcn.0041af50
mov esi, eax
lea eax, [esp + 0x44]
call fcn.00419c60
lea eax, [esp + 0x44]
mov byte [esp + 0x178], 0x13
call fcn.00419bc0
mov esi, 0x10
mov byte [esp + 0x178], 0xf
cmp dword [esp + 0x14c], esi
jb 0x4468db
mov eax, dword [esp + 0x138]
push eax
call fcn.004b1c22
add esp, 4
lea ecx, [esp + 0x138]
push ecx
mov ecx, 0x543378
call fcn.0040b370
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 0x446920
mov ebx, dword [eax]
jmp 0x446922
mov ebx, eax
mov eax, ecx
call fcn.004193a0
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.0041af50
mov esi, eax
lea eax, [esp + 0x44]
call fcn.00419c60
lea eax, [esp + 0x44]
mov byte [esp + 0x178], 0x15
call fcn.00419bc0
mov byte [esp + 0x178], 0xf
cmp dword [esp + 0x14c], 0x10
jb 0x446988
mov ecx, dword [esp + 0x138]
push ecx
call fcn.004b1c22
add esp, 4
push ebx
lea edx, [esp + 0xc0]
push edx
mov ecx, str.other
call fcn.0041af50
mov esi, eax
lea eax, [esp + 0xdc]
call fcn.00419c60
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.0040f600
add esp, 4
lea edx, [esp + 0x100]
push edx
lea ecx, [esp + 0x120]
mov byte [esp + 0x17c], 0x17
call fcn.0040b470
add esp, 4
mov byte [esp + 0x178], 0x18
cmp dword [esp + 0x7c], 8
mov ecx, dword [esp + 0x68]
jae 0x446a01
lea ecx, [esp + 0x68]
mov edi, dword [0x5430d8]
cmp edi, ebx
je 0x446a32
cmp dword [edi + 8], 2
jl 0x446a32
push str.MainUpdate.cpp
push 2
push ecx
mov eax, esp
mov dword [esp + 0x1c], esp
push eax
mov esi, 0x95
call fcn.00408620
push edi
mov ecx, esi
call fcn.0042c420
mov ecx, dword [esp + 0x100]
mov esi, 8
cmp dword [esp + 0x114], esi
jae 0x446a4e
lea ecx, [esp + 0x100]
mov eax, dword [esp + 0x68]
cmp dword [esp + 0x7c], esi
jae 0x446a5c
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 [0x5430d8]
cmp eax, ebx
je 0x446aa9
cmp dword [eax + 8], 4
mov edi, eax
jl 0x446aa9
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, 0x98
call fcn.00408620
push edi
mov ecx, esi
call fcn.0042c420
mov esi, 8
cmp dword [esp + 0x114], esi
jb 0x446ac2
mov edx, dword [esp + 0x100]
push edx
call fcn.004b1c22
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 0x446af9
mov ecx, dword [esp + 0x11c]
push ecx
call fcn.004b1c22
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.00419bc0
lea eax, [esp + 0xdc]
mov byte [esp + 0x178], 0xb
call fcn.00419bc0
cmp dword [esp + 0xb4], 0x10
jb 0x446b55
mov edx, dword [esp + 0xa0]
push edx
call fcn.004b1c22
add esp, 4
lea ecx, [esp + 0x18]
mov dword [esp + 0xb4], edi
mov dword [esp + 0xb0], ebx
mov byte [esp + 0xa0], bl
call fcn.00415390
mov edi, 8
cmp dword [esp + 0x98], edi
jb 0x446b91
mov eax, dword [esp + 0x84]
push eax
call fcn.004b1c22
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 0x446bbc
mov edx, dword [esp + 0x68]
push edx
call fcn.004b1c22
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.004b1c2d
mov esp, ebp
pop ebp
ret