Function at 0x4094d0
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x52c9b7
mov eax, dword fs:[0]
push eax
sub esp, 0x49c
mov eax, dword [0x588790]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x47c], eax
xor ebx, ebx
mov edi, str._Xml2Install::ReadInstallerCfg_start
mov dword [ebp - 4], ebx
call fcn.00408b90
push 0xffffffffffffffff
push ebx
lea ecx, [ebp + 0xc]
push ecx
mov esi, 0xf
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x40], ebx
mov byte [ebp - 0x50], bl
call fcn.00404580
mov dword [ebp - 0xac], esi
mov dword [ebp - 0xb0], ebx
mov byte [ebp - 0xc0], bl
push 0xffffffffffffffff
push ebx
lea edx, [ebp - 0x50]
push edx
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 2
call fcn.00404580
cmp dword [ebp - 0x3c], 0x10
jb 0x40956d
mov eax, dword [ebp - 0x50]
push eax
call fcn.004ad85d
add esp, 4
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x40], ebx
mov byte [ebp - 0x50], bl
sub esp, 0x1c
mov byte [ebp - 4], 3
mov ecx, esp
mov dword [ebp - 0x480], esp
push 0xe
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.IsCoverInstall
mov byte [ecx], bl
call fcn.004047d0
lea ecx, [ebp - 0xdc]
push ecx
lea ecx, [ebp - 0xc0]
call fcn.0041f530
mov edi, dword [ebp - 0xcc]
mov eax, edi
cmp edi, 5
jb 0x4095bd
mov eax, 5
cmp dword [ebp - 0xc8], 0x10
mov edx, dword [ebp - 0xdc]
jae 0x4095d2
lea edx, [ebp - 0xdc]
push eax
mov ecx, str.False
call fcn.00402130
add esp, 4
cmp eax, ebx
jne 0x4095f8
cmp edi, 5
jae 0x4095ee
or eax, 0xffffffff
jmp 0x4095f6
xor eax, eax
cmp edi, 5
setne al
cmp eax, ebx
sete al
cmp al, bl
je 0x40960e
mov edx, dword [ebp - 0x47c]
mov byte [edx + 0xd5], 1
jmp 0x40961a
mov eax, dword [ebp - 0x47c]
mov byte [eax + 0xd5], bl
mov dword [ebp - 0x4a4], ebx
mov dword [ebp - 0x4a0], ebx
mov dword [ebp - 0x49c], ebx
lea ecx, [ebp - 0x4a4]
push ecx
sub esp, 0x1c
mov byte [ebp - 4], 5
mov ecx, esp
mov dword [ebp - 0x480], esp
push 0xb
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.SpicesPaths
mov byte [ecx], bl
call fcn.004047d0
lea ecx, [ebp - 0xc0]
call fcn.0041fbd0
mov dword [ebp - 0x174], esi
mov dword [ebp - 0x178], ebx
mov byte [ebp - 0x188], bl
mov dword [ebp - 0x158], esi
mov dword [ebp - 0x15c], ebx
mov byte [ebp - 0x16c], bl
mov dword [ebp - 0x13c], esi
mov dword [ebp - 0x140], ebx
mov byte [ebp - 0x150], bl
mov dword [ebp - 0x120], esi
mov dword [ebp - 0x124], ebx
mov byte [ebp - 0x134], bl
mov dword [ebp - 0x104], esi
mov dword [ebp - 0x108], ebx
mov byte [ebp - 0x118], bl
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x4a0]
sub ecx, dword [ebp - 0x4a4]
mov eax, 0x66666667
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x484], ebx
mov dword [ebp - 0x478], eax
je 0x409e53
mov edi, edi
mov eax, dword [ebp - 0x484]
lea esi, [eax + eax*4]
shl esi, 4
add esi, dword [ebp - 0x4a4]
mov edx, dword [esi + 0x4c]
mov dword [ebp - 0x474], esi
add esi, 0x2c
cmp edx, esi
je 0x409754
mov eax, dword [edx + 0x14]
mov edi, str.hKey
add eax, 8
lea ecx, [ecx]
mov cl, byte [eax]
cmp cl, byte [edi]
jne 0x409740
cmp cl, bl
je 0x40973c
mov cl, byte [eax + 1]
cmp cl, byte [edi + 1]
jne 0x409740
add eax, 2
add edi, 2
cmp cl, bl
jne 0x409720
xor eax, eax
jmp 0x409745
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x4097e8
mov edx, dword [edx + 0x20]
cmp edx, esi
jne 0x409712
xor edi, edi
mov eax, edi
mov dword [ebp - 0x3c], 0xf
mov dword [ebp - 0x40], ebx
mov byte [ebp - 0x50], bl
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x409768
sub eax, edx
push eax
push edi
lea ecx, [ebp - 0x50]
call fcn.004047d0
lea ecx, [ebp - 0x2c]
push ecx
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 7
call fcn.00420a40
add esp, 4
mov edi, eax
lea edx, [ebp - 0x188]
cmp edx, edi
je 0x409815
mov esi, 0x10
cmp dword [ebp - 0x174], esi
jb 0x4097b6
mov eax, dword [ebp - 0x188]
push eax
call fcn.004ad85d
add esp, 4
mov dword [ebp - 0x174], 0xf
mov dword [ebp - 0x178], ebx
mov byte [ebp - 0x188], bl
cmp dword [edi + 0x14], esi
jae 0x4097f3
mov eax, dword [edi + 0x10]
inc eax
push eax
lea ecx, [ebp - 0x188]
push edi
push ecx
call fcn.005040e0
add esp, 0xc
jmp 0x4097fd
mov edi, dword [edx + 0x18]
add edi, 8
jmp 0x409756
mov edx, dword [edi]
mov dword [ebp - 0x188], edx
mov dword [edi], ebx
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x178], eax
mov ecx, dword [edi + 0x14]
mov dword [ebp - 0x174], ecx
mov dword [edi + 0x10], ebx
mov dword [edi + 0x14], ebx
mov esi, 0x10
cmp dword [ebp - 0x18], esi
jb 0x40982b
mov edx, dword [ebp - 0x2c]
push edx
call fcn.004ad85d
add esp, 4
mov byte [ebp - 4], 6
mov dword [ebp - 0x18], 0xf
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 0x2c], bl
cmp dword [ebp - 0x3c], esi
jb 0x40984d
mov eax, dword [ebp - 0x50]
push eax
call fcn.004ad85d
add esp, 4
mov esi, dword [ebp - 0x474]
mov ecx, dword [ebp - 0x47c]
mov edx, dword [esi + 0x4c]
add esi, 0x2c
cmp byte [ecx + 0xd6], bl
je 0x4098f9
cmp edx, esi
je 0x4098b0
nop
mov eax, dword [edx + 0x14]
mov edi, str.SubKey64
add eax, 8
jmp 0x409880
mov cl, byte [eax]
cmp cl, byte [edi]
jne 0x4098a0
cmp cl, bl
je 0x40989c
mov cl, byte [eax + 1]
cmp cl, byte [edi + 1]
jne 0x4098a0
add eax, 2
add edi, 2
cmp cl, bl
jne 0x409880
xor eax, eax
jmp 0x4098a5
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x4098f1
mov edx, dword [edx + 0x20]
cmp edx, esi
jne 0x409870
xor edi, edi
mov eax, edi
mov dword [ebp - 0x3c], 0xf
mov dword [ebp - 0x40], ebx
mov byte [ebp - 0x50], bl
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x4098c4
sub eax, edx
push eax
push edi
lea ecx, [ebp - 0x50]
call fcn.004047d0
lea edx, [ebp - 0x2c]
push edx
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 9
call fcn.00420a40
add esp, 4
mov edi, eax
jmp 0x409980
mov edi, dword [edx + 0x18]
add edi, 8
jmp 0x4098b2
cmp edx, esi
je 0x409944
lea ecx, [ecx]
mov eax, dword [edx + 0x14]
mov edi, str.SubKey32
add eax, 8
jmp 0x409910
mov cl, byte [eax]
cmp cl, byte [edi]
jne 0x409930
cmp cl, bl
je 0x40992c
mov cl, byte [eax + 1]
cmp cl, byte [edi + 1]
jne 0x409930
add eax, 2
add edi, 2
cmp cl, bl
jne 0x409910
xor eax, eax
jmp 0x409935
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x4099d8
mov edx, dword [edx + 0x20]
cmp edx, esi
jne 0x409900
xor edi, edi
mov eax, edi
mov dword [ebp - 0x3c], 0xf
mov dword [ebp - 0x40], ebx
mov byte [ebp - 0x50], bl
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x409958
sub eax, edx
push eax
push edi
lea ecx, [ebp - 0x50]
call fcn.004047d0
lea edx, [ebp - 0x2c]
push edx
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0xb
call fcn.00420a40
add esp, 4
mov edi, eax
lea eax, [ebp - 0x16c]
mov esi, 0x10
cmp eax, edi
je 0x409a05
cmp dword [ebp - 0x158], esi
jb 0x4099a6
mov ecx, dword [ebp - 0x16c]
push ecx
call fcn.004ad85d
add esp, 4
mov dword [ebp - 0x158], 0xf
mov dword [ebp - 0x15c], ebx
mov byte [ebp - 0x16c], bl
cmp dword [edi + 0x14], esi
jae 0x4099e3
mov eax, dword [edi + 0x10]
inc eax
push eax
lea edx, [ebp - 0x16c]
push edi
push edx
call fcn.005040e0
add esp, 0xc
jmp 0x4099ed
mov edi, dword [edx + 0x18]
add edi, 8
jmp 0x409946
mov eax, dword [edi]
mov dword [ebp - 0x16c], eax
mov dword [edi], ebx
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x15c], ecx
mov edx, dword [edi + 0x14]
mov dword [ebp - 0x158], edx
mov dword [edi + 0x14], ebx
mov dword [edi + 0x10], ebx
cmp dword [ebp - 0x18], esi
jb 0x409a16
mov eax, dword [ebp - 0x2c]
push eax
call fcn.004ad85d
add esp, 4
mov byte [ebp - 4], 6
mov byte [ebp - 0x2c], bl
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], 0xf
cmp dword [ebp - 0x3c], esi
jb 0x409a38
mov ecx, dword [ebp - 0x50]
push ecx
call fcn.004ad85d
add esp, 4
mov esi, dword [ebp - 0x474]
mov edx, dword [esi + 0x4c]
add esi, 0x2c
cmp edx, esi
je 0x409a94
jmp 0x409a50
mov eax, dword [edx + 0x14]
mov edi, str.ValueName
add eax, 8
jmp 0x409a60
mov cl, byte [eax]
cmp cl, byte [edi]
jne 0x409a80
cmp cl, bl
je 0x409a7c
mov cl, byte [eax + 1]
cmp cl, byte [edi + 1]
jne 0x409a80
add eax, 2
add edi, 2
cmp cl, bl
jne 0x409a60
xor eax, eax
jmp 0x409a85
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x409b28
mov edx, dword [edx + 0x20]
cmp edx, esi
jne 0x409a50
xor edi, edi
mov eax, edi
mov dword [ebp - 0x3c], 0xf
mov dword [ebp - 0x40], ebx
mov byte [ebp - 0x50], bl
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x409aa8
sub eax, edx
push eax
push edi
lea ecx, [ebp - 0x50]
call fcn.004047d0
lea edx, [ebp - 0x2c]
push edx
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0xd
call fcn.00420a40
add esp, 4
mov edi, eax
lea eax, [ebp - 0x134]
mov esi, 0x10
cmp eax, edi
je 0x409b55
cmp dword [ebp - 0x120], esi
jb 0x409af6
mov ecx, dword [ebp - 0x134]
push ecx
call fcn.004ad85d
add esp, 4
mov dword [ebp - 0x120], 0xf
mov dword [ebp - 0x124], ebx
mov byte [ebp - 0x134], bl
cmp dword [edi + 0x14], esi
jae 0x409b33
mov eax, dword [edi + 0x10]
inc eax
push eax
lea edx, [ebp - 0x134]
push edi
push edx
call fcn.005040e0
add esp, 0xc
jmp 0x409b3d
mov edi, dword [edx + 0x18]
add edi, 8
jmp 0x409a96
mov eax, dword [edi]
mov dword [ebp - 0x134], eax
mov dword [edi], ebx
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x124], ecx
mov edx, dword [edi + 0x14]
mov dword [ebp - 0x120], edx
mov dword [edi + 0x10], ebx
mov dword [edi + 0x14], ebx
cmp dword [ebp - 0x18], esi
jb 0x409b66
mov eax, dword [ebp - 0x2c]
push eax
call fcn.004ad85d
add esp, 4
mov byte [ebp - 4], 6
mov dword [ebp - 0x18], 0xf
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 0x2c], bl
cmp dword [ebp - 0x3c], esi
jb 0x409b88
mov ecx, dword [ebp - 0x50]
push ecx
call fcn.004ad85d
add esp, 4
mov esi, dword [ebp - 0x474]
mov edx, dword [esi + 0x4c]
add esi, 0x2c
cmp edx, esi
je 0x409be4
jmp 0x409ba0
mov eax, dword [edx + 0x14]
mov edi, str.Type
add eax, 8
jmp 0x409bb0
mov cl, byte [eax]
cmp cl, byte [edi]
jne 0x409bd0
cmp cl, bl
je 0x409bcc
mov cl, byte [eax + 1]
cmp cl, byte [edi + 1]
jne 0x409bd0
add eax, 2
add edi, 2
cmp cl, bl
jne 0x409bb0
xor eax, eax
jmp 0x409bd5
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x409c78
mov edx, dword [edx + 0x20]
cmp edx, esi
jne 0x409ba0
xor edi, edi
mov eax, edi
mov dword [ebp - 0x3c], 0xf
mov dword [ebp - 0x40], ebx
mov byte [ebp - 0x50], bl
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x409bf8
sub eax, edx
push eax
push edi
lea ecx, [ebp - 0x50]
call fcn.004047d0
lea edx, [ebp - 0x2c]
push edx
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0xf
call fcn.00420a40
add esp, 4
mov edi, eax
lea eax, [ebp - 0x150]
mov esi, 0x10
cmp eax, edi
je 0x409ca5
cmp dword [ebp - 0x13c], esi
jb 0x409c46
mov ecx, dword [ebp - 0x150]
push ecx
call fcn.004ad85d
add esp, 4
mov dword [ebp - 0x13c], 0xf
mov dword [ebp - 0x140], ebx
mov byte [ebp - 0x150], bl
cmp dword [edi + 0x14], esi
jae 0x409c83
mov eax, dword [edi + 0x10]
inc eax
push eax
lea edx, [ebp - 0x150]
push edi
push edx
call fcn.005040e0
add esp, 0xc
jmp 0x409c8d
mov edi, dword [edx + 0x18]
add edi, 8
jmp 0x409be6
mov eax, dword [edi]
mov dword [ebp - 0x150], eax
mov dword [edi], ebx
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x140], ecx
mov edx, dword [edi + 0x14]
mov dword [ebp - 0x13c], edx
mov dword [edi + 0x10], ebx
mov dword [edi + 0x14], ebx
cmp dword [ebp - 0x18], esi
jb 0x409cb6
mov eax, dword [ebp - 0x2c]
push eax
call fcn.004ad85d
add esp, 4
mov byte [ebp - 4], 6
mov dword [ebp - 0x18], 0xf
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 0x2c], bl
cmp dword [ebp - 0x3c], esi
jb 0x409cd8
mov ecx, dword [ebp - 0x50]
push ecx
call fcn.004ad85d
add esp, 4
mov esi, dword [ebp - 0x474]
mov edx, dword [esi + 0x4c]
add esi, 0x2c
cmp edx, esi
je 0x409d34
jmp 0x409cf0
mov eax, dword [edx + 0x14]
mov edi, str.PathName
add eax, 8
jmp 0x409d00
mov cl, byte [eax]
cmp cl, byte [edi]
jne 0x409d20
cmp cl, bl
je 0x409d1c
mov cl, byte [eax + 1]
cmp cl, byte [edi + 1]
jne 0x409d20
add eax, 2
add edi, 2
cmp cl, bl
jne 0x409d00
xor eax, eax
jmp 0x409d25
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x409dc8
mov edx, dword [edx + 0x20]
cmp edx, esi
jne 0x409cf0
xor edi, edi
mov eax, edi
mov dword [ebp - 0x3c], 0xf
mov dword [ebp - 0x40], ebx
mov byte [ebp - 0x50], bl
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x409d48
sub eax, edx
push eax
push edi
lea ecx, [ebp - 0x50]
call fcn.004047d0
lea edx, [ebp - 0x2c]
push edx
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0x11
call fcn.00420a40
add esp, 4
mov edi, eax
lea eax, [ebp - 0x118]
mov esi, 0x10
cmp eax, edi
je 0x409df5
cmp dword [ebp - 0x104], esi
jb 0x409d96
mov ecx, dword [ebp - 0x118]
push ecx
call fcn.004ad85d
add esp, 4
mov dword [ebp - 0x104], 0xf
mov dword [ebp - 0x108], ebx
mov byte [ebp - 0x118], bl
cmp dword [edi + 0x14], esi
jae 0x409dd3
mov eax, dword [edi + 0x10]
inc eax
push eax
lea edx, [ebp - 0x118]
push edi
push edx
call fcn.005040e0
add esp, 0xc
jmp 0x409ddd
mov edi, dword [edx + 0x18]
add edi, 8
jmp 0x409d36
mov eax, dword [edi]
mov dword [ebp - 0x118], eax
mov dword [edi], ebx
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x108], ecx
mov edx, dword [edi + 0x14]
mov dword [ebp - 0x104], edx
mov dword [edi + 0x10], ebx
mov dword [edi + 0x14], ebx
cmp dword [ebp - 0x18], esi
jb 0x409e06
mov eax, dword [ebp - 0x2c]
push eax
call fcn.004ad85d
add esp, 4
mov byte [ebp - 4], 6
mov dword [ebp - 0x18], 0xf
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 0x2c], bl
cmp dword [ebp - 0x3c], esi
jb 0x409e28
mov ecx, dword [ebp - 0x50]
push ecx
call fcn.004ad85d
add esp, 4
mov edx, dword [ebp - 0x47c]
push edx
lea ecx, [ebp - 0x188]
call fcn.004104c0
mov eax, dword [ebp - 0x484]
inc eax
mov dword [ebp - 0x484], eax
cmp eax, dword [ebp - 0x478]
jb 0x4096f0
mov dword [ebp - 0x494], ebx
mov dword [ebp - 0x490], ebx
mov dword [ebp - 0x48c], ebx
lea eax, [ebp - 0x494]
push eax
sub esp, 0x1c
mov byte [ebp - 4], 0x13
mov ecx, esp
mov dword [ebp - 0x480], esp
push 0xd
mov esi, 0xf
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.StartPrograms
mov byte [ecx], bl
call fcn.004047d0
lea ecx, [ebp - 0xc0]
call fcn.0041fbd0
mov dword [ebp - 0x1ac], esi
mov dword [ebp - 0x1b0], ebx
mov byte [ebp - 0x1c0], bl
mov dword [ebp - 0x190], esi
mov dword [ebp - 0x194], ebx
mov byte [ebp - 0x1a4], bl
mov byte [ebp - 4], 0x14
mov ecx, dword [ebp - 0x490]
sub ecx, dword [ebp - 0x494]
mov eax, 0x66666667
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x40a122
mov ecx, dword [ebp - 0x494]
add ecx, 0x2c
mov dword [ebp - 0x474], ecx
mov dword [ebp - 0x478], eax
nop
mov edi, dword [ebp - 0x474]
mov edx, dword [edi + 0x20]
cmp edx, edi
je 0x409f54
lea ecx, [ecx]
mov eax, dword [edx + 0x14]
mov esi, str.Path
add eax, 8
jmp 0x409f20
mov cl, byte [eax]
cmp cl, byte [esi]
jne 0x409f40
cmp cl, bl
je 0x409f3c
mov cl, byte [eax + 1]
cmp cl, byte [esi + 1]
jne 0x409f40
add eax, 2
add esi, 2
cmp cl, bl
jne 0x409f20
xor eax, eax
jmp 0x409f45
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x409fe8
mov edx, dword [edx + 0x20]
cmp edx, edi
jne 0x409f10
xor esi, esi
mov eax, esi
mov dword [ebp - 0x3c], 0xf
mov dword [ebp - 0x40], ebx
mov byte [ebp - 0x50], bl
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x409f68
sub eax, edx
push eax
push esi
lea ecx, [ebp - 0x50]
call fcn.004047d0
lea edx, [ebp - 0x2c]
push edx
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0x15
call fcn.00420a40
add esp, 4
mov esi, eax
lea eax, [ebp - 0x1c0]
mov edi, 0x10
cmp eax, esi
je 0x40a015
cmp dword [ebp - 0x1ac], edi
jb 0x409fb6
mov ecx, dword [ebp - 0x1c0]
push ecx
call fcn.004ad85d
add esp, 4
mov dword [ebp - 0x1ac], 0xf
mov dword [ebp - 0x1b0], ebx
mov byte [ebp - 0x1c0], bl
cmp dword [esi + 0x14], edi
jae 0x409ff3
mov eax, dword [esi + 0x10]
inc eax
push eax
lea edx, [ebp - 0x1c0]
push esi
push edx
call fcn.005040e0
add esp, 0xc
jmp 0x409ffd
mov esi, dword [edx + 0x18]
add esi, 8
jmp 0x409f56
mov eax, dword [esi]
mov dword [ebp - 0x1c0], eax
mov dword [esi], ebx
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x1b0], ecx
mov edx, dword [esi + 0x14]
mov dword [ebp - 0x1ac], edx
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], ebx
cmp dword [ebp - 0x18], edi
jb 0x40a026
mov eax, dword [ebp - 0x2c]
push eax
call fcn.004ad85d
add esp, 4
mov byte [ebp - 4], 0x14
mov dword [ebp - 0x18], 0xf
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 0x2c], bl
cmp dword [ebp - 0x3c], edi
jb 0x40a048
mov ecx, dword [ebp - 0x50]
push ecx
call fcn.004ad85d
add esp, 4
mov edi, dword [ebp - 0x474]
mov esi, str.Cmds
call fcn.004156b0
cmp eax, ebx
je 0x40a064
mov esi, dword [eax + 0x18]
add esi, 8
jmp 0x40a066
xor esi, esi
mov edi, 0xf
mov eax, esi
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x40], ebx
mov byte [ebp - 0x50], bl
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40a080
sub eax, edx
push eax
push esi
lea ecx, [ebp - 0x50]
call fcn.004047d0
lea edx, [ebp - 0x2c]
push edx
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0x17
call fcn.00420a40
add esp, 4
push eax
lea ecx, [ebp - 0x1a4]
mov byte [ebp - 4], 0x18
call fcn.00404500
mov esi, 0x10
cmp dword [ebp - 0x18], esi
jb 0x40a0cc
mov eax, dword [ebp - 0x2c]
push eax
call fcn.004ad85d
add esp, 4
mov byte [ebp - 4], 0x14
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 0x2c], bl
cmp dword [ebp - 0x3c], esi
jb 0x40a0ea
mov ecx, dword [ebp - 0x50]
push ecx
call fcn.004ad85d
add esp, 4
mov esi, dword [ebp - 0x47c]
push 1
push esi
lea ecx, [ebp - 0x1c0]
call fcn.004107c0
lea eax, [ebp - 0x1c0]
lea edi, [esi + 0xc4]
call fcn.00404440
add dword [ebp - 0x474], 0x50
dec dword [ebp - 0x478]
jne 0x409f00
mov edx, dword [ebp - 0x47c]
cmp byte [edx + 0xd5], bl
je 0x40a45f
mov dword [ebp - 0x98], ebx
mov dword [ebp - 0x94], ebx
mov dword [ebp - 0x90], ebx
lea eax, [ebp - 0x98]
push eax
sub esp, 0x1c
mov byte [ebp - 4], 0x19
mov ecx, esp
mov dword [ebp - 0x480], esp
push 0x13
mov esi, 0xf
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.UpdateStopProcesses
mov byte [ecx], bl
call fcn.004047d0
lea ecx, [ebp - 0xc0]
call fcn.0041fbd0
mov dword [ebp - 0x224], esi
mov dword [ebp - 0x228], ebx
mov byte [ebp - 0x238], bl
mov dword [ebp - 0x208], esi
mov dword [ebp - 0x20c], ebx
mov byte [ebp - 0x21c], bl
mov dword [ebp - 0x1ec], esi
mov dword [ebp - 0x1f0], ebx
mov byte [ebp - 0x200], bl
mov byte [ebp - 4], 0x1a
mov ecx, dword [ebp - 0x94]
sub ecx, dword [ebp - 0x98]
mov eax, 0x66666667
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x478], ebx
mov dword [ebp - 0x484], eax
je 0x40a418
mov ecx, dword [ebp - 0x98]
add ecx, 0x2c
mov dword [ebp - 0x474], ecx
mov edi, dword [ebp - 0x474]
mov esi, str.Name
call fcn.004156b0
cmp eax, ebx
je 0x40a214
mov esi, dword [eax + 0x18]
add esi, 8
jmp 0x40a216
xor esi, esi
mov edi, 0xf
mov eax, esi
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x40], ebx
mov byte [ebp - 0x50], bl
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40a230
sub eax, edx
push eax
push esi
lea ecx, [ebp - 0x50]
call fcn.004047d0
lea edx, [ebp - 0x2c]
push edx
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0x1b
call fcn.00420a40
add esp, 4
push eax
lea ecx, [ebp - 0x238]
mov byte [ebp - 4], 0x1c
call fcn.00404500
mov esi, 0x10
cmp dword [ebp - 0x18], esi
jb 0x40a27c
mov eax, dword [ebp - 0x2c]
push eax
call fcn.004ad85d
add esp, 4
mov byte [ebp - 4], 0x1a
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 0x2c], bl
cmp dword [ebp - 0x3c], esi
jb 0x40a29a
mov ecx, dword [ebp - 0x50]
push ecx
call fcn.004ad85d
add esp, 4
mov edi, dword [ebp - 0x474]
mov esi, str.File
call fcn.004156b0
cmp eax, ebx
je 0x40a2b6
mov esi, dword [eax + 0x18]
add esi, 8
jmp 0x40a2b8
xor esi, esi
mov edi, 0xf
mov eax, esi
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x40], ebx
mov byte [ebp - 0x50], bl
lea edx, [eax + 1]
jmp 0x40a2d0
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40a2d0
sub eax, edx
push eax
push esi
lea ecx, [ebp - 0x50]
call fcn.004047d0
lea edx, [ebp - 0x2c]
push edx
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0x1d
call fcn.00420a40
add esp, 4
push eax
lea ecx, [ebp - 0x21c]
mov byte [ebp - 4], 0x1e
call fcn.00404500
mov esi, 0x10
cmp dword [ebp - 0x18], esi
jb 0x40a31c
mov eax, dword [ebp - 0x2c]
push eax
call fcn.004ad85d
add esp, 4
mov byte [ebp - 4], 0x1a
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 0x2c], bl
cmp dword [ebp - 0x3c], esi
jb 0x40a33a
mov ecx, dword [ebp - 0x50]
push ecx
call fcn.004ad85d
add esp, 4
mov edi, dword [ebp - 0x474]
mov esi, str.AutoCloseProcess
call fcn.004156b0
cmp eax, ebx
je 0x40a356
mov esi, dword [eax + 0x18]
add esi, 8
jmp 0x40a358
xor esi, esi
mov eax, esi
mov dword [ebp - 0x3c], 0xf
mov dword [ebp - 0x40], ebx
mov byte [ebp - 0x50], bl
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40a370
sub eax, edx
push eax
push esi
lea ecx, [ebp - 0x50]
call fcn.004047d0
lea edx, [ebp - 0x2c]
push edx
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0x1f
call fcn.00420a40
add esp, 4
push eax
lea ecx, [ebp - 0x200]
mov byte [ebp - 4], 0x20
call fcn.00404500
mov edi, 0x10
cmp dword [ebp - 0x18], edi
jb 0x40a3bc
mov eax, dword [ebp - 0x2c]
push eax
call fcn.004ad85d
add esp, 4
mov byte [ebp - 4], 0x1a
mov dword [ebp - 0x18], 0xf
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 0x2c], bl
cmp dword [ebp - 0x3c], edi
jb 0x40a3de
mov ecx, dword [ebp - 0x50]
push ecx
call fcn.004ad85d
add esp, 4
mov edx, dword [ebp - 0x47c]
push edx
lea ecx, [ebp - 0x238]
call fcn.0040fce0
cmp al, bl
je 0x40a560
mov eax, dword [ebp - 0x478]
add dword [ebp - 0x474], 0x50
inc eax
mov dword [ebp - 0x478], eax
cmp eax, dword [ebp - 0x484]
jb 0x40a1f8
lea esi, [ebp - 0x238]
call fcn.0040bda0
mov byte [ebp - 4], 0x14
mov esi, dword [ebp - 0x98]
cmp esi, ebx
je 0x40a45f
mov edi, dword [ebp - 0x94]
cmp esi, edi
je 0x40a456
jmp 0x40a440
mov edx, dword [esi]
mov eax, dword [edx]
push ebx
mov ecx, esi
call eax
add esi, 0x50
cmp esi, edi
jne 0x40a440
mov esi, dword [ebp - 0x98]
push esi
call fcn.004ad85d
add esp, 4
mov ecx, dword [ebp - 0x47c]
cmp byte [ecx + 0xd5], bl
je 0x40aa89
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ebx
lea edx, [ebp - 0x44]
push edx
sub esp, 0x1c
mov byte [ebp - 4], 0x21
mov ecx, esp
mov dword [ebp - 0x480], esp
push 0x14
mov esi, 0xf
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.UpdateStartProcesses
mov byte [ecx], bl
call fcn.004047d0
lea ecx, [ebp - 0xc0]
call fcn.0041fbd0
mov dword [ebp - 0x25c], esi
mov dword [ebp - 0x260], ebx
mov byte [ebp - 0x270], bl
mov dword [ebp - 0x240], esi
mov dword [ebp - 0x244], ebx
mov byte [ebp - 0x254], bl
mov dword [ebp - 0x224], esi
mov dword [ebp - 0x228], ebx
mov byte [ebp - 0x238], bl
mov dword [ebp - 0x208], esi
mov dword [ebp - 0x20c], ebx
mov byte [ebp - 0x21c], bl
mov dword [ebp - 0x1ec], esi
mov dword [ebp - 0x1f0], ebx
mov byte [ebp - 0x200], bl
mov byte [ebp - 4], 0x22
mov ecx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x44]
sub ecx, esi
mov eax, 0x66666667
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x40aa71
add esi, 0x2c
mov dword [ebp - 0x474], esi
mov dword [ebp - 0x478], eax
mov edi, dword [ebp - 0x474]
mov esi, 0x537488
call fcn.004156b0
cmp eax, ebx
je 0x40a703
mov esi, dword [eax + 0x18]
add esi, 8
jmp 0x40a705
lea esi, [ebp - 0x238]
call fcn.0040bda0
mov byte [ebp - 4], 0x14
cmp dword [ebp - 0x98], ebx
je 0x40a5ab
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
cmp esi, edi
je 0x40a597
mov eax, dword [esi]
mov edx, dword [eax]
push ebx
mov ecx, esi
call edx
add esi, 0x50
cmp esi, edi
jne 0x40a587
mov eax, dword [ebp - 0x98]
push eax
call fcn.004ad85d
add esp, 4
mov edi, 0x10
cmp dword [ebp - 0x190], edi
jb 0x40a5c2
mov ecx, dword [ebp - 0x1a4]
push ecx
call fcn.004ad85d
add esp, 4
mov esi, 0xf
mov dword [ebp - 0x190], esi
mov dword [ebp - 0x194], ebx
mov byte [ebp - 0x1a4], bl
cmp dword [ebp - 0x1ac], edi
jb 0x40a5f0
mov edx, dword [ebp - 0x1c0]
push edx
call fcn.004ad85d
add esp, 4
mov byte [ebp - 4], 6
mov dword [ebp - 0x1ac], esi
mov dword [ebp - 0x1b0], ebx
mov byte [ebp - 0x1c0], bl
cmp dword [ebp - 0x494], ebx
je 0x40a644
mov esi, dword [ebp - 0x494]
mov edi, dword [ebp - 0x490]
cmp esi, edi
je 0x40a630
mov edi, edi
mov eax, dword [esi]
mov edx, dword [eax]
push ebx
mov ecx, esi
call edx
add esi, 0x50
cmp esi, edi
jne 0x40a620
mov eax, dword [ebp - 0x494]
push eax
call fcn.004ad85d
add esp, 4
mov edi, 0x10
lea esi, [ebp - 0x188]
call fcn.0040eb30
mov byte [ebp - 4], 4
cmp dword [ebp - 0x4a4], ebx
je 0x40a694
mov esi, dword [ebp - 0x4a4]
mov edi, dword [ebp - 0x4a0]
cmp esi, edi
je 0x40a680
jmp 0x40a670
mov edx, dword [esi]
mov eax, dword [edx]
push ebx
mov ecx, esi
call eax
add esi, 0x50
cmp esi, edi
jne 0x40a670
mov ecx, dword [ebp - 0x4a4]
push ecx
call fcn.004ad85d
add esp, 4
mov edi, 0x10
cmp dword [ebp - 0xc8], edi
jb 0x40a6ab
mov edx, dword [ebp - 0xdc]
push edx
call fcn.004ad85d
add esp, 4
mov esi, 0xf
mov dword [ebp - 0xc8], esi
mov dword [ebp - 0xcc], ebx
mov byte [ebp - 0xdc], bl
cmp dword [ebp - 0xac], edi
jb 0x40a6d9
mov eax, dword [ebp - 0xc0]
push eax
call fcn.004ad85d
add esp, 4
mov dword [ebp - 0xac], esi
mov dword [ebp - 0xb0], ebx
mov byte [ebp - 0xc0], bl
cmp dword [ebp + 0x20], edi
jb 0x40a6fc
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.004ad85d
add esp, 4
xor al, al
jmp 0x40bc38
xor esi, esi
mov edi, 0xf
mov eax, esi
mov dword [ebp - 0x74], edi
mov dword [ebp - 0x78], ebx
mov byte [ebp - 0x88], bl
lea edx, [eax + 1]
jmp 0x40a720
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40a720
sub eax, edx
push eax
push esi
lea ecx, [ebp - 0x88]
call fcn.004047d0
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 0x23
call fcn.00420a40
add esp, 4
push eax
lea ecx, [ebp - 0x270]
mov byte [ebp - 4], 0x24
call fcn.00404500
mov esi, 0x10
cmp dword [ebp - 0x18], esi
jb 0x40a772
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.004ad85d
add esp, 4
mov byte [ebp - 4], 0x22
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 0x2c], bl
cmp dword [ebp - 0x74], esi
jb 0x40a793
mov edx, dword [ebp - 0x88]
push edx
call fcn.004ad85d
add esp, 4
mov edi, dword [ebp - 0x474]
mov esi, str.WorkDir
call fcn.004156b0
cmp eax, ebx
je 0x40a7af
mov esi, dword [eax + 0x18]
add esi, 8
jmp 0x40a7b1
xor esi, esi
mov edi, 0xf
mov eax, esi
mov dword [ebp - 0x74], edi
mov dword [ebp - 0x78], ebx
mov byte [ebp - 0x88], bl
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40a7c7
sub eax, edx
push eax
push esi
lea ecx, [ebp - 0x88]
call fcn.004047d0
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 0x25
call fcn.00420a40
add esp, 4
push eax
lea ecx, [ebp - 0x254]
mov byte [ebp - 4], 0x26
call fcn.00404500
mov esi, 0x10
cmp dword [ebp - 0x18], esi
jb 0x40a819
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.004ad85d
add esp, 4
mov byte [ebp - 4], 0x22
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 0x2c], bl
cmp dword [ebp - 0x74], esi
jb 0x40a83a
mov edx, dword [ebp - 0x88]
push edx
call fcn.004ad85d
add esp, 4
mov edi, dword [ebp - 0x474]
mov esi, str.Cmds
call fcn.004156b0
cmp eax, ebx
je 0x40a856
mov esi, dword [eax + 0x18]
add esi, 8
jmp 0x40a858
xor esi, esi
mov edi, 0xf
mov eax, esi
mov dword [ebp - 0x74], edi
mov dword [ebp - 0x78], ebx
mov byte [ebp - 0x88], bl
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40a870
sub eax, edx
push eax
push esi
lea ecx, [ebp - 0x88]
call fcn.004047d0
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 0x27
call fcn.00420a40
add esp, 4
push eax
lea ecx, [ebp - 0x238]
mov byte [ebp - 4], 0x28
call fcn.00404500
mov esi, 0x10
cmp dword [ebp - 0x18], esi
jb 0x40a8c2
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.004ad85d
add esp, 4
mov byte [ebp - 4], 0x22
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 0x2c], bl
cmp dword [ebp - 0x74], esi
jb 0x40a8e3
mov edx, dword [ebp - 0x88]
push edx
call fcn.004ad85d
add esp, 4
mov edi, dword [ebp - 0x474]
mov esi, str.Wait
call fcn.004156b0
cmp eax, ebx
je 0x40a8ff
mov esi, dword [eax + 0x18]
add esi, 8
jmp 0x40a901
xor esi, esi
mov edi, 0xf
mov eax, esi
mov dword [ebp - 0x74], edi
mov dword [ebp - 0x78], ebx
mov byte [ebp - 0x88], bl
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40a917
sub eax, edx
push eax
push esi
lea ecx, [ebp - 0x88]
call fcn.004047d0
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 0x29
call fcn.00420a40
add esp, 4
push eax
lea ecx, [ebp - 0x21c]
mov byte [ebp - 4], 0x2a
call fcn.00404500
mov esi, 0x10
cmp dword [ebp - 0x18], esi
jb 0x40a969
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.004ad85d
add esp, 4
mov byte [ebp - 4], 0x22
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 0x2c], bl
cmp dword [ebp - 0x74], esi
jb 0x40a98a
mov edx, dword [ebp - 0x88]
push edx
call fcn.004ad85d
add esp, 4
mov edi, dword [ebp - 0x474]
mov esi, str.UpEnvironmentVar
call fcn.004156b0
cmp eax, ebx
je 0x40a9a6
mov esi, dword [eax + 0x18]
add esi, 8
jmp 0x40a9a8
xor esi, esi
mov edi, 0xf
mov eax, esi
mov dword [ebp - 0x74], edi
mov dword [ebp - 0x78], ebx
mov byte [ebp - 0x88], bl
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40a9c0
sub eax, edx
push eax
push esi
lea ecx, [ebp - 0x88]
call fcn.004047d0
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 0x2b
call fcn.00420a40
add esp, 4
push eax
lea ecx, [ebp - 0x200]
mov byte [ebp - 4], 0x2c
call fcn.00404500
mov esi, 0x10
cmp dword [ebp - 0x18], esi
jb 0x40aa12
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.004ad85d
add esp, 4
mov byte [ebp - 4], 0x22
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 0x2c], bl
cmp dword [ebp - 0x74], esi
jb 0x40aa33
mov edx, dword [ebp - 0x88]
push edx
call fcn.004ad85d
add esp, 4
mov esi, dword [ebp - 0x47c]
push ebx
push esi
lea ecx, [ebp - 0x270]
call fcn.004107c0
push ebx
push esi
lea ecx, [ebp - 0x254]
call fcn.004107c0
lea ecx, [ebp - 0x270]
call fcn.0040f6e0
add dword [ebp - 0x474], 0x50
dec dword [ebp - 0x478]
jne 0x40a53d
lea esi, [ebp - 0x270]
call fcn.0040eb30
lea eax, [ebp - 0x44]
push eax
mov byte [ebp - 4], 0x14
call fcn.004044b0
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ebx
lea ecx, [ebp - 0x44]
push ecx
sub esp, 0x1c
mov byte [ebp - 4], 0x2d
mov ecx, esp
mov dword [ebp - 0x480], esp
push 8
mov esi, 0xf
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.Regedits
mov byte [ecx], bl
call fcn.004047d0
lea ecx, [ebp - 0xc0]
call fcn.0041fbd0
mov dword [ebp - 0x2ec], esi
mov dword [ebp - 0x2f0], ebx
mov byte [ebp - 0x300], bl
mov dword [ebp - 0x2d0], esi
mov dword [ebp - 0x2d4], ebx
mov byte [ebp - 0x2e4], bl
mov dword [ebp - 0x2b4], esi
mov dword [ebp - 0x2b8], ebx
mov byte [ebp - 0x2c8], bl
mov dword [ebp - 0x298], esi
mov dword [ebp - 0x29c], ebx
mov byte [ebp - 0x2ac], bl
mov dword [ebp - 0x27c], esi
mov dword [ebp - 0x280], ebx
mov byte [ebp - 0x290], bl
mov byte [ebp - 4], 0x2e
mov edi, dword [ebp - 0x44]
add edi, 0x2c
mov esi, str.hKey
call fcn.004156b0
cmp eax, ebx
je 0x40ab43
mov esi, dword [eax + 0x18]
add esi, 8
jmp 0x40ab45
xor esi, esi
mov eax, esi
mov dword [ebp - 0x74], 0xf
mov dword [ebp - 0x78], ebx
mov byte [ebp - 0x88], bl
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40ab60
sub eax, edx
push eax
push esi
lea ecx, [ebp - 0x88]
call fcn.004047d0
lea edx, [ebp - 0x2c]
push edx
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 0x2f
call fcn.00420a40
add esp, 4
push eax
lea ecx, [ebp - 0x300]
mov byte [ebp - 4], 0x30
call fcn.00404500
mov esi, 0x10
cmp dword [ebp - 0x18], esi
jb 0x40abb2
mov eax, dword [ebp - 0x2c]
push eax
call fcn.004ad85d
add esp, 4
mov byte [ebp - 4], 0x2e
mov dword [ebp - 0x18], 0xf
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 0x2c], bl
cmp dword [ebp - 0x74], esi
jb 0x40abd7
mov ecx, dword [ebp - 0x88]
push ecx
call fcn.004ad85d
add esp, 4
mov edx, dword [ebp - 0x47c]
cmp byte [edx + 0xd6], bl
je 0x40ac45
mov esi, str.SubKey64
call fcn.004156b0
cmp eax, ebx
je 0x40abfb
mov esi, dword [eax + 0x18]
add esi, 8
jmp 0x40abfd
xor esi, esi
mov edi, 0xf
mov eax, esi
mov dword [ebp - 0x74], edi
mov dword [ebp - 0x78], ebx
mov byte [ebp - 0x88], bl
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40ac13
sub eax, edx
push eax
push esi
lea ecx, [ebp - 0x88]
call fcn.004047d0
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 0x31
call fcn.00420a40
add esp, 4
mov byte [ebp - 4], 0x32
jmp 0x40aca3
mov esi, str.SubKey32
call fcn.004156b0
cmp eax, ebx
je 0x40ac5b
mov esi, dword [eax + 0x18]
add esi, 8
jmp 0x40ac5d
xor esi, esi
mov edi, 0xf
mov eax, esi
mov dword [ebp - 0x74], edi
mov dword [ebp - 0x78], ebx
mov byte [ebp - 0x88], bl
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40ac73
sub eax, edx
push eax
push esi
lea ecx, [ebp - 0x88]
call fcn.004047d0
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 0x33
call fcn.00420a40
add esp, 4
mov byte [ebp - 4], 0x34
push eax
lea ecx, [ebp - 0x2e4]
call fcn.00404500
mov esi, 0x10
cmp dword [ebp - 0x18], esi
jb 0x40acc5
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.004ad85d
add esp, 4
mov byte [ebp - 4], 0x2e
mov byte [ebp - 0x2c], bl
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], edi
cmp dword [ebp - 0x74], esi
jb 0x40ace6
mov edx, dword [ebp - 0x88]
push edx
call fcn.004ad85d
add esp, 4
mov esi, dword [ebp - 0x47c]
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0x300]
push eax
lea ecx, [esi + 0x80]
call fcn.00404580
push 0xffffffffffffffff
push ebx
lea ecx, [ebp - 0x2e4]
push ecx
lea ecx, [esi + 0x9c]
call fcn.00404580
push ebx
lea edx, [ebp - 0x300]
push edx
call fcn.004100d0
xor esi, esi
mov dword [ebp - 0x7c], ebx
mov dword [ebp - 0x78], esi
mov dword [ebp - 0x74], ebx
mov edi, str._ZXml::GetAllL3LayerNode_Start
mov byte [ebp - 4], 0x35
call fcn.00408b90
mov eax, dword [ebp - 0x44]
cmp eax, ebx
je 0x40ad4e
lea ecx, [ebp - 0x7c]
call fcn.0041fd40
mov esi, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x7c]
sub esi, ecx
mov eax, 0x66666667
imul esi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x40afbe
add ecx, 0x2c
mov dword [ebp - 0x474], ecx
mov dword [ebp - 0x478], eax
mov edi, dword [ebp - 0x474]
mov esi, str.Name
call fcn.004156b0
cmp eax, ebx
je 0x40ad95
mov esi, dword [eax + 0x18]
add esi, 8
jmp 0x40ad97
xor esi, esi
mov edi, 0xf
mov eax, esi
mov dword [ebp - 0x90], edi
mov dword [ebp - 0x94], ebx
mov byte [ebp - 0xa4], bl
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40adb3
sub eax, edx
push eax
push esi
lea ecx, [ebp - 0xa4]
call fcn.004047d0
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], 0x36
call fcn.00420a40
add esp, 4
push eax
lea ecx, [ebp - 0x2c8]
mov byte [ebp - 4], 0x37
call fcn.00404500
mov esi, 0x10
cmp dword [ebp - 0x18], esi
jb 0x40ae05
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.004ad85d
add esp, 4
mov byte [ebp - 4], 0x35
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 0x2c], bl
cmp dword [ebp - 0x90], esi
jb 0x40ae29
mov edx, dword [ebp - 0xa4]
push edx
call fcn.004ad85d
add esp, 4
mov edi, dword [ebp - 0x474]
mov esi, str.Type
call fcn.004156b0
cmp eax, ebx
je 0x40ae45
mov esi, dword [eax + 0x18]
add esi, 8
jmp 0x40ae47
xor esi, esi
mov edi, 0xf
mov eax, esi
mov dword [ebp - 0x90], edi
mov dword [ebp - 0x94], ebx
mov byte [ebp - 0xa4], bl
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40ae63
sub eax, edx
push eax
push esi
lea ecx, [ebp - 0xa4]
call fcn.004047d0
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], 0x38
call fcn.00420a40
add esp, 4
push eax
lea ecx, [ebp - 0x2ac]
mov byte [ebp - 4], 0x39
call fcn.00404500
mov esi, 0x10
cmp dword [ebp - 0x18], esi
jb 0x40aeb5
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.004ad85d
add esp, 4
mov byte [ebp - 4], 0x35
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 0x2c], bl
cmp dword [ebp - 0x90], esi
jb 0x40aed9
mov edx, dword [ebp - 0xa4]
push edx
call fcn.004ad85d
add esp, 4
mov edi, dword [ebp - 0x474]
mov esi, str.Value
call fcn.004156b0
cmp eax, ebx
je 0x40aef5
mov esi, dword [eax + 0x18]
add esi, 8
jmp 0x40aef7
xor esi, esi
mov edi, 0xf
mov eax, esi
mov dword [ebp - 0x90], edi
mov dword [ebp - 0x94], ebx
mov byte [ebp - 0xa4], bl
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40af13
sub eax, edx
push eax
push esi
lea ecx, [ebp - 0xa4]
call fcn.004047d0
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], 0x3a
call fcn.00420a40
add esp, 4
push eax
lea ecx, [ebp - 0x290]
mov byte [ebp - 4], 0x3b
call fcn.00404500
mov esi, 0x10
cmp dword [ebp - 0x18], esi
jb 0x40af65
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.004ad85d
add esp, 4
mov byte [ebp - 4], 0x35
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 0x2c], bl
cmp dword [ebp - 0x90], esi
jb 0x40af89
mov edx, dword [ebp - 0xa4]
push edx
call fcn.004ad85d
add esp, 4
mov eax, dword [ebp - 0x47c]
push 1
push eax
lea ecx, [ebp - 0x290]
call fcn.004107c0
push 1
lea ecx, [ebp - 0x300]
push ecx
call fcn.004100d0
add dword [ebp - 0x474], 0x50
dec dword [ebp - 0x478]
jne 0x40ad79
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x480], esp
push 4
mov esi, 0xf
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.Path
mov byte [ecx], bl
call fcn.004047d0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x478], esp
mov byte [ebp - 4], 0x3c
push 0xe
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.UninstallIndex
mov byte [ecx], bl
call fcn.004047d0
lea edx, [ebp - 0x1dc]
push edx
lea eax, [ebp - 0xc0]
push eax
mov byte [ebp - 4], 0x35
call fcn.0041f940
mov ecx, dword [ebp - 0x47c]
push ebx
push ecx
lea ecx, [ebp - 0x1dc]
mov byte [ebp - 4], 0x3d
call fcn.004107c0
lea edi, [ebp - 0x1dc]
call fcn.004194f0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x480], esp
push 0xffffffffffffffff
push ebx
mov edx, edi
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push edx
mov byte [ecx], bl
call fcn.00404580
mov ecx, dword [ebp - 0x47c]
call fcn.00410960
lea eax, [ebp - 0x470]
call fcn.0040be00
sub esp, 0x1c
mov byte [ebp - 4], 0x3e
mov ecx, esp
mov dword [ebp - 0x480], esp
push 7
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.AppName
mov byte [ecx], bl
call fcn.004047d0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x478], esp
mov byte [ebp - 4], 0x3f
push 5
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.Setup
mov byte [ecx], bl
call fcn.004047d0
lea eax, [ebp - 0xc0]
push eax
lea esi, [ebp - 0x6c]
mov byte [ebp - 4], 0x3e
call fcn.0041f700
mov byte [ebp - 4], 0x40
push eax
lea ecx, [ebp - 0x470]
call fcn.00404500
mov byte [ebp - 4], 0x3e
cmp dword [ebp - 0x58], 0x10
jb 0x40b0f1
mov ecx, dword [ebp - 0x6c]
push ecx
call fcn.004ad85d
add esp, 4
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x480], esp
push 0xa
mov edi, 0xf
mov dword [ecx + 0x14], edi
mov dword [ecx + 0x10], ebx
push str.AppVerName
mov byte [ecx], bl
call fcn.004047d0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x478], esp
mov byte [ebp - 4], 0x41
push 5
mov dword [ecx + 0x14], edi
mov dword [ecx + 0x10], ebx
push str.Setup
mov byte [ecx], bl
call fcn.004047d0
lea edx, [ebp - 0xc0]
push edx
lea esi, [ebp - 0x6c]
mov byte [ebp - 4], 0x3e
call fcn.0041f700
push eax
lea ecx, [ebp - 0x454]
mov byte [ebp - 4], 0x42
call fcn.00404500
mov byte [ebp - 4], 0x3e
cmp dword [ebp - 0x58], 0x10
jb 0x40b171
mov eax, dword [ebp - 0x6c]
push eax
call fcn.004ad85d
add esp, 4
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x480], esp
push 6
mov dword [ecx + 0x14], edi
mov dword [ecx + 0x10], ebx
push str.AppVer
mov byte [ecx], bl
call fcn.004047d0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x478], esp
mov byte [ebp - 4], 0x43
push 5
mov dword [ecx + 0x14], edi
mov dword [ecx + 0x10], ebx
push str.Setup
mov byte [ecx], bl
call fcn.004047d0
lea ecx, [ebp - 0xc0]
push ecx
lea esi, [ebp - 0x6c]
mov byte [ebp - 4], 0x3e
call fcn.0041f700
push eax
lea ecx, [ebp - 0x438]
mov byte [ebp - 4], 0x44
call fcn.00404500
mov byte [ebp - 4], 0x3e
cmp dword [ebp - 0x58], 0x10
jb 0x40b1ec
mov edx, dword [ebp - 0x6c]
push edx
call fcn.004ad85d
add esp, 4
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x480], esp
push 0xe
mov dword [ecx + 0x14], edi
mov dword [ecx + 0x10], ebx
push str.DefaultDirName
mov byte [ecx], bl
call fcn.004047d0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x478], esp
mov byte [ebp - 4], 0x45
push 5
mov dword [ecx + 0x14], edi
mov dword [ecx + 0x10], ebx
push str.Setup
mov byte [ecx], bl
call fcn.004047d0
lea eax, [ebp - 0xc0]
push eax
lea esi, [ebp - 0x6c]
mov byte [ebp - 4], 0x3e
call fcn.0041f700
push eax
lea ecx, [ebp - 0x41c]
mov byte [ebp - 4], 0x46
call fcn.00404500
mov byte [ebp - 4], 0x3e
cmp dword [ebp - 0x58], 0x10
jb 0x40b267
mov ecx, dword [ebp - 0x6c]
push ecx
call fcn.004ad85d
add esp, 4
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x480], esp
push 0x10
mov dword [ecx + 0x14], edi
mov dword [ecx + 0x10], ebx
push str.DefaultGroupName
mov byte [ecx], bl
call fcn.004047d0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x478], esp
mov byte [ebp - 4], 0x47
push 5
mov dword [ecx + 0x14], edi
mov dword [ecx + 0x10], ebx
push str.Setup
mov byte [ecx], bl
call fcn.004047d0
lea edx, [ebp - 0xc0]
push edx
lea esi, [ebp - 0x6c]
mov byte [ebp - 4], 0x3e
call fcn.0041f700
push eax
lea ecx, [ebp - 0x400]
mov byte [ebp - 4], 0x48
call fcn.00404500
mov byte [ebp - 4], 0x3e
cmp dword [ebp - 0x58], 0x10
jb 0x40b2e2
mov eax, dword [ebp - 0x6c]
push eax
call fcn.004ad85d
add esp, 4
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x480], esp
push 0xc
mov dword [ecx + 0x14], edi
mov dword [ecx + 0x10], ebx
push str.AppPublisher
mov byte [ecx], bl
call fcn.004047d0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x478], esp
mov byte [ebp - 4], 0x49
push 5
mov dword [ecx + 0x14], edi
mov dword [ecx + 0x10], ebx
push str.Setup
mov byte [ecx], bl
call fcn.004047d0
lea ecx, [ebp - 0xc0]
push ecx
lea esi, [ebp - 0x6c]
mov byte [ebp - 4], 0x3e
call fcn.0041f700
push eax
lea ecx, [ebp - 0x3e4]
mov byte [ebp - 4], 0x4a
call fcn.00404500
mov byte [ebp - 4], 0x3e
cmp dword [ebp - 0x58], 0x10
jb 0x40b35d
mov edx, dword [ebp - 0x6c]
push edx
call fcn.004ad85d
add esp, 4
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x480], esp
push edi
mov dword [ecx + 0x14], edi
mov dword [ecx + 0x10], ebx
push str.AppPublisherURL
mov byte [ecx], bl
call fcn.004047d0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x478], esp
mov byte [ebp - 4], 0x4b
push 5
mov dword [ecx + 0x14], edi
mov dword [ecx + 0x10], ebx
push str.Setup
mov byte [ecx], bl
call fcn.004047d0
lea eax, [ebp - 0xc0]
push eax
lea esi, [ebp - 0x6c]
mov byte [ebp - 4], 0x3e
call fcn.0041f700
push eax
lea ecx, [ebp - 0x3c8]
mov byte [ebp - 4], 0x4c
call fcn.00404500
cmp dword [ebp - 0x58], 0x10
jb 0x40b3d3
mov ecx, dword [ebp - 0x6c]
push ecx
call fcn.004ad85d
add esp, 4
mov dword [ebp - 0x98], ebx
mov dword [ebp - 0x94], ebx
mov dword [ebp - 0x90], ebx
lea eax, [ebp - 0x3a8]
call fcn.0040be60
lea edx, [ebp - 0x98]
push edx
sub esp, 0x1c
mov byte [ebp - 4], 0x4e
mov ecx, esp
mov dword [ebp - 0x480], esp
push 7
mov dword [ecx + 0x14], edi
mov dword [ecx + 0x10], ebx
push str.Modules
mov byte [ecx], bl
call fcn.004047d0
lea ecx, [ebp - 0xc0]
call fcn.0041fbd0
mov dword [ebp - 0xe4], edi
mov dword [ebp - 0xe8], ebx
mov byte [ebp - 0xf8], bl
mov byte [ebp - 4], 0x4f
mov ecx, dword [ebp - 0x94]
sub ecx, dword [ebp - 0x98]
mov eax, 0x66666667
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x478], eax
je 0x40b56e
mov eax, dword [ebp - 0x98]
mov ecx, dword [ebp - 0x478]
add eax, 0x2c
mov dword [ebp - 0x484], eax
mov dword [ebp - 0x474], ecx
mov edi, dword [ebp - 0x484]
mov esi, str.Filenum
call fcn.004156b0
cmp eax, ebx
je 0x40b49b
mov esi, dword [eax + 0x18]
add esi, 8
jmp 0x40b49d
xor esi, esi
mov edi, 0xf
mov eax, esi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 0x2c], bl
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40b4b0
sub eax, edx
push eax
push esi
lea ecx, [ebp - 0x2c]
call fcn.004047d0
lea edx, [ebp - 0x6c]
push edx
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x50
call fcn.00420a40
add esp, 4
push eax
lea ecx, [ebp - 0xf8]
mov byte [ebp - 4], 0x51
call fcn.00404500
mov esi, 0x10
cmp dword [ebp - 0x58], esi
jb 0x40b4fc
mov eax, dword [ebp - 0x6c]
push eax
call fcn.004ad85d
add esp, 4
mov byte [ebp - 4], 0x4f
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x5c], ebx
mov byte [ebp - 0x6c], bl
cmp dword [ebp - 0x18], esi
jb 0x40b51a
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.004ad85d
add esp, 4
mov eax, dword [ebp - 0xf8]
cmp dword [ebp - 0xe4], esi
jae 0x40b52e
lea eax, [ebp - 0xf8]
push eax
call fcn.00505760
add dword [ebp - 0x484], 0x50
mov dword [ebp - 0x480], eax
fild dword [ebp - 0x480]
mov eax, dword [ebp - 0x47c]
add esp, 4
dec dword [ebp - 0x474]
fadd dword [eax + 0xb8]
fadd qword [0x546420]
fstp dword [eax + 0xb8]
jne 0x40b47f
mov dword [ebp - 0x484], ebx
cmp dword [ebp - 0x478], ebx
jbe 0x40baa9
mov edx, dword [ebp - 0x98]
add edx, 0x2c
mov dword [ebp - 0x474], edx
mov edi, dword [ebp - 0x474]
mov esi, str.Name
call fcn.004156b0
cmp eax, ebx
je 0x40b5ab
mov esi, dword [eax + 0x18]
add esi, 8
jmp 0x40b5ad
xor esi, esi
mov edi, 0xf
mov eax, esi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 0x2c], bl
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40b5c0
sub eax, edx
push eax
push esi
lea ecx, [ebp - 0x2c]
call fcn.004047d0
lea eax, [ebp - 0x6c]
push eax
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x52
call fcn.00420a40
add esp, 4
push eax
lea ecx, [ebp - 0x3a8]
mov byte [ebp - 4], 0x53
call fcn.00404500
mov esi, 0x10
cmp dword [ebp - 0x58], esi
jb 0x40b60c
mov ecx, dword [ebp - 0x6c]
push ecx
call fcn.004ad85d
add esp, 4
mov byte [ebp - 4], 0x4f
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x5c], ebx
mov byte [ebp - 0x6c], bl
cmp dword [ebp - 0x18], esi
jb 0x40b62a
mov edx, dword [ebp - 0x2c]
push edx
call fcn.004ad85d
add esp, 4
mov edi, dword [ebp - 0x474]
mov esi, str.Path
call fcn.004156b0
cmp eax, ebx
je 0x40b646
mov esi, dword [eax + 0x18]
add esi, 8
jmp 0x40b648
xor esi, esi
mov eax, esi
mov dword [ebp - 0x18], 0xf
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 0x2c], bl
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40b660
sub eax, edx
push eax
push esi
lea ecx, [ebp - 0x2c]
call fcn.004047d0
lea eax, [ebp - 0x6c]
push eax
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x54
call fcn.00420a40
add esp, 4
push eax
lea ecx, [ebp - 0x38c]
mov byte [ebp - 4], 0x55
call fcn.00404500
mov edi, 0x10
cmp dword [ebp - 0x58], edi
jb 0x40b6ac
mov ecx, dword [ebp - 0x6c]
push ecx
call fcn.004ad85d
add esp, 4
mov byte [ebp - 4], 0x4f
mov dword [ebp - 0x58], 0xf
mov dword [ebp - 0x5c], ebx
mov byte [ebp - 0x6c], bl
cmp dword [ebp - 0x18], edi
jb 0x40b6ce
mov edx, dword [ebp - 0x2c]
push edx
call fcn.004ad85d
add esp, 4
push 1
push 0x537530
lea eax, [ebp - 0x38c]
call fcn.00404670
mov ecx, dword [ebp - 0x37c]
push ecx
mov ecx, eax
lea esi, [ebp - 0x6c]
lea edx, [ebp - 0x38c]
call fcn.004043c0
push eax
lea ecx, [ebp - 0x38c]
mov byte [ebp - 4], 0x56
call fcn.00404500
mov byte [ebp - 4], 0x4f
cmp dword [ebp - 0x58], edi
jb 0x40b71c
mov edx, dword [ebp - 0x6c]
push edx
call fcn.004ad85d
add esp, 4
mov ecx, dword [ebp - 0x47c]
lea eax, [ebp - 0x38c]
push eax
push ecx
lea edx, [ebp - 0x6c]
push edx
call fcn.004121e0
add esp, 0xc
push eax
lea ecx, [ebp - 0x38c]
mov byte [ebp - 4], 0x57
call fcn.00404500
mov byte [ebp - 4], 0x4f
cmp dword [ebp - 0x58], edi
jb 0x40b75b
mov eax, dword [ebp - 0x6c]
push eax
call fcn.004ad85d
add esp, 4
mov edi, dword [ebp - 0x474]
mov esi, 0x537534
call fcn.004156b0
cmp eax, ebx
je 0x40b777
mov esi, dword [eax + 0x18]
add esi, 8
jmp 0x40b779
xor esi, esi
mov eax, esi
mov dword [ebp - 0x18], 0xf
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 0x2c], bl
lea edx, [eax + 1]
jmp 0x40b790
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40b790
sub eax, edx
push eax
push esi
lea ecx, [ebp - 0x2c]
call fcn.004047d0
lea ecx, [ebp - 0x6c]
push ecx
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x58
call fcn.00420a40
add esp, 4
push eax
lea ecx, [ebp - 0x370]
mov byte [ebp - 4], 0x59
call fcn.00404500
mov edi, 0x10
cmp dword [ebp - 0x58], edi
jb 0x40b7dc
mov edx, dword [ebp - 0x6c]
push edx
call fcn.004ad85d
add esp, 4
mov byte [ebp - 4], 0x4f
mov dword [ebp - 0x58], 0xf
mov dword [ebp - 0x5c], ebx
mov byte [ebp - 0x6c], bl
cmp dword [ebp - 0x18], edi
jb 0x40b7fe
mov eax, dword [ebp - 0x2c]
push eax
call fcn.004ad85d
add esp, 4
push 1
push 0x537530
lea eax, [ebp - 0x370]
call fcn.00404670
mov ecx, dword [ebp - 0x360]
push ecx
mov ecx, eax
lea esi, [ebp - 0x6c]
lea edx, [ebp - 0x370]
call fcn.004043c0
push eax
lea ecx, [ebp - 0x370]
mov byte [ebp - 4], 0x5a
call fcn.00404500
mov byte [ebp - 4], 0x4f
cmp dword [ebp - 0x58], edi
jb 0x40b84c
mov edx, dword [ebp - 0x6c]
push edx
call fcn.004ad85d
add esp, 4
mov ecx, dword [ebp - 0x47c]
lea eax, [ebp - 0x370]
push eax
push ecx
lea edx, [ebp - 0x6c]
push edx
call fcn.004121e0
add esp, 0xc
push eax
lea ecx, [ebp - 0x370]
mov byte [ebp - 4], 0x5b
call fcn.00404500
mov byte [ebp - 4], 0x4f
cmp dword [ebp - 0x58], edi
jb 0x40b88b
mov eax, dword [ebp - 0x6c]
push eax
call fcn.004ad85d
add esp, 4
mov edi, dword [ebp - 0x474]
mov esi, str.Must
call fcn.004156b0
cmp eax, ebx
je 0x40b8a7
mov esi, dword [eax + 0x18]
add esi, 8
jmp 0x40b8a9
xor esi, esi
mov edi, 0xf
mov eax, esi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 0x2c], bl
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40b8c0
sub eax, edx
push eax
push esi
lea ecx, [ebp - 0x2c]
call fcn.004047d0
lea ecx, [ebp - 0x6c]
push ecx
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x5c
call fcn.00420a40
add esp, 4
push eax
lea ecx, [ebp - 0x354]
mov byte [ebp - 4], 0x5d
call fcn.00404500
mov esi, 0x10
cmp dword [ebp - 0x58], esi
jb 0x40b90c
mov edx, dword [ebp - 0x6c]
push edx
call fcn.004ad85d
add esp, 4
mov byte [ebp - 4], 0x4f
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x5c], ebx
mov byte [ebp - 0x6c], bl
cmp dword [ebp - 0x18], esi
jb 0x40b92a
mov eax, dword [ebp - 0x2c]
push eax
call fcn.004ad85d
add esp, 4
mov edi, dword [ebp - 0x474]
mov esi, 0x537540
call fcn.004156b0
cmp eax, ebx
je 0x40b946
mov esi, dword [eax + 0x18]
add esi, 8
jmp 0x40b948
xor esi, esi
mov edi, 0xf
mov eax, esi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 0x2c], bl
lea edx, [eax + 1]
jmp 0x40b960
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40b960
sub eax, edx
push eax
push esi
lea ecx, [ebp - 0x2c]
call fcn.004047d0
lea ecx, [ebp - 0x6c]
push ecx
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x5e
call fcn.00420a40
add esp, 4
push eax
lea ecx, [ebp - 0x338]
mov byte [ebp - 4], 0x5f
call fcn.00404500
mov esi, 0x10
cmp dword [ebp - 0x58], esi
jb 0x40b9ac
mov edx, dword [ebp - 0x6c]
push edx
call fcn.004ad85d
add esp, 4
mov byte [ebp - 4], 0x4f
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x5c], ebx
mov byte [ebp - 0x6c], bl
cmp dword [ebp - 0x18], esi
jb 0x40b9ca
mov eax, dword [ebp - 0x2c]
push eax
call fcn.004ad85d
add esp, 4
mov edi, dword [ebp - 0x474]
mov esi, str.SupportOS
call fcn.004156b0
cmp eax, ebx
je 0x40b9e6
mov esi, dword [eax + 0x18]
add esi, 8
jmp 0x40b9e8
xor esi, esi
mov eax, esi
mov dword [ebp - 0x18], 0xf
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 0x2c], bl
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40ba00
sub eax, edx
push eax
push esi
lea ecx, [ebp - 0x2c]
call fcn.004047d0
lea ecx, [ebp - 0x6c]
push ecx
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x60
call fcn.00420a40
add esp, 4
push eax
lea ecx, [ebp - 0x31c]
mov byte [ebp - 4], 0x61
call fcn.00404500
mov edi, 0x10
cmp dword [ebp - 0x58], edi
jb 0x40ba4c
mov edx, dword [ebp - 0x6c]
push edx
call fcn.004ad85d
add esp, 4
mov esi, 0xf
mov byte [ebp - 4], 0x4f
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x5c], ebx
mov byte [ebp - 0x6c], bl
cmp dword [ebp - 0x18], edi
jb 0x40ba6f
mov eax, dword [ebp - 0x2c]
push eax
call fcn.004ad85d
add esp, 4
mov ecx, dword [ebp - 0x47c]
push ecx
lea ecx, [ebp - 0x3a8]
call fcn.0040bf80
cmp al, bl
je 0x40bc56
mov eax, dword [ebp - 0x484]
add dword [ebp - 0x474], 0x50
inc eax
mov dword [ebp - 0x484], eax
cmp eax, dword [ebp - 0x478]
jb 0x40b58f
mov eax, dword [ebp - 0x47c]
cmp byte [eax + 0xd4], bl
jne 0x40bae3
mov ecx, dword [0x58f468]
mov edx, dword [ecx]
mov eax, dword [edx + 0x13c]
push 0x537550
push 0x536c84
call eax
mov ecx, dword [0x58f46c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x2c]
push 0x537558
call eax
mov edi, str._Xml2Install::ReadInstallerCfg_end
call fcn.00408b90
cmp dword [ebp - 0xe4], 0x10
jb 0x40bb05
mov ecx, dword [ebp - 0xf8]
push ecx
call fcn.004ad85d
add esp, 4
lea esi, [ebp - 0x3a8]
mov dword [ebp - 0xe4], 0xf
mov dword [ebp - 0xe8], ebx
mov byte [ebp - 0xf8], bl
call fcn.0040beb0
lea edx, [ebp - 0x98]
push edx
mov byte [ebp - 4], 0x3e
call fcn.004044b0
lea esi, [ebp - 0x470]
call fcn.00412590
mov edi, 0x10
cmp dword [ebp - 0x1c8], edi
jb 0x40bb5d
mov eax, dword [ebp - 0x1dc]
push eax
call fcn.004ad85d
add esp, 4
lea ecx, [ebp - 0x7c]
push ecx
mov dword [ebp - 0x1c8], 0xf
mov dword [ebp - 0x1cc], ebx
mov byte [ebp - 0x1dc], bl
mov byte [ebp - 4], 0x2e
call fcn.004044b0
lea esi, [ebp - 0x300]
call fcn.0040eb30
lea edx, [ebp - 0x44]
push edx
mov byte [ebp - 4], 0x14
call fcn.004044b0
lea esi, [ebp - 0x1c0]
call fcn.00403bf0
lea eax, [ebp - 0x494]
push eax
mov byte [ebp - 4], 6
call fcn.004044b0
lea esi, [ebp - 0x188]
call fcn.0040eb30
lea ecx, [ebp - 0x4a4]
push ecx
mov byte [ebp - 4], 4
call fcn.004044b0
cmp dword [ebp - 0xc8], edi
jb 0x40bbe5
mov edx, dword [ebp - 0xdc]
push edx
call fcn.004ad85d
add esp, 4
mov esi, 0xf
mov dword [ebp - 0xc8], esi
mov dword [ebp - 0xcc], ebx
mov byte [ebp - 0xdc], bl
cmp dword [ebp - 0xac], edi
jb 0x40bc13
mov eax, dword [ebp - 0xc0]
push eax
call fcn.004ad85d
add esp, 4
mov dword [ebp - 0xac], esi
mov dword [ebp - 0xb0], ebx
mov byte [ebp - 0xc0], bl
cmp dword [ebp + 0x20], edi
jb 0x40bc36
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.004ad85d
add esp, 4
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00503edf
mov esp, ebp
pop ebp
ret 0x20
cmp dword [ebp - 0xe4], edi
jb 0x40bc6d
mov edx, dword [ebp - 0xf8]
push edx
call fcn.004ad85d
add esp, 4
mov dword [ebp - 0xe4], esi
lea esi, [ebp - 0x3a8]
mov dword [ebp - 0xe8], ebx
mov byte [ebp - 0xf8], bl
call fcn.0040beb0
lea eax, [ebp - 0x98]
push eax
mov byte [ebp - 4], 0x3e
call fcn.004044b0
lea esi, [ebp - 0x470]
call fcn.00412590
cmp dword [ebp - 0x1c8], edi
jb 0x40bcbc
mov ecx, dword [ebp - 0x1dc]
push ecx
call fcn.004ad85d
add esp, 4
lea edx, [ebp - 0x7c]
push edx
mov dword [ebp - 0x1c8], 0xf
mov dword [ebp - 0x1cc], ebx
mov byte [ebp - 0x1dc], bl
mov byte [ebp - 4], 0x2e
call fcn.004044b0
lea esi, [ebp - 0x300]
call fcn.0040eb30
lea eax, [ebp - 0x44]
push eax
mov byte [ebp - 4], 0x14
call fcn.004044b0
lea esi, [ebp - 0x1c0]
call fcn.00403bf0
lea ecx, [ebp - 0x494]
push ecx
mov byte [ebp - 4], 6
call fcn.004044b0
lea esi, [ebp - 0x188]
call fcn.0040eb30
lea edx, [ebp - 0x4a4]
push edx
mov byte [ebp - 4], 4
call fcn.004044b0
cmp dword [ebp - 0xc8], edi
jb 0x40bd44
mov eax, dword [ebp - 0xdc]
push eax
call fcn.004ad85d
add esp, 4
mov esi, 0xf
mov dword [ebp - 0xc8], esi
mov dword [ebp - 0xcc], ebx
mov byte [ebp - 0xdc], bl
cmp dword [ebp - 0xac], edi
jb 0x40bd72
mov ecx, dword [ebp - 0xc0]
push ecx
call fcn.004ad85d
add esp, 4
mov dword [ebp - 0xac], esi
mov dword [ebp - 0xb0], ebx
mov byte [ebp - 0xc0], bl
cmp dword [ebp + 0x20], edi
jb 0x40a6fc
mov edx, dword [ebp + 0xc]
push edx
call fcn.004ad85d
add esp, 4
xor al, al
jmp 0x40bc38