Function at 0x40cf60
Capabilities:
Accept command line arguments
Get session user name
Read .ini file

Disassembly:
sub rsp, 0xc08
mov rax, qword [0x0042d620]
xor rax, rsp
mov qword [rsp + 0xbf8], rax
mov dword [0x0042ea04], 0
mov dword [0x0042ea08], 0
mov dword [rsp + 0x38], 0
mov word [0x00431840], 0
mov byte [0x004315c0], 0
call qword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov qword [rsp + 0x160], rax
lea rax, str.system.ini
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x103
lea r9, [0x004314a0]
lea r8, str.progman.exe
lea rdx, str.shell
lea rcx, str.boot
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea rcx, [0x004314a0]
call qword [sym.imp.USER32.dll_CharLowerA]
mov dword [0x00431838], 0
mov rax, qword [rsp + 0x160]
mov qword [rsp + 0x170], rax
mov word [0x00431280], 0
mov byte [0x004309a0], 0
mov rax, qword [rsp + 0x170]
movsx eax, byte [rax]
cmp eax, 0x22
jne 0x40d0c0
mov rax, qword [rsp + 0x170]
add rax, 1
mov qword [rsp + 0x170], rax
mov edx, 0x22
mov rcx, qword [rsp + 0x170]
call fcn.004162f0
mov qword [rsp + 0x170], rax
cmp qword [rsp + 0x170], 0
je 0x40d0a9
mov rax, qword [rsp + 0x170]
add rax, 1
mov qword [rsp + 0x170], rax
mov rax, qword [rsp + 0x170]
movsx eax, byte [rax]
cmp eax, 0x20
jne 0x40d0a7
mov rax, qword [rsp + 0x170]
add rax, 1
mov qword [rsp + 0x170], rax
jmp 0x40d081
jmp 0x40d0be
mov rcx, qword [rsp + 0x160]
call fcn.0040f000
mov qword [rsp + 0x170], rax
jmp 0x40d122
mov edx, 0x20
mov rcx, qword [rsp + 0x170]
call fcn.004162f0
mov qword [rsp + 0x170], rax
cmp qword [rsp + 0x170], 0
je 0x40d10d
mov rax, qword [rsp + 0x170]
movsx eax, byte [rax]
cmp eax, 0x20
jne 0x40d10b
mov rax, qword [rsp + 0x170]
add rax, 1
mov qword [rsp + 0x170], rax
jmp 0x40d0e5
jmp 0x40d122
mov rcx, qword [rsp + 0x160]
call fcn.0040f000
mov qword [rsp + 0x170], rax
mov rax, qword [rsp + 0x170]
movsx eax, byte [rax]
cmp eax, 0x2f
jne 0x40da56
cmp dword [0x00430e1c], 0
je 0x40d2d8
mov rax, qword [rsp + 0x170]
movsx eax, byte [rax + 1]
cmp eax, 0x50
jne 0x40d2d8
call qword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov qword [rsp + 0x3d8], rax
mov rax, qword [rsp + 0x3d8]
mov qword [rsp + 0x3d0], rax
mov rax, qword [rsp + 0x3d0]
movzx eax, word [rax]
cmp eax, 0x22
jne 0x40d221
mov rax, qword [rsp + 0x3d0]
add rax, 2
mov qword [rsp + 0x3d0], rax
mov dx, 0x22
mov rcx, qword [rsp + 0x3d0]
call fcn.00417000
mov qword [rsp + 0x3d0], rax
cmp qword [rsp + 0x3d0], 0
je 0x40d1fe
mov rax, qword [rsp + 0x3d0]
add rax, 2
mov qword [rsp + 0x3d0], rax
mov rax, qword [rsp + 0x3d0]
movzx eax, word [rax]
cmp eax, 0x20
jne 0x40d1fc
mov rax, qword [rsp + 0x3d0]
add rax, 2
mov qword [rsp + 0x3d0], rax
jmp 0x40d1d6
jmp 0x40d21f
mov rcx, qword [rsp + 0x3d8]
call fcn.00417030
mov rcx, qword [rsp + 0x3d8]
lea rax, [rcx + rax*2]
mov qword [rsp + 0x3d0], rax
jmp 0x40d28e
mov dx, 0x20
mov rcx, qword [rsp + 0x3d0]
call fcn.00417000
mov qword [rsp + 0x3d0], rax
cmp qword [rsp + 0x3d0], 0
je 0x40d26d
mov rax, qword [rsp + 0x3d0]
movzx eax, word [rax]
cmp eax, 0x20
jne 0x40d26b
mov rax, qword [rsp + 0x3d0]
add rax, 2
mov qword [rsp + 0x3d0], rax
jmp 0x40d245
jmp 0x40d28e
mov rcx, qword [rsp + 0x3d8]
call fcn.00417030
mov rcx, qword [rsp + 0x3d8]
lea rax, [rcx + rax*2]
mov qword [rsp + 0x3d0], rax
cmp qword [rsp + 0x3d0], 0
je 0x40d2ce
mov rax, qword [rsp + 0x3d0]
movzx eax, word [rax]
cmp eax, 0x2f
jne 0x40d2ce
mov rax, qword [rsp + 0x3d0]
movzx eax, word [rax + 2]
cmp eax, 0x50
jne 0x40d2ce
mov rax, qword [rsp + 0x3d0]
add rax, 4
mov rcx, rax
call fcn.004142b0
mov eax, 1
jmp 0x40e3ab
mov rax, qword [rsp + 0x170]
movsx eax, byte [rax]
test eax, eax
je 0x40da56
mov rax, qword [rsp + 0x170]
movsx eax, byte [rax]
cmp eax, 0x20
je 0x40da56
mov rax, qword [rsp + 0x170]
add rax, 1
mov qword [rsp + 0x170], rax
mov rax, qword [rsp + 0x170]
movzx eax, byte [rax + 1]
mov byte [rsp + 0x3c4], al
mov rax, qword [rsp + 0x170]
movsx eax, byte [rax]
mov dword [rsp + 0xbf0], eax
mov eax, dword [rsp + 0xbf0]
sub eax, 0x41
mov dword [rsp + 0xbf0], eax
cmp dword [rsp + 0xbf0], 0x19
ja case.0x40d370.66
movsxd rax, dword [rsp + 0xbf0]
lea rcx, [0x00400000]
mov eax, dword [rcx + rax*4 + 0xe3c4]
add rax, rcx
jmp rax
mov dword [0x0042ea04], 1
movsx eax, byte [rsp + 0x3c4]
cmp eax, 0x30
jne 0x40d39d
mov dword [0x0042ea04], 0
mov dword [0x0042ea08], 0
movsx eax, byte [rsp + 0x3c4]
cmp eax, 0x30
je 0x40d3b7
movsx eax, byte [rsp + 0x3c4]
cmp eax, 0x31
jne 0x40d3cb
mov rax, qword [rsp + 0x170]
add rax, 1
mov qword [rsp + 0x170], rax
jmp case.0x40d370.66
movsx eax, byte [rsp + 0x3c4]
cmp eax, 0x30
jne 0x40d3e9
mov dword [0x0042ea08], 0
jmp 0x40d3fd
mov dword [0x0042ea08], 1
mov dword [0x0042ea04], 1
movsx eax, byte [rsp + 0x3c4]
cmp eax, 0x30
je 0x40d417
movsx eax, byte [rsp + 0x3c4]
cmp eax, 0x31
jne 0x40d42b
mov rax, qword [rsp + 0x170]
add rax, 1
mov qword [rsp + 0x170], rax
jmp case.0x40d370.66
mov dword [0x0042d028], 0
movsx eax, byte [rsp + 0x3c4]
cmp eax, 0x30
jl 0x40d498
movsx eax, byte [rsp + 0x3c4]
cmp eax, 0x39
jg 0x40d498
mov eax, dword [0x0042d028]
imul eax, eax, 0xa
movsx ecx, byte [rsp + 0x3c4]
lea eax, [rax + rcx - 0x30]
mov dword [0x0042d028], eax
mov rax, qword [rsp + 0x170]
add rax, 1
mov qword [rsp + 0x170], rax
mov rax, qword [rsp + 0x170]
movzx eax, byte [rax + 1]
mov byte [rsp + 0x3c4], al
jmp 0x40d43a
jmp case.0x40d370.66
mov dword [0x0042d02c], 1
movsx eax, byte [rsp + 0x3c4]
cmp eax, 0x30
jne 0x40d4be
mov dword [0x0042d02c], 0
movsx eax, byte [rsp + 0x3c4]
cmp eax, 0x30
je 0x40d4d8
movsx eax, byte [rsp + 0x3c4]
cmp eax, 0x31
jne 0x40d4ec
mov rax, qword [rsp + 0x170]
add rax, 1
mov qword [rsp + 0x170], rax
jmp case.0x40d370.66
mov dword [0x0042d030], 1
movsx eax, byte [rsp + 0x3c4]
cmp eax, 0x30
jne 0x40d512
mov dword [0x0042d030], 0
movsx eax, byte [rsp + 0x3c4]
cmp eax, 0x30
je 0x40d52c
movsx eax, byte [rsp + 0x3c4]
cmp eax, 0x31
jne 0x40d540
mov rax, qword [rsp + 0x170]
add rax, 1
mov qword [rsp + 0x170], rax
jmp case.0x40d370.66
mov dword [0x0042d034], 1
movsx eax, byte [rsp + 0x3c4]
cmp eax, 0x30
jne 0x40d566
mov dword [0x0042d034], 0
movsx eax, byte [rsp + 0x3c4]
cmp eax, 0x30
je 0x40d580
movsx eax, byte [rsp + 0x3c4]
cmp eax, 0x31
jne 0x40d594
mov rax, qword [rsp + 0x170]
add rax, 1
mov qword [rsp + 0x170], rax
jmp case.0x40d370.66
mov dword [0x0042e9fc], 1
jmp case.0x40d370.66
mov dword [0x0042ea0c], 1
jmp case.0x40d370.66
mov dword [0x0042d01c], 0
jmp case.0x40d370.66
mov dword [0x0042d020], 0
jmp case.0x40d370.66
movsx eax, byte [rsp + 0x3c4]
cmp eax, 0x22
jne 0x40d66f
mov rax, qword [rsp + 0x170]
movsx eax, byte [rax + 2]
test eax, eax
je 0x40d66f
mov rax, qword [rsp + 0x170]
add rax, 2
mov qword [rsp + 0x170], rax
mov edx, 0x22
mov rcx, qword [rsp + 0x170]
call fcn.004162f0
mov qword [rsp + 0x168], rax
cmp qword [rsp + 0x168], 0
je 0x40d66f
mov rax, qword [rsp + 0x168]
mov byte [rax], 0
mov r8d, 0x103
mov rdx, qword [rsp + 0x170]
lea rcx, [0x004309a0]
call fcn.00415390
mov rax, qword [rsp + 0x168]
mov byte [rax], 0x22
mov rax, qword [rsp + 0x168]
mov qword [rsp + 0x170], rax
jmp case.0x40d370.66
mov dword [0x0042d038], 1
movsx eax, byte [rsp + 0x3c4]
cmp eax, 0x30
jne 0x40d695
mov dword [0x0042d038], 0
movsx eax, byte [rsp + 0x3c4]
cmp eax, 0x30
je 0x40d6af
movsx eax, byte [rsp + 0x3c4]
cmp eax, 0x31
jne 0x40d6c3
mov rax, qword [rsp + 0x170]
add rax, 1
mov qword [rsp + 0x170], rax
jmp case.0x40d370.66
mov dword [0x0042d040], 1
movsx eax, byte [rsp + 0x3c4]
cmp eax, 0x30
jne 0x40d6eb
mov dword [0x0042d040], 0
jmp 0x40d702
movsx eax, byte [rsp + 0x3c4]
cmp eax, 0x32
jne 0x40d702
mov dword [0x0042d040], 2
movsx eax, byte [rsp + 0x3c4]
cmp eax, 0x30
je 0x40d71c
movsx eax, byte [rsp + 0x3c4]
cmp eax, 0x31
jne 0x40d730
mov rax, qword [rsp + 0x170]
add rax, 1
mov qword [rsp + 0x170], rax
jmp case.0x40d370.66
movsx eax, byte [rsp + 0x3c4]
cmp eax, 0x31
jne 0x40d762
mov dword [0x0042e9f4], 1
mov rax, qword [rsp + 0x170]
add rax, 1
mov qword [rsp + 0x170], rax
jmp 0x40d78d
movsx eax, byte [rsp + 0x3c4]
cmp eax, 0x30
jne 0x40d78d
mov dword [0x0042d024], 0
mov rax, qword [rsp + 0x170]
add rax, 1
mov qword [rsp + 0x170], rax
mov rax, qword [rsp + 0x170]
movsx eax, byte [rax + 1]
cmp eax, 0x22
jne 0x40d83f
mov rax, qword [rsp + 0x170]
movsx eax, byte [rax + 2]
cmp eax, 0x22
je 0x40d83f
mov rax, qword [rsp + 0x170]
add rax, 2
mov qword [rsp + 0x170], rax
mov edx, 0x22
mov rcx, qword [rsp + 0x170]
call fcn.004162f0
mov qword [rsp + 0x168], rax
cmp qword [rsp + 0x168], 0
je 0x40d83f
mov rax, qword [rsp + 0x168]
mov byte [rax], 0
mov rax, qword [rsp + 0x170]
movsx eax, byte [rax]
test eax, eax
je 0x40d824
mov r8d, 0x102
mov rdx, qword [rsp + 0x170]
lea rcx, [0x004315c0]
call fcn.00415390
mov rax, qword [rsp + 0x168]
mov byte [rax], 0x22
mov rax, qword [rsp + 0x168]
mov qword [rsp + 0x170], rax
jmp case.0x40d370.66
movsx eax, byte [rsp + 0x3c4]
cmp eax, 0x22
jne 0x40d913
mov rax, qword [rsp + 0x170]
movsx eax, byte [rax + 2]
cmp eax, 0x2a
je 0x40d913
mov rax, qword [rsp + 0x170]
movsx eax, byte [rax + 2]
cmp eax, 0x22
je 0x40d913
mov rax, qword [rsp + 0x170]
add rax, 2
mov qword [rsp + 0x170], rax
mov edx, 0x22
mov rcx, qword [rsp + 0x170]
call fcn.004162f0
mov qword [rsp + 0x168], rax
cmp qword [rsp + 0x168], 0
je 0x40d90e
mov rax, qword [rsp + 0x168]
mov byte [rax], 0
mov r8d, 0x103
mov rdx, qword [rsp + 0x170]
lea rcx, [0x00431840]
call fcn.00415730
lea rax, [0x00431840]
mov qword [0x004307a0], rax
mov rax, qword [rsp + 0x168]
mov byte [rax], 0x22
mov rax, qword [rsp + 0x168]
mov qword [rsp + 0x170], rax
mov dword [rsp + 0x38], 1
jmp case.0x40d370.66
mov dword [rsp + 0x38], 1
mov dword [rsp + 0x3c8], 0x207
cmp dword [0x00430e1c], 0
je 0x40d946
lea rdx, [rsp + 0x3c8]
lea rcx, [0x00431840]
call qword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x40d976
lea rdx, [rsp + 0x3c8]
lea rcx, [rsp + 0x3e0]
call qword [sym.imp.ADVAPI32.dll_GetUserNameA]
mov r8d, 0x103
lea rdx, [rsp + 0x3e0]
lea rcx, [0x00431840]
call fcn.00415730
lea rax, [0x00431840]
mov qword [0x004307a0], rax
cmp dword [0x004320ac], 0
je 0x40d992
call fcn.0040e430
movsx eax, byte [rsp + 0x3c4]
cmp eax, 0x2a
je 0x40d9bd
movsx eax, byte [rsp + 0x3c4]
cmp eax, 0x22
jne 0x40d9ca
mov rax, qword [rsp + 0x170]
movsx eax, byte [rax + 2]
cmp eax, 0x2a
jne 0x40d9ca
mov qword [0x004307a0], 0
jmp 0x40d9d8
lea rax, [0x00431840]
mov qword [0x004307a0], rax
movsx eax, byte [rsp + 0x3c4]
cmp eax, 0x22
jne 0x40da30
mov rax, qword [rsp + 0x170]
add rax, 2
mov qword [rsp + 0x170], rax
mov edx, 0x22
mov rcx, qword [rsp + 0x170]
call fcn.004162f0
mov qword [rsp + 0x168], rax
cmp qword [rsp + 0x168], 0
je 0x40da2e
mov rax, qword [rsp + 0x168]
mov qword [rsp + 0x170], rax
jmp case.0x40d370.66
movsx eax, byte [rsp + 0x3c4]
cmp eax, 0x2a
jne case.0x40d370.66
mov rax, qword [rsp + 0x170]
add rax, 1
mov qword [rsp + 0x170], rax
jmp 0x40d2d8
mov rax, qword [rsp + 0x170]
movsx eax, byte [rax]
cmp eax, 0x20
jne 0x40da7c
mov rax, qword [rsp + 0x170]
add rax, 1
mov qword [rsp + 0x170], rax
jmp 0x40da56
mov rax, qword [rsp + 0x170]
movsx eax, byte [rax]
cmp eax, 0x2d
jne 0x40daaa
mov dword [0x0042ea00], 1
mov rax, qword [rsp + 0x170]
add rax, 1
mov qword [rsp + 0x170], rax
cmp qword [rsp + 0x170], 0
je 0x40dbad
mov rax, qword [rsp + 0x170]
movsx eax, byte [rax]
test eax, eax
je 0x40dbad
mov r8d, 0x103
mov rdx, qword [rsp + 0x170]
lea rcx, [rsp + 0x2b0]
call fcn.00416d70
lea rcx, [rsp + 0x2b0]
call fcn.0040f000
sub rax, 1
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
movsx eax, byte [rax]
cmp eax, 0x22
jne 0x40db50
mov rax, qword [rsp + 0x30]
mov byte [rax], 0
mov edx, 0x22
lea rcx, [rsp + 0x2b0]
call fcn.00416650
mov qword [rsp + 0x30], rax
cmp qword [rsp + 0x30], 0
je 0x40db41
mov rax, qword [rsp + 0x30]
add rax, 1
mov qword [rsp + 0x30], rax
jmp 0x40db4e
lea rax, [rsp + 0x2b0]
mov qword [rsp + 0x30], rax
jmp 0x40db5d
lea rax, [rsp + 0x2b0]
mov qword [rsp + 0x30], rax
mov rcx, qword [rsp + 0x30]
call fcn.0040f160
cmp eax, 1
jne 0x40db85
mov r8d, 0x103
mov rdx, qword [rsp + 0x30]
lea rcx, [0x004309a0]
call fcn.00415390
jmp 0x40dbad
mov r8d, 0x103
mov rdx, qword [rsp + 0x30]
lea rcx, [0x00430be0]
call fcn.00415390
mov edx, 0x103
lea rcx, [0x00430be0]
call fcn.00408110
movsx eax, byte [0x004309a0]
test eax, eax
jne 0x40dbf7
cmp dword [0x00430e1c], 0
je 0x40dbdd
mov r8d, 0x103
lea rdx, [0x00431280]
mov rcx, qword [0x00430640]
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
jmp 0x40dbf7
mov r8d, 0x103
lea rdx, [0x004309a0]
mov rcx, qword [0x00430640]
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea r8, [rsp + 0x180]
lea rdx, [0x00431280]
lea rcx, [0x004309a0]
call fcn.00411430
mov dword [rsp + 0x3c0], eax
cmp dword [rsp + 0x3c0], 0
jne 0x40e05b
mov eax, dword [rsp + 0x184]
cmp dword [rsp + 0x188], eax
jne 0x40e042
lea rdx, str.install.cab
lea rcx, [rsp + 0x194]
call fcn.00416c00
test eax, eax
jne 0x40dc85
lea rcx, [rsp + 0x194]
call fcn.004161d0
movsxd rcx, dword [rsp + 0x18c]
lea rax, [rax + rcx + 0x1e]
mov dword [0x0042d044], eax
mov eax, dword [rsp + 0x184]
mov dword [0x0042d048], eax
jmp 0x40e042
lea rdx, str.install.inf
lea rcx, [rsp + 0x194]
call fcn.00416c00
test eax, eax
jne 0x40dd44
lea rcx, [rsp + 0x194]
call fcn.004161d0
movsxd rcx, dword [rsp + 0x18c]
lea rax, [rax + rcx + 0x1e]
mov dword [rsp + 0x7e0], eax
mov eax, dword [rsp + 0x184]
add eax, 1
cdqe
mov rcx, rax
call fcn.00416f30
mov qword [0x0042ea20], rax
mov eax, dword [rsp + 0x184]
mov dword [rsp + 0x20], eax
mov r9, qword [0x0042ea20]
mov r8d, dword [rsp + 0x7e0]
lea rdx, [0x00431280]
lea rcx, [0x004309a0]
call fcn.00411840
cmp eax, dword [rsp + 0x184]
jne 0x40dd28
movsxd rax, dword [rsp + 0x184]
mov rcx, qword [0x0042ea20]
mov byte [rcx + rax], 0
jmp 0x40dd3f
mov rcx, qword [0x0042ea20]
call fcn.00416ef0
mov qword [0x0042ea20], 0
jmp 0x40e042
lea rdx, str.install.lng
lea rcx, [rsp + 0x194]
call fcn.00416c00
test eax, eax
jne 0x40de03
lea rcx, [rsp + 0x194]
call fcn.004161d0
movsxd rcx, dword [rsp + 0x18c]
lea rax, [rax + rcx + 0x1e]
mov dword [rsp + 0x7e4], eax
mov eax, dword [rsp + 0x184]
add eax, 1
cdqe
mov rcx, rax
call fcn.00416f30
mov qword [0x0042ea18], rax
mov eax, dword [rsp + 0x184]
mov dword [rsp + 0x20], eax
mov r9, qword [0x0042ea18]
mov r8d, dword [rsp + 0x7e4]
lea rdx, [0x00431280]
lea rcx, [0x004309a0]
call fcn.00411840
cmp eax, dword [rsp + 0x184]
jne 0x40dde7
movsxd rax, dword [rsp + 0x184]
mov rcx, qword [0x0042ea18]
mov byte [rcx + rax], 0
jmp 0x40ddfe
mov rcx, qword [0x0042ea18]
call fcn.00416ef0
mov qword [0x0042ea18], 0
jmp 0x40e042
lea rdx, str.liesmich.txt
lea rcx, [rsp + 0x194]
call fcn.00416c00
test eax, eax
jne 0x40dec2
lea rcx, [rsp + 0x194]
call fcn.004161d0
movsxd rcx, dword [rsp + 0x18c]
lea rax, [rax + rcx + 0x1e]
mov dword [rsp + 0x7e8], eax
mov eax, dword [rsp + 0x184]
add eax, 1
cdqe
mov rcx, rax
call fcn.00416f30
mov qword [0x0042ea28], rax
mov eax, dword [rsp + 0x184]
mov dword [rsp + 0x20], eax
mov r9, qword [0x0042ea28]
mov r8d, dword [rsp + 0x7e8]
lea rdx, [0x00431280]
lea rcx, [0x004309a0]
call fcn.00411840
cmp eax, dword [rsp + 0x184]
jne 0x40dea6
movsxd rax, dword [rsp + 0x184]
mov rcx, qword [0x0042ea28]
mov byte [rcx + rax], 0
jmp 0x40debd
mov rcx, qword [0x0042ea28]
call fcn.00416ef0
mov qword [0x0042ea28], 0
jmp 0x40e042
lea rdx, str.readme.txt
lea rcx, [rsp + 0x194]
call fcn.00416c00
test eax, eax
jne 0x40df81
lea rcx, [rsp + 0x194]
call fcn.004161d0
movsxd rcx, dword [rsp + 0x18c]
lea rax, [rax + rcx + 0x1e]
mov dword [rsp + 0x7ec], eax
mov eax, dword [rsp + 0x184]
add eax, 1
cdqe
mov rcx, rax
call fcn.00416f30
mov qword [0x0042ea30], rax
mov eax, dword [rsp + 0x184]
mov dword [rsp + 0x20], eax
mov r9, qword [0x0042ea30]
mov r8d, dword [rsp + 0x7ec]
lea rdx, [0x00431280]
lea rcx, [0x004309a0]
call fcn.00411840
cmp eax, dword [rsp + 0x184]
jne 0x40df65
movsxd rax, dword [rsp + 0x184]
mov rcx, qword [0x0042ea30]
mov byte [rcx + rax], 0
jmp 0x40df7c
mov rcx, qword [0x0042ea30]
call fcn.00416ef0
mov qword [0x0042ea30], 0
jmp 0x40e042
cmp dword [0x0042ea38], 0x10
jge 0x40e042
lea rcx, [rsp + 0x194]
call fcn.004161d0
add rax, 1
mov rcx, rax
call fcn.00416f30
movsxd rcx, dword [0x0042ea38]
lea rdx, [0x004307c0]
mov qword [rdx + rcx*8], rax
movsxd rax, dword [0x0042ea38]
lea rcx, [0x004307c0]
lea rdx, [rsp + 0x194]
mov rcx, qword [rcx + rax*8]
call fcn.004164f0
lea rcx, [rsp + 0x194]
call fcn.004161d0
movsxd rcx, dword [rsp + 0x18c]
lea rax, [rax + rcx + 0x1e]
movsxd rcx, dword [0x0042ea38]
lea rdx, [0x00431120]
mov dword [rdx + rcx*4], eax
movsxd rax, dword [0x0042ea38]
lea rcx, [0x00430f60]
mov edx, dword [rsp + 0x184]
mov dword [rcx + rax*4], edx
movsxd rax, dword [0x0042ea38]
lea rcx, [0x00430fc0]
mov edx, dword [rsp + 0x180]
mov dword [rcx + rax*4], edx
mov eax, dword [0x0042ea38]
add eax, 1
mov dword [0x0042ea38], eax
lea rcx, [rsp + 0x180]
call fcn.00411800
mov dword [rsp + 0x3c0], eax
jmp 0x40dc19
lea rcx, [rsp + 0x180]
call fcn.00411400
mov r9d, 2
xor r8d, r8d
lea rdx, str.auto
lea rcx, str.auto
call fcn.004013a0
test eax, eax
je 0x40e092
mov dword [0x0042ea04], 1
cmp dword [0x0042ea04], 0
je 0x40e0f0
mov r9d, 2
xor r8d, r8d
lea rdx, str.hidden
lea rcx, str.auto
call fcn.004013a0
test eax, eax
je 0x40e0c5
mov dword [0x0042ea08], 1
cmp dword [0x0042d038], 0xffffffff
jne 0x40e0f0
mov r9d, 2
xor r8d, r8d
lea rdx, str.update
lea rcx, str.auto
call fcn.004013a0
mov dword [0x0042d038], eax
mov dword [rsp + 0x28], 2
mov dword [rsp + 0x20], 0x102
lea r9, [rsp + 0x50]
lea r8, [0x00426940]
lea rdx, str.Program
lea rcx, [0x00426960]
call fcn.00401060
lea rdx, [0x0042730c]
lea rcx, [rsp + 0x50]
call fcn.00416450
mov dword [rsp + 0x28], 2
mov dword [rsp + 0x20], 0x1f
lea r9, [0x00430840]
lea r8, [0x00426940]
lea rdx, str.Progver
lea rcx, [0x00426960]
call fcn.00401060
mov r8d, 0x103
lea rdx, [0x00430840]
lea rcx, [rsp + 0x50]
call fcn.00415470
mov dword [rsp + 0x28], 2
mov dword [rsp + 0x20], 0x103
lea r9, [0x00430ac0]
lea r8, [0x00426940]
lea rdx, [0x004274f8]
lea rcx, [0x00426960]
call fcn.00401060
lea rdx, str.Installation
lea rcx, [0x00431fa0]
call fcn.004164f0
mov r8d, 0x103
lea rdx, [rsp + 0x50]
lea rcx, [0x00431fa0]
call fcn.00415470
mov dword [rsp + 0x28], 2
mov dword [rsp + 0x20], 0x103
lea r9, [0x00430880]
lea r8, [0x00426940]
lea rdx, str.ProgName
lea rcx, [0x00426960]
call fcn.00401060
cmp dword [0x0042ea04], 0
je 0x40e25e
cmp dword [0x0042d038], 1
jne 0x40e25e
call fcn.0040a460
call fcn.0040a490
xor ecx, ecx
call fcn.00403800
cmp eax, 6
jne 0x40e254
cmp dword [0x0042d030], 0xffffffff
jne 0x40e23f
mov dword [0x0042d030], 0
cmp dword [0x0042d034], 0xffffffff
jne 0x40e252
mov dword [0x0042d034], 0
jmp 0x40e25e
mov dword [0x0042d038], 0
cmp dword [rsp + 0x38], 0
jne 0x40e3a1
mov word [0x00431840], 0
mov dword [rsp + 0x28], 2
mov dword [rsp + 0x20], 0x103
lea r9, [rsp + 0x2b0]
lea r8, [0x00426940]
lea rdx, str.UserName
lea rcx, [0x00426960]
call fcn.00401060
movsx eax, byte [rsp + 0x2b0]
test eax, eax
je 0x40e2f5
lea rdx, [0x00427310]
lea rcx, [rsp + 0x2b0]
call fcn.00416cb0
test eax, eax
je 0x40e2f5
mov r8d, 0x103
lea rdx, [rsp + 0x2b0]
lea rcx, [0x00431840]
call fcn.00415730
lea rax, [0x00431840]
mov qword [0x004307a0], rax
jmp 0x40e3a1
mov dword [rsp + 0x3c8], 0x103
cmp dword [0x00430e1c], 0
je 0x40e320
lea rdx, [rsp + 0x3c8]
lea rcx, [0x00431840]
call qword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x40e35d
mov dword [rsp + 0x3c8], 0x3ff
lea rdx, [rsp + 0x3c8]
lea rcx, [rsp + 0x7f0]
call qword [sym.imp.ADVAPI32.dll_GetUserNameA]
mov r8d, dword [rsp + 0x3c8]
lea rdx, [rsp + 0x7f0]
lea rcx, [0x00431840]
call fcn.00415730
lea rax, [0x00431840]
mov qword [0x004307a0], rax
cmp dword [0x004320ac], 0
je 0x40e379
call fcn.0040e430
movsx eax, byte [rsp + 0x2b0]
cmp eax, 0x2a
jne 0x40e393
mov qword [0x004307a0], 0
jmp 0x40e3a1
lea rax, [0x00431840]
mov qword [0x004307a0], rax
call fcn.00411910
call fcn.004087b0
mov rcx, qword [rsp + 0xbf8]
xor rcx, rsp
call fcn.00416330
add rsp, 0xc08
ret