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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4eb2a3
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 0x446210
cmp dword [eax + 8], 4
mov ebx, eax
jl 0x446210
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 0x44624b
or dword [0x5432a4], eax
mov dword [esp + 0x178], 0
call fcn.0043fb30
push 0x4ec560
call fcn.004b3d86
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 0x446298
mov ecx, dword [esp + 0x44]
push ecx
call fcn.004b1676
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 0x446319
mov ecx, dword [esp + 0xdc]
push ecx
call fcn.004b1676
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 0x446353
mov eax, dword [esp + 0xbc]
push eax
call fcn.004b1676
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 0x446379
lea eax, [esp + 0x68]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [esp + 0x68]
cmp dword [esp + 0x7c], ebx
jae 0x44638e
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 0x4463ce
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 0x4463e6
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 0x44641f
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 0x446453
mov edx, dword [esp + 0x44]
push edx
call fcn.004b1676
add esp, 4
xor edi, edi
test bl, bl
je 0x4464ed
mov eax, dword [0x5430d8]
cmp eax, edi
je 0x446495
cmp dword [eax + 8], 2
mov ebx, eax
jl 0x446495
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 0x4464b7
mov ecx, dword [esp + 0x84]
push ecx
call fcn.004b1676
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 0x4464e6
mov eax, dword [esp + 0x68]
push eax
call fcn.004b1676
add esp, 4
xor al, al
jmp 0x446bae
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 0x44651d
mov ecx, 0x543340
mov esi, dword [esp + 0xb0]
mov ebx, dword [0x543350]
mov eax, esi
cmp esi, ebx
jb 0x446532
mov eax, ebx
cmp dword [esp + 0xb4], 0x10
mov edx, dword [esp + 0xa0]
jae 0x44654a
lea edx, [esp + 0xa0]
call fcn.00403ba0
cmp eax, edi
jne 0x446565
cmp esi, ebx
jae 0x44655c
or eax, 0xffffffff
jmp 0x446563
xor eax, eax
cmp esi, ebx
setne al
cmp eax, edi
sete al
test al, al
sete al
test al, al
je 0x446640
mov ebx, dword [0x5430d8]
cmp ebx, edi
je 0x4465ab
cmp dword [ebx + 8], 2
jl 0x4465ab
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 0x4465c5
mov eax, dword [esp + 0xa0]
push eax
call fcn.004b1676
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 0x446606
mov ecx, dword [esp + 0x84]
push ecx
call fcn.004b1676
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 0x4464e6
mov eax, dword [esp + 0x68]
push eax
call fcn.004b1676
add esp, 4
xor al, al
jmp 0x446bae
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.004499a0
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 0x4467b1
or dword [0x5431e4], ebx
call fcn.00442d10
push 0x4ec540
call fcn.004b3d86
add esp, 4
push 0xb
push str.tempunsetup
push 0x5431a4
xor eax, eax
call fcn.0040d750
cmp eax, 0xffffffff
je 0x4467fa
test byte [0x5431e4], bl
jne 0x4467e9
or dword [0x5431e4], ebx
call fcn.00442d10
push 0x4ec540
call fcn.004b3d86
add esp, 4
push 7
push str._update
mov ecx, 0x5431a4
call fcn.00404960
test byte [0x5431e4], bl
jne 0x44681a
or dword [0x5431e4], ebx
call fcn.00442d10
push 0x4ec540
call fcn.004b3d86
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 0x446860
mov ebx, dword [eax]
jmp 0x446862
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 0x4468cb
mov eax, dword [esp + 0x138]
push eax
call fcn.004b1676
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 0x446910
mov ebx, dword [eax]
jmp 0x446912
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 0x446978
mov ecx, dword [esp + 0x138]
push ecx
call fcn.004b1676
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 0x4469f1
lea ecx, [esp + 0x68]
mov edi, dword [0x5430d8]
cmp edi, ebx
je 0x446a22
cmp dword [edi + 8], 2
jl 0x446a22
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 0x446a3e
lea ecx, [esp + 0x100]
mov eax, dword [esp + 0x68]
cmp dword [esp + 0x7c], esi
jae 0x446a4c
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 0x446a99
cmp dword [eax + 8], 4
mov edi, eax
jl 0x446a99
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 0x446ab2
mov edx, dword [esp + 0x100]
push edx
call fcn.004b1676
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 0x446ae9
mov ecx, dword [esp + 0x11c]
push ecx
call fcn.004b1676
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 0x446b45
mov edx, dword [esp + 0xa0]
push edx
call fcn.004b1676
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 0x446b81
mov eax, dword [esp + 0x84]
push eax
call fcn.004b1676
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 0x446bac
mov edx, dword [esp + 0x68]
push edx
call fcn.004b1676
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.004b1681
mov esp, ebp
pop ebp
ret