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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4efab3
mov eax, dword fs:[0]
push eax
sub esp, 0x160
mov eax, dword [0x5441b4]
xor eax, esp
mov dword [esp + 0x158], eax
push ebx
push esi
push edi
mov eax, dword [0x5441b4]
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 [0x547e58]
mov edi, ecx
test eax, eax
je 0x4463e0
cmp dword [eax + 8], 4
mov ebx, eax
jl 0x4463e0
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, 0x6d
call fcn.0042d450
push ebx
mov ecx, esi
call fcn.0042b0b0
mov eax, 1
test byte [0x548034], al
jne 0x44641b
or dword [0x548034], eax
mov dword [esp + 0x178], 0
call fcn.0043ec60
push 0x4f10a0
call fcn.004b809e
add esp, 4
mov dword [esp + 0x178], 0xffffffff
mov edx, dword [esp + 0x14]
push edx
lea eax, [esp + 0x48]
push eax
mov ebx, 0x5480ec
call fcn.0042cb30
push eax
mov eax, str..exe
lea ecx, [esp + 0x74]
mov dword [esp + 0x184], 1
call fcn.004044b0
add esp, 0xc
mov byte [esp + 0x178], 3
cmp dword [esp + 0x58], 8
jb 0x446468
mov ecx, dword [esp + 0x44]
push ecx
call fcn.004b6106
add esp, 4
lea eax, [esp + 0xbc]
xor edx, edx
push edi
mov esi, 7
push eax
mov ebx, 0x5480b4
mov dword [esp + 0x60], esi
mov dword [esp + 0x5c], 0
mov word [esp + 0x4c], dx
call fcn.0042cb30
push eax
mov eax, 0x50ca18
lea ecx, [esp + 0xe8]
mov byte [esp + 0x184], 4
call fcn.004044b0
add esp, 0xc
mov ecx, eax
mov eax, 0x5480ec
lea ebx, [esp + 0x84]
mov byte [esp + 0x178], 5
call fcn.004125f0
mov ebx, 8
cmp dword [esp + 0xf0], ebx
jb 0x4464e9
mov ecx, dword [esp + 0xdc]
push ecx
call fcn.004b6106
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 0x446523
mov eax, dword [esp + 0xbc]
push eax
call fcn.004b6106
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 0x446549
lea eax, [esp + 0x68]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [esp + 0x68]
cmp dword [esp + 0x7c], ebx
jae 0x44655e
lea eax, [esp + 0x68]
push eax
mov edx, 0x74
push 0x511540
push str.MainUpdate.cpp
lea esi, [edx - 0x70]
mov eax, 0x547e58
call fcn.0042a050
add esp, 0xc
lea edx, [esp + 0x18]
push edx
call fcn.00413990
mov byte [esp + 0x178], 9
mov edx, dword [esp + 0x68]
cmp dword [esp + 0x7c], ebx
jae 0x44659e
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 0x4465b6
sub eax, esi
sar eax, 1
push eax
push edx
lea ecx, [esp + 0x4c]
call fcn.004073c0
mov byte [esp + 0x178], 0xa
mov eax, dword [esp + 0x84]
cmp dword [esp + 0x98], ebx
jae 0x4465ef
lea eax, [esp + 0x84]
push eax
lea ecx, [esp + 0x1c]
push ecx
lea ebx, [esp + 0x4c]
call fcn.00414230
test al, al
mov esi, 8
sete bl
mov byte [esp + 0x178], 9
cmp dword [esp + 0x58], esi
jb 0x446623
mov edx, dword [esp + 0x44]
push edx
call fcn.004b6106
add esp, 4
xor edi, edi
test bl, bl
je 0x4466bd
mov eax, dword [0x547e58]
cmp eax, edi
je 0x446665
cmp dword [eax + 8], 2
mov ebx, eax
jl 0x446665
push str.MainUpdate.cpp
push 2
push ecx
mov eax, esp
mov dword [esp + 0x1c], esp
push eax
mov ecx, 0x511558
lea esi, [edi + 0x79]
call fcn.0042d450
push ebx
mov ecx, esi
call fcn.0042b0b0
lea esi, [edi + 8]
lea ecx, [esp + 0x18]
call fcn.00413a90
cmp dword [esp + 0x98], esi
jb 0x446687
mov ecx, dword [esp + 0x84]
push ecx
call fcn.004b6106
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 0x4466b6
mov eax, dword [esp + 0x68]
push eax
call fcn.004b6106
add esp, 4
xor al, al
jmp 0x446d7e
lea ecx, [esp + 0x68]
push ecx
lea ecx, [esp + 0xa4]
call fcn.00402730
add esp, 4
mov byte [esp + 0x178], 0xb
cmp dword [0x5480e4], 0x10
mov ecx, dword [0x5480d0]
jae 0x4466ed
mov ecx, 0x5480d0
mov esi, dword [esp + 0xb0]
mov ebx, dword [0x5480e0]
mov eax, esi
cmp esi, ebx
jb 0x446702
mov eax, ebx
cmp dword [esp + 0xb4], 0x10
mov edx, dword [esp + 0xa0]
jae 0x44671a
lea edx, [esp + 0xa0]
call fcn.00406190
cmp eax, edi
jne 0x446735
cmp esi, ebx
jae 0x44672c
or eax, 0xffffffff
jmp 0x446733
xor eax, eax
cmp esi, ebx
setne al
cmp eax, edi
sete al
test al, al
sete al
test al, al
je 0x446810
mov ebx, dword [0x547e58]
cmp ebx, edi
je 0x44677b
cmp dword [ebx + 8], 2
jl 0x44677b
push str.MainUpdate.cpp
push 2
push ecx
mov edx, esp
mov dword [esp + 0x1c], esp
push edx
mov ecx, 0x511598
mov esi, 0x80
call fcn.0042d450
push ebx
mov ecx, esi
call fcn.0042b0b0
cmp dword [esp + 0xb4], 0x10
jb 0x446795
mov eax, dword [esp + 0xa0]
push eax
call fcn.004b6106
add esp, 4
lea ecx, [esp + 0x18]
mov dword [esp + 0xb4], 0xf
mov dword [esp + 0xb0], edi
mov byte [esp + 0xa0], 0
call fcn.00413a90
mov esi, 8
cmp dword [esp + 0x98], esi
jb 0x4467d6
mov ecx, dword [esp + 0x84]
push ecx
call fcn.004b6106
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 0x4466b6
mov eax, dword [esp + 0x68]
push eax
call fcn.004b6106
add esp, 4
xor al, al
jmp 0x446d7e
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 0x50f358
lea edi, [esp + 0x48]
mov byte [esp + 0x17c], bl
call fcn.004181d0
push esi
lea ecx, [esp + 0xc0]
push ecx
mov ecx, str.quiet
mov byte [esp + 0x180], 0x10
call fcn.00419800
mov esi, eax
mov eax, edi
call fcn.00418510
mov eax, edi
mov byte [esp + 0x178], bl
call fcn.00418470
push 0x50f358
lea edi, [esp + 0x48]
call fcn.004181d0
push 0
lea edx, [esp + 0xc0]
push edx
mov ecx, 0x5115e8
mov byte [esp + 0x180], 0x11
call fcn.00419800
mov esi, eax
mov eax, edi
call fcn.00418510
mov eax, edi
mov byte [esp + 0x178], bl
call fcn.00418470
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 0x5115f4
lea edx, [esp + 0x15c]
call fcn.00449980
add esp, 8
lea eax, [esp + 0x154]
push eax
lea edi, [esp + 0x48]
call fcn.004181d0
push 0
lea ecx, [esp + 0xe0]
push ecx
mov ecx, 0x5114a4
mov byte [esp + 0x180], 0x12
call fcn.00419800
mov esi, eax
mov eax, edi
call fcn.00418510
mov eax, edi
mov byte [esp + 0x178], bl
call fcn.00418470
mov ebx, 1
test byte [0x547f74], bl
jne 0x446981
or dword [0x547f74], ebx
call fcn.00441d90
push 0x4f1080
call fcn.004b809e
add esp, 4
push 0xb
push str.tempunsetup
push 0x547f34
xor eax, eax
call fcn.0040c250
cmp eax, 0xffffffff
je 0x4469ca
test byte [0x547f74], bl
jne 0x4469b9
or dword [0x547f74], ebx
call fcn.00441d90
push 0x4f1080
call fcn.004b809e
add esp, 4
push 7
push str._update
mov ecx, 0x547f34
call fcn.004073c0
test byte [0x547f74], bl
jne 0x4469ea
or dword [0x547f74], ebx
call fcn.00441d90
push 0x4f1080
call fcn.004b809e
add esp, 4
lea edx, [esp + 0x138]
push edx
mov ecx, 0x547f34
call fcn.00409c20
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 0x446a30
mov ebx, dword [eax]
jmp 0x446a32
mov ebx, eax
mov eax, ecx
call fcn.00417c50
mov dword [esp + 0x44], eax
push 0
lea edx, [esp + 0xe0]
push edx
mov ecx, 0x5114a8
mov byte [esp + 0x180], 0x14
call fcn.00419800
mov esi, eax
lea eax, [esp + 0x44]
call fcn.00418510
lea eax, [esp + 0x44]
mov byte [esp + 0x178], 0x13
call fcn.00418470
mov esi, 0x10
mov byte [esp + 0x178], 0xf
cmp dword [esp + 0x14c], esi
jb 0x446a9b
mov eax, dword [esp + 0x138]
push eax
call fcn.004b6106
add esp, 4
lea ecx, [esp + 0x138]
push ecx
mov ecx, 0x548108
call fcn.00409c20
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 0x446ae0
mov ebx, dword [eax]
jmp 0x446ae2
mov ebx, eax
mov eax, ecx
call fcn.00417c50
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.00419800
mov esi, eax
lea eax, [esp + 0x44]
call fcn.00418510
lea eax, [esp + 0x44]
mov byte [esp + 0x178], 0x15
call fcn.00418470
mov byte [esp + 0x178], 0xf
cmp dword [esp + 0x14c], 0x10
jb 0x446b48
mov ecx, dword [esp + 0x138]
push ecx
call fcn.004b6106
add esp, 4
push ebx
lea edx, [esp + 0xc0]
push edx
mov ecx, str.other
call fcn.00419800
mov esi, eax
lea eax, [esp + 0xdc]
call fcn.00418510
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.0040e360
add esp, 4
lea edx, [esp + 0x100]
push edx
lea ecx, [esp + 0x120]
mov byte [esp + 0x17c], 0x17
call fcn.00409d50
add esp, 4
mov byte [esp + 0x178], 0x18
cmp dword [esp + 0x7c], 8
mov ecx, dword [esp + 0x68]
jae 0x446bc1
lea ecx, [esp + 0x68]
mov edi, dword [0x547e58]
cmp edi, ebx
je 0x446bf2
cmp dword [edi + 8], 2
jl 0x446bf2
push str.MainUpdate.cpp
push 2
push ecx
mov eax, esp
mov dword [esp + 0x1c], esp
push eax
mov esi, 0x93
call fcn.0042d450
push edi
mov ecx, esi
call fcn.0042b0b0
mov ecx, dword [esp + 0x100]
mov esi, 8
cmp dword [esp + 0x114], esi
jae 0x446c0e
lea ecx, [esp + 0x100]
mov eax, dword [esp + 0x68]
cmp dword [esp + 0x7c], esi
jae 0x446c1c
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 [0x547e58]
cmp eax, ebx
je 0x446c69
cmp dword [eax + 8], 4
mov edi, eax
jl 0x446c69
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, 0x96
call fcn.0042d450
push edi
mov ecx, esi
call fcn.0042b0b0
mov esi, 8
cmp dword [esp + 0x114], esi
jb 0x446c82
mov edx, dword [esp + 0x100]
push edx
call fcn.004b6106
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 0x446cb9
mov ecx, dword [esp + 0x11c]
push ecx
call fcn.004b6106
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.00418470
lea eax, [esp + 0xdc]
mov byte [esp + 0x178], 0xb
call fcn.00418470
cmp dword [esp + 0xb4], 0x10
jb 0x446d15
mov edx, dword [esp + 0xa0]
push edx
call fcn.004b6106
add esp, 4
lea ecx, [esp + 0x18]
mov dword [esp + 0xb4], edi
mov dword [esp + 0xb0], ebx
mov byte [esp + 0xa0], bl
call fcn.00413a90
mov edi, 8
cmp dword [esp + 0x98], edi
jb 0x446d51
mov eax, dword [esp + 0x84]
push eax
call fcn.004b6106
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 0x446d7c
mov edx, dword [esp + 0x68]
push edx
call fcn.004b6106
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.004b6111
mov esp, ebp
pop ebp
ret