Function at 0x401e70
Capabilities:
Accept command line arguments
Create service
Create thread
Delete service
Get common file path
Get process heap flags
Query or enumerate registry value
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x2fc
mov dword [ebp - 0x264], 0
mov dword [ebp - 0x260], 0
mov dword [ebp - 0x258], 0
call sub.kernel32.dll_GetCommandLineW
lea ecx, [ebp - 0x258]
lea edx, [ebp - 0x25c]
call fcn.00401200
cmp dword [ebp - 0x25c], 1
jle 0x403809
mov ecx, dword [ebp - 0x258]
mov ebx, dword [ecx + 4]
movzx eax, word [ebx]
and eax, 0xfffffffd
cmp ax, 0x2d
je 0x403300
xor eax, eax
mov edi, 1
mov dword [ebp - 0x2a4], 0
mov dword [ebp - 0x2a0], 5
mov dword [ebp - 0x298], 0
mov dword [ebp - 0x2b0], 0
mov dword [ebp - 0x2c4], 0
mov dword [ebp - 0x2c0], 0
mov word [ebp - 0x2b6], ax
mov dword [ebp - 0x284], 0
mov dword [ebp - 0x294], 0
mov dword [ebp - 0x270], 0
mov dword [ebp - 0x2ac], 0
mov dword [ebp - 0x2bc], 0
mov dword [ebp - 0x274], 0
mov dword [ebp - 0x278], 0
mov dword [ebp - 0x2b4], 0
mov dword [ebp - 0x2a8], 0
mov dword [ebp - 0x28c], 0
mov dword [ebp - 0x288], 0
mov dword [ebp - 0x29c], 0
mov dword [ebp - 0x290], 0
mov dword [ebp - 0x27c], 0
jmp 0x40201d
mov edx, str.umtgl
mov eax, ebx
call fcn.004013d0
test eax, eax
je 0x402741
mov edx, dword [ebp - 0x25c]
add edi, 1
cmp edx, edi
jle 0x4057dc
mov ecx, dword [ebp - 0x258]
mov eax, dword [ecx + esi + 4]
mov dword [ebp - 0x270], eax
test byte [section..data], 8
jne 0x402eb0
mov dword [ebp - 0x284], 1
mov dword [ebp - 0x288], 1
lea esi, [esi]
lea esi, [esi]
add edi, 1
cmp edi, edx
jge 0x40206f
mov ecx, dword [ebp - 0x258]
mov ebx, dword [ecx + edi*4]
lea esi, [edi*4]
test byte [section..data], 8
jne 0x402448
movzx eax, word [ebx]
and eax, 0xfffffffd
cmp ax, 0x2d
jne 0x401fb0
mov edx, str.regserver
mov eax, ebx
call fcn.00401700
test eax, eax
je 0x4022b0
mov edx, dword [ebp - 0x25c]
add edi, 1
mov dword [ebp - 0x278], 1
cmp edi, edx
jl 0x402017
movzx eax, byte [ebp - 0x290]
and al, byte [ebp - 0x28c]
xor eax, 1
and al, byte [ebp - 0x27c]
mov byte [ebp - 0x280], al
mov eax, dword [ebp - 0x2a0]
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msi.dll_MsiSetInternalUI
mov eax, dword [ebp - 0x264]
sub esp, 8
mov edi, eax
test eax, eax
je 0x404606
mov edx, eax
mov ebx, 1
lea esi, [esi]
nop
cmp word [edx + 4], 0
lea ecx, [edx + 4]
je 0x402fd0
mov eax, ecx
add eax, 2
cmp word [eax], 0
jne 0x4020d0
sub eax, ecx
sar eax, 1
add eax, 3
mov edx, dword [edx]
add ebx, eax
test edx, edx
jne 0x4020c0
add ebx, ebx
mov dword [esp + 4], 0
mov dword [esp + 8], ebx
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call sub.kernel32.dll_HeapAlloc
mov dword [ebp - 0x290], eax
sub esp, 0xc
mov esi, eax
jmp 0x40212a
mov edi, dword [edi]
test edi, edi
je 0x402220
lea edx, [edi + 4]
mov dword [esp + 4], 0x3d
mov dword [esp], edx
mov dword [ebp - 0x26c], edx
call dword [sym.imp.ucrtbase.dll_wcschr]
mov ebx, eax
test eax, eax
je 0x402120
mov edx, dword [ebp - 0x26c]
mov eax, 0x20
lea ecx, [esi + 2]
mov word [esi], ax
mov esi, ebx
sub esi, edx
mov dword [esp + 4], edx
mov dword [esp + 8], esi
mov dword [esp], ecx
mov dword [ebp - 0x26c], ecx
call sub.ucrtbase.dll_memcpy
mov ecx, dword [ebp - 0x26c]
mov eax, 0x3d
add esi, ecx
lea ecx, [ebx + 2]
mov word [esi], ax
mov dword [ebp - 0x26c], ecx
mov dword [esp], ecx
mov dword [esp + 4], 0x20
call dword [sym.imp.ucrtbase.dll_wcschr]
mov ecx, dword [ebp - 0x26c]
test eax, eax
mov dword [ebp - 0x27c], eax
je 0x402d38
mov eax, 0x22
lea edx, [esi + 4]
mov word [esi + 2], ax
cmp word [ebx + 2], 0
je 0x40220b
mov eax, ecx
lea esi, [esi]
nop
add eax, 2
cmp word [eax], 0
jne 0x4021d0
sub eax, ecx
mov dword [esp], edx
mov dword [esp + 8], eax
mov ebx, eax
mov dword [esp + 4], ecx
mov dword [ebp - 0x26c], edx
call sub.ucrtbase.dll_memcpy
mov edx, dword [ebp - 0x26c]
add edx, ebx
mov ebx, dword [ebp - 0x27c]
mov esi, edx
test ebx, ebx
je 0x402120
mov ecx, 0x22
lea esi, [edx + 2]
mov word [edx], cx
mov edi, dword [edi]
test edi, edi
jne 0x40212a
xor eax, eax
mov word [esi], ax
test byte [section..data], 8
jne 0x403aeb
cmp byte [ebp - 0x280], 0
jne 0x403bdb
mov edi, dword [ebp - 0x29c]
test edi, edi
je 0x4031fa
mov eax, dword [ebp - 0x270]
cmp word [eax], 0
je 0x402278
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x402260
sub eax, dword [ebp - 0x270]
cmp eax, 0x4c
je 0x403c6b
mov eax, dword [ebp - 0x294]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x270]
mov dword [esp], eax
call sub.msi.dll_MsiReinstallProductW
mov dword [ebp - 0x28c], eax
sub esp, 8
mov eax, dword [ebp - 0x28c]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
mov eax, dword [ebp - 0x258]
mov ebx, dword [eax + esi]
movzx eax, word [ebx]
and eax, 0xfffffffd
cmp ax, 0x2d
jne 0x401fb0
mov edx, str.unregserver
mov eax, ebx
call fcn.00401700
test eax, eax
jne 0x402430
mov eax, dword [ebp - 0x258]
mov ebx, dword [eax + esi]
movzx eax, word [ebx]
and eax, 0xfffffffd
cmp ax, 0x2d
jne 0x401fb0
mov edx, str.unregister
mov eax, ebx
call fcn.00401700
test eax, eax
jne 0x402430
mov eax, dword [ebp - 0x258]
mov ebx, dword [eax + esi]
movzx eax, word [ebx]
and eax, 0xfffffffd
cmp ax, 0x2d
jne 0x401fb0
mov edx, str.unreg
mov eax, ebx
call fcn.00401700
test eax, eax
jne 0x402430
mov eax, dword [ebp - 0x258]
mov ebx, dword [eax + esi]
movzx eax, word [ebx]
and eax, 0xfffffffd
cmp ax, 0x2d
jne 0x401fb0
mov edx, 0x4081a6
mov eax, ebx
call fcn.00401710
test eax, eax
jne 0x4027b8
mov eax, dword [ebp - 0x258]
mov ebx, dword [eax + esi]
movzx eax, word [ebx]
and eax, 0xfffffffd
cmp ax, 0x2d
jne 0x401fb0
mov edx, str.package
mov eax, ebx
call fcn.00401710
test eax, eax
jne 0x4027b8
mov eax, dword [ebp - 0x258]
mov ebx, dword [eax + esi]
movzx eax, word [ebx]
and eax, 0xfffffffd
cmp ax, 0x2d
jne 0x401fb0
mov edx, 0x4081b0
mov eax, ebx
call fcn.00401700
test eax, eax
je 0x402670
add edi, 1
cmp dword [ebp - 0x25c], edi
jle 0x4057dc
mov eax, dword [ebp - 0x258]
mov eax, dword [eax + esi + 4]
mov dword [ebp - 0x270], eax
test byte [section..data], 8
jne 0x402d80
mov edx, str.ACTIONADMIN
lea eax, [ebp - 0x264]
call fcn.00401a40
test byte [section..data], 1
jne 0x402d50
mov dword [ebp - 0x298], 1
mov edx, dword [ebp - 0x25c]
mov dword [ebp - 0x290], 1
mov dword [ebp - 0x27c], 1
jmp 0x402010
mov dword [ebp - 0x274], 1
mov edx, dword [ebp - 0x25c]
jmp 0x402010
test ebx, ebx
je 0x4028b8
mov eax, ebx
shr eax, 0x10
je 0x402650
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call sub.kernel32.dll_IsBadStringPtrW
mov edx, str._invalid_
sub esp, 8
test eax, eax
jne 0x402574
cmp word [ebx], 0
je 0x402a60
lea esi, [esi]
mov edx, eax
lea eax, [eax + 1]
cmp word [ebx + edx*2 + 2], 0
jne 0x402488
mov ecx, 0x224c
mov dword [ebp - 0x280], edi
mov word [ebp - 0x238], cx
lea ecx, [ebp - 0x236]
mov dword [ebp - 0x26c], ebx
jmp 0x4024f3
cmp ax, 9
je 0x402620
cmp ax, 0xa
jne 0x4025ce
mov eax, 0x6e5c
add ecx, 2
mov word [ecx - 2], ax
lea esi, [esi]
nop
lea edi, [ebp - 0x116]
lea eax, [edx - 1]
cmp ecx, edi
ja 0x402540
test edx, edx
jle 0x402540
mov edx, eax
add dword [ebp - 0x26c], 2
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax - 2]
cmp ax, 0xd
je 0x4025b0
jbe 0x4024b8
cmp ax, 0x22
je 0x402638
cmp ax, 0x5c
jne 0x4025c1
mov ebx, 0x5c5c
lea edi, [ebp - 0x116]
lea eax, [edx - 1]
add ecx, 2
mov word [ecx - 2], bx
cmp ecx, edi
jbe 0x4024ed
lea esi, [esi]
mov byte [ecx], 0x22
mov edi, dword [ebp - 0x280]
test eax, eax
jle 0x402a79
mov edx, 0x2e2e
mov byte [ecx + 3], 0x2e
lea eax, [ecx + 4]
mov word [ecx + 1], dx
mov byte [eax], 0
lea eax, [ebp - 0x238]
mov dword [esp], eax
call fcn.00406670
mov edx, eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], str.argvW__d____s_n
mov dword [esp + 8], str.WinMain
mov dword [esp + 4], 0x407000
mov dword [esp], 3
call fcn.00401720
mov eax, dword [ebp - 0x258]
mov ebx, dword [eax + esi]
jmp 0x402034
mov eax, 0x725c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x4024e0
lea edi, [eax - 0x20]
cmp di, 0x5e
jbe 0x4027a8
mov edi, eax
mov byte [ecx], 0x5c
add ecx, 5
shr di, 0xc
movzx edi, di
movzx ebx, byte [edi + str.0123456789abcdef]
mov edi, eax
shr di, 8
and edi, 0xf
mov byte [ecx - 4], bl
movzx ebx, byte [edi + str.0123456789abcdef]
mov edi, eax
and eax, 0xf
shr di, 4
movzx eax, byte [eax + str.0123456789abcdef]
and edi, 0xf
mov byte [ecx - 3], bl
movzx ebx, byte [edi + str.0123456789abcdef]
mov byte [ecx - 1], al
mov byte [ecx - 2], bl
jmp 0x4024e0
mov eax, 0x745c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x4024e0
mov edi, 0x225c
add ecx, 2
mov word [ecx - 2], di
jmp 0x4024e0
movzx ebx, bx
mov dword [esp], str._04x
mov dword [esp + 4], ebx
call fcn.00401b10
mov edx, eax
jmp 0x402574
mov eax, dword [ebp - 0x258]
mov ebx, dword [eax + esi]
movzx eax, word [ebx]
and eax, 0xfffffffd
cmp ax, 0x2d
jne 0x401fb0
mov edx, 0x4081e9
mov eax, ebx
call fcn.00401710
test eax, eax
mov eax, dword [ebp - 0x258]
jne 0x402bd8
mov ebx, dword [eax + esi]
movzx eax, word [ebx]
and eax, 0xfffffffd
cmp ax, 0x2d
jne 0x401fb0
mov edx, 0x408210
mov eax, ebx
call fcn.00401710
test eax, eax
jne 0x402840
mov eax, dword [ebp - 0x258]
mov ebx, dword [eax + esi]
movzx eax, word [ebx]
and eax, 0xfffffffd
cmp ax, 0x2d
jne 0x401fb0
mov edx, str.uninstall
mov eax, ebx
call fcn.00401700
test eax, eax
jne 0x402840
mov eax, dword [ebp - 0x258]
mov ebx, dword [eax + esi]
movzx eax, word [ebx]
and eax, 0xfffffffd
cmp ax, 0x2d
jne 0x401fb0
mov edx, 0x40822e
mov eax, ebx
call fcn.00401710
test eax, eax
mov eax, dword [ebp - 0x258]
jne 0x403010
mov ebx, dword [eax + esi]
mov edx, str.umtgl
mov eax, ebx
call fcn.004013d0
test eax, eax
jne 0x401fc4
mov eax, dword [ebp - 0x258]
mov edx, 0x408259
mov eax, dword [eax + esi]
call fcn.004013d0
test eax, eax
je 0x402fe0
mov edx, dword [ebp - 0x25c]
add edi, 1
cmp edx, edi
jle 0x4057dc
mov ecx, dword [ebp - 0x258]
mov eax, dword [ecx + esi + 4]
mov dword [ebp - 0x270], eax
test byte [section..data], 8
jne 0x4033f1
mov dword [ebp - 0x284], 0
mov dword [ebp - 0x288], 1
jmp 0x402010
mov byte [ecx], al
add ecx, 1
jmp 0x4024e0
mov ecx, dword [ebp - 0x258]
mov ebx, dword [ecx + esi]
movzx eax, word [ebx]
mov edx, eax
and edx, 0xfffffffd
cmp dx, 0x2d
je 0x402ba0
mov dword [ebp - 0x26c], ebx
mov dword [ebp - 0x270], 8
mov edx, dword [ebp - 0x25c]
test ax, ax
je 0x402a88
mov eax, dword [ebp - 0x26c]
lea esi, [esi]
nop
add eax, 2
cmp word [eax], 0
jne 0x402800
sub eax, dword [ebp - 0x26c]
sar eax, 1
cmp dword [ebp - 0x270], eax
jge 0x402a88
mov dword [ebp - 0x27c], 1
mov eax, dword [ebp - 0x270]
lea eax, [ebx + eax*2]
mov dword [ebp - 0x270], eax
jmp 0x402010
mov eax, dword [ebp - 0x258]
mov ecx, dword [eax + esi]
movzx eax, word [ecx]
and eax, 0xfffffffd
cmp ax, 0x2d
jne 0x4028c8
mov edx, 0x408210
mov eax, ecx
call fcn.00401710
test eax, eax
je 0x4028c8
mov eax, dword [ebp - 0x258]
mov eax, dword [eax + esi]
add eax, 4
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
cmp word [eax], 0
je 0x4028d2
test byte [section..data], 8
jne 0x402907
mov edx, str.REMOVEALL
lea eax, [ebp - 0x264]
call fcn.00401a40
mov edx, dword [ebp - 0x25c]
mov dword [ebp - 0x27c], 1
jmp 0x402010
mov edx, str._null_
jmp 0x402574
mov eax, dword [ebp - 0x270]
test eax, eax
jne 0x402877
add edi, 1
cmp dword [ebp - 0x25c], edi
jle 0x4057dc
mov eax, dword [ebp - 0x258]
mov eax, dword [eax + esi + 4]
mov dword [ebp - 0x270], eax
test byte [section..data], 8
je 0x40288c
mov edx, str._null_
test eax, eax
je 0x402a2b
mov eax, dword [ebp - 0x270]
shr eax, 0x10
je 0x403acd
mov esi, dword [ebp - 0x270]
mov dword [esp + 4], 0xffffffff
mov dword [esp], esi
call sub.kernel32.dll_IsBadStringPtrW
mov edx, str._invalid_
sub esp, 8
test eax, eax
jne 0x402a2b
cmp word [esi], 0
je 0x40421c
mov ecx, esi
lea esi, [esi]
nop
mov edx, eax
lea eax, [eax + 1]
cmp word [ecx + edx*2 + 2], 0
jne 0x402950
mov ebx, dword [ebp - 0x270]
mov ecx, 0x224c
mov word [ebp - 0x238], cx
lea ecx, [ebp - 0x236]
mov dword [ebp - 0x26c], ebx
jmp 0x4029b3
cmp ax, 9
je 0x403760
cmp ax, 0xa
jne 0x4036d7
mov eax, 0x6e5c
add ecx, 2
mov word [ecx - 2], ax
lea esi, [ebp - 0x116]
lea eax, [edx - 1]
cmp ecx, esi
ja 0x4029fd
test edx, edx
jle 0x4029fd
mov edx, eax
add dword [ebp - 0x26c], 2
mov eax, dword [ebp - 0x26c]
movzx eax, word [eax - 2]
cmp ax, 0xd
je 0x403748
jbe 0x402980
cmp ax, 0x22
je 0x403730
cmp ax, 0x5c
jne 0x4036ca
mov ebx, 0x5c5c
lea esi, [ebp - 0x116]
lea eax, [edx - 1]
add ecx, 2
mov word [ecx - 2], bx
cmp ecx, esi
jbe 0x4029ad
mov byte [ecx], 0x22
test eax, eax
jle 0x404235
mov edx, 0x2e2e
mov byte [ecx + 3], 0x2e
lea eax, [ecx + 4]
mov word [ecx + 1], dx
mov byte [eax], 0
lea eax, [ebp - 0x238]
mov dword [esp], eax
call fcn.00406670
mov edx, eax
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], str.PackageName___s_n
mov dword [esp + 8], str.WinMain
mov dword [esp + 4], 0x407000
mov dword [esp], 3
call fcn.00401720
jmp 0x40288c
mov edx, 0x224c
mov byte [ebp - 0x236], 0x22
lea ecx, [ebp - 0x236]
mov word [ebp - 0x238], dx
lea eax, [ecx + 1]
jmp 0x402561
add edi, 1
cmp edi, edx
jge 0x4057dc
mov eax, dword [ecx + esi + 4]
mov dword [ebp - 0x270], eax
test byte [section..data], 8
je 0x402421
test eax, eax
je 0x404450
shr eax, 0x10
je 0x403c4d
mov ebx, dword [ebp - 0x270]
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call sub.kernel32.dll_IsBadStringPtrW
mov edx, str._invalid_
sub esp, 8
test eax, eax
jne 0x403683
cmp word [ebx], 0
je 0x4045e5
mov ecx, ebx
lea esi, [esi]
mov edx, eax
lea eax, [eax + 1]
cmp word [ecx + edx*2 + 2], 0
jne 0x402af0
mov eax, 0x224c
mov dword [ebp - 0x26c], edi
lea ecx, [ebp - 0x236]
mov word [ebp - 0x238], ax
jmp 0x402b5b
cmp ax, 9
je 0x404038
cmp ax, 0xa
jne 0x403fce
mov eax, 0x6e5c
add ecx, 2
mov word [ecx - 2], ax
lea eax, [edx - 1]
test edx, edx
jle 0x40364f
lea edi, [ebp - 0x116]
cmp ecx, edi
ja 0x40364f
mov edx, eax
add dword [ebp - 0x270], 2
mov eax, dword [ebp - 0x270]
movzx eax, word [eax - 2]
cmp ax, 0xd
je 0x403fb0
jbe 0x402b20
cmp ax, 0x22
je 0x404020
cmp ax, 0x5c
jne 0x403fc1
mov ebx, 0x5c5c
add ecx, 2
mov word [ecx - 2], bx
jmp 0x402b40
mov edx, 0x4081a6
mov eax, ebx
call fcn.00401710
mov ecx, dword [ebp - 0x258]
test eax, eax
mov eax, dword [ecx + esi]
mov dword [ebp - 0x26c], eax
movzx eax, word [eax]
je 0x4027d9
mov dword [ebp - 0x270], 2
jmp 0x4027e3
mov eax, dword [eax + esi]
cmp word [eax], 0
je 0x402cae
mov edx, eax
lea esi, [esi]
nop
add edx, 2
cmp word [edx], 0
jne 0x402bf0
sub edx, eax
mov ecx, edx
sar ecx, 1
cmp edx, 4
jle 0x403959
mov dword [ebp - 0x26c], edi
mov edx, esi
mov esi, dword [ebp - 0x294]
mov ebx, 2
lea esi, [esi]
nop
movzx edi, word [eax + ebx*2]
lea eax, [edi - 0x41]
cmp ax, 0x35
ja case.0x402c30.1
movzx eax, ax
jmp dword [eax*4 + 0x4084f4]
mov dword [esp], 2
mov dword [ebp - 0x280], ecx
mov dword [ebp - 0x270], edx
call sub.ucrtbase.dll___acrt_iob_func
mov dword [esp + 8], edi
mov dword [esp + 4], str.Unknown_option___c__in_Repair_mode_n
mov dword [esp], eax
call fcn.00401670
mov ecx, dword [ebp - 0x280]
mov edx, dword [ebp - 0x270]
lea esi, [esi]
nop
add ebx, 1
cmp ebx, ecx
jge 0x402ca0
mov eax, dword [ebp - 0x258]
mov eax, dword [eax + edx]
jmp 0x402c20
add ebx, 1
or esi, 0x400
cmp ebx, ecx
jl 0x402c87
nop
mov edi, dword [ebp - 0x26c]
mov dword [ebp - 0x294], esi
mov esi, edx
mov edx, dword [ebp - 0x25c]
add edi, 1
cmp edx, edi
jle 0x4057dc
mov ecx, dword [ebp - 0x258]
mov eax, dword [ecx + esi + 4]
mov dword [ebp - 0x270], eax
test byte [section..data], 8
jne 0x403970
mov dword [ebp - 0x29c], 1
jmp 0x402010
or esi, 0x100
jmp 0x402c80
or esi, 0x200
jmp 0x402c80
or esi, 2
jmp 0x402c80
or esi, 4
jmp 0x402c80
or esi, 0x80
jmp 0x402c80
or esi, 8
jmp 0x402c80
or esi, 0x10
jmp 0x402c80
or esi, 0x20
jmp 0x402c80
or esi, 0x40
jmp 0x402c80
lea edx, [esi + 2]
cmp word [ebx + 2], 0
mov esi, edx
jne 0x4021c6
jmp 0x402120
mov dword [esp + 0xc], str.Administrative_installs_are_not_currently_supported_n
mov dword [esp + 8], str.WinMain
mov dword [esp + 4], 0x407000
mov dword [esp], 0
call fcn.00401720
jmp 0x402407
test eax, eax
je 0x404208
shr eax, 0x10
je 0x403337
mov ebx, dword [ebp - 0x270]
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call sub.kernel32.dll_IsBadStringPtrW
mov edx, str._invalid_
sub esp, 8
test eax, eax
jne 0x403350
cmp word [ebx], 0
je 0x403cb5
mov ecx, ebx
lea esi, [esi]
nop
mov edx, eax
lea eax, [eax + 1]
cmp word [ecx + edx*2 + 2], 0
jne 0x402dc8
mov eax, 0x224c
mov dword [ebp - 0x26c], edi
lea ecx, [ebp - 0x236]
mov word [ebp - 0x238], ax
jmp 0x402e23
cmp ax, 9
je 0x4037f8
cmp ax, 0xa
jne 0x40377e
mov eax, 0x6e5c
add ecx, 2
mov word [ecx - 2], ax
lea edi, [ebp - 0x116]
lea eax, [edx - 1]
cmp ecx, edi
ja 0x402e6d
test edx, edx
jle 0x402e6d
mov edx, eax
add dword [ebp - 0x270], 2
mov eax, dword [ebp - 0x270]
movzx eax, word [eax - 2]
cmp ax, 0xd
je 0x4037e1
jbe 0x402df0
cmp ax, 0x22
je 0x4037d0
cmp ax, 0x5c
jne 0x403771
mov ebx, 0x5c5c
lea edi, [ebp - 0x116]
lea eax, [edx - 1]
add ecx, 2
mov word [ecx - 2], bx
cmp ecx, edi
jbe 0x402e1d
mov byte [ecx], 0x22
mov edi, dword [ebp - 0x26c]
test eax, eax
jle 0x403cce
mov edx, 0x2e2e
mov byte [ecx + 3], 0x2e
lea eax, [ecx + 4]
mov word [ecx + 1], dx
mov byte [eax], 0
lea eax, [ebp - 0x238]
mov dword [esp], eax
call fcn.00406670
mov edx, eax
jmp 0x403350
test eax, eax
je 0x40427a
shr eax, 0x10
je 0x403391
mov ebx, dword [ebp - 0x270]
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call sub.kernel32.dll_IsBadStringPtrW
mov edx, str._invalid_
sub esp, 8
test eax, eax
jne 0x4033aa
cmp word [ebx], 0
je 0x403d88
mov ecx, ebx
lea esi, [esi]
nop
mov edx, eax
lea eax, [eax + 1]
cmp word [ecx + edx*2 + 2], 0
jne 0x402ef8
mov ecx, 0x224c
mov dword [ebp - 0x26c], edi
mov word [ebp - 0x238], cx
lea ecx, [ebp - 0x236]
jmp 0x402f53
cmp ax, 9
je 0x403948
cmp ax, 0xa
jne 0x4038cb
mov eax, 0x6e5c
add ecx, 2
mov word [ecx - 2], ax
lea eax, [edx - 1]
test edx, edx
jle 0x402f97
lea edi, [ebp - 0x116]
cmp ecx, edi
ja 0x402f97
mov edx, eax
add dword [ebp - 0x270], 2
mov eax, dword [ebp - 0x270]
movzx eax, word [eax - 2]
cmp ax, 0xd
je 0x403931
jbe 0x402f20
cmp ax, 0x22
je 0x403920
cmp ax, 0x5c
jne 0x4038be
mov ebx, 0x5c5c
add ecx, 2
lea eax, [edx - 1]
mov word [ecx - 2], bx
test edx, edx
jg 0x402f47
mov byte [ecx], 0x22
mov edi, dword [ebp - 0x26c]
test eax, eax
jle 0x403da1
mov edx, 0x2e2e
mov byte [ecx + 3], 0x2e
lea eax, [ecx + 4]
mov word [ecx + 1], dx
mov byte [eax], 0
lea eax, [ebp - 0x238]
mov dword [esp], eax
call fcn.00406670
mov edx, eax
jmp 0x4033aa
mov eax, 3
jmp 0x4020e0
mov eax, dword [ebp - 0x258]
mov eax, dword [eax + esi]
movzx edx, word [eax]
and edx, 0xfffffffd
cmp dx, 0x2d
je 0x4032b0
mov edx, eax
lea eax, [ebp - 0x264]
call fcn.00401a40
jmp 0x404790
mov eax, dword [eax + esi]
cmp word [eax], 0
je 0x4030d8
mov edx, eax
nop
add edx, 2
cmp word [edx], 0
jne 0x403020
sub edx, eax
mov ecx, edx
sar ecx, 1
cmp edx, 4
jle 0x4030d8
mov edx, 2
mov dword [ebp - 0x280], edi
mov edi, edx
mov edx, esi
mov esi, dword [ebp - 0x284]
jmp 0x403075
cmp bx, 0x4d
je 0x403648
cmp bx, 0x55
jne 0x40308b
mov esi, 1
add edi, 1
cmp edi, ecx
jge 0x4030ca
mov eax, dword [ebp - 0x258]
mov eax, dword [eax + edx]
movzx ebx, word [eax + edi*2]
cmp bx, 0x6d
je 0x403648
jbe 0x403050
cmp bx, 0x75
je 0x403060
mov dword [esp], 2
add edi, 1
mov dword [ebp - 0x270], ecx
mov dword [ebp - 0x26c], edx
call sub.ucrtbase.dll___acrt_iob_func
mov dword [esp + 8], ebx
mov dword [esp + 4], str.Unknown_option___c__in_Advertise_mode_n
mov dword [esp], eax
call fcn.00401670
mov ecx, dword [ebp - 0x270]
mov edx, dword [ebp - 0x26c]
cmp edi, ecx
jl 0x40306c
mov edi, dword [ebp - 0x280]
mov dword [ebp - 0x284], esi
mov esi, edx
mov edx, dword [ebp - 0x25c]
add edi, 1
cmp edx, edi
jle 0x4057dc
mov ecx, dword [ebp - 0x258]
mov eax, dword [ecx + esi + 4]
mov dword [ebp - 0x270], eax
test byte [section..data], 8
je 0x401ffc
test eax, eax
je 0x404ce9
shr eax, 0x10
je 0x40479b
mov ebx, dword [ebp - 0x270]
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call sub.kernel32.dll_IsBadStringPtrW
mov edx, str._invalid_
sub esp, 8
test eax, eax
jne 0x404141
cmp word [ebx], 0
je 0x40492a
mov ecx, ebx
lea esi, [esi]
mov edx, eax
lea eax, [eax + 1]
cmp word [ecx + edx*2 + 2], 0
jne 0x403150
mov eax, 0x224c
mov dword [ebp - 0x26c], edi
lea ebx, [ebp - 0x236]
mov word [ebp - 0x238], ax
jmp 0x4031bb
cmp ax, 9
je 0x4045d4
cmp ax, 0xa
jne 0x404524
mov eax, 0x6e5c
add ebx, 2
mov word [ebx - 2], ax
lea esi, [esi]
nop
lea ecx, [ebp - 0x116]
lea eax, [edx - 1]
cmp ebx, ecx
ja 0x40410d
test edx, edx
jle 0x40410d
mov edx, eax
add dword [ebp - 0x270], 2
mov eax, dword [ebp - 0x270]
movzx eax, word [eax - 2]
cmp ax, 0xd
je 0x4045c3
jbe 0x403177
cmp ax, 0x22
je 0x404575
cmp ax, 0x5c
jne 0x404517
mov ecx, 0x5c5c
add ebx, 2
mov word [ebx - 2], cx
jmp 0x4031a0
mov esi, dword [ebp - 0x288]
test esi, esi
jne 0x404315
mov edx, dword [ebp - 0x28c]
test edx, edx
jne 0x403e48
mov eax, dword [ebp - 0x2a8]
test eax, eax
jne 0x404672
mov eax, dword [ebp - 0x2b4]
test eax, eax
jne 0x404c7e
mov eax, dword [ebp - 0x278]
test eax, eax
jne 0x404835
mov eax, dword [ebp - 0x274]
test eax, eax
jne 0x405100
mov eax, dword [ebp - 0x2bc]
test eax, eax
jne 0x4055b8
mov edi, dword [ebp - 0x2ac]
test edi, edi
je 0x4057dc
test byte [section..data], 1
je 0x403c9b
mov dword [esp + 0xc], str.Unknown_function__ignoring_n
mov dword [esp + 8], str.WinMain
mov dword [esp + 4], 0x407000
mov dword [esp], 0
call fcn.00401720
mov eax, dword [ebp - 0x2ac]
mov dword [ebp - 0x28c], eax
jmp 0x402299
mov edx, 0x40825b
call fcn.00401700
test eax, eax
je 0x4034da
add edi, 1
cmp dword [ebp - 0x25c], edi
jle 0x4057dc
mov eax, dword [ebp - 0x258]
mov ebx, dword [eax + esi + 4]
test byte [section..data], 8
jne 0x404ac4
mov edx, ebx
lea eax, [ebp - 0x260]
call fcn.00401a40
mov edx, dword [ebp - 0x25c]
jmp 0x402010
mov edx, 0x4080af
mov eax, ebx
call fcn.00401700
test eax, eax
jne 0x403cd6
mov eax, dword [ebp - 0x25c]
cmp eax, 3
je 0x404049
cmp eax, 1
jle 0x403809
mov ecx, dword [ebp - 0x258]
jmp 0x401ed6
movzx eax, word [ebp - 0x270]
mov dword [esp], str._04x
mov dword [esp + 4], eax
call fcn.00401b10
mov edx, eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], str.argvW__d____s_n
mov dword [esp + 8], str.WinMain
mov dword [esp + 4], 0x407000
mov dword [esp], 3
call fcn.00401720
mov eax, dword [ebp - 0x258]
mov eax, dword [eax + esi + 4]
mov dword [ebp - 0x270], eax
jmp 0x4023ea
movzx eax, word [ebp - 0x270]
mov dword [esp], str._04x
mov dword [esp + 4], eax
call fcn.00401b10
mov edx, eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], str.argvW__d____s_n
mov dword [esp + 8], str.WinMain
mov dword [esp + 4], 0x407000
mov dword [esp], 3
call fcn.00401720
mov ecx, dword [ebp - 0x258]
mov edx, dword [ebp - 0x25c]
mov eax, dword [ecx + esi + 4]
mov dword [ebp - 0x270], eax
jmp 0x401ff2
test eax, eax
je 0x4047cd
shr eax, 0x10
je 0x40464a
mov ebx, dword [ebp - 0x270]
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call sub.kernel32.dll_IsBadStringPtrW
mov edx, str._invalid_
sub esp, 8
test eax, eax
jne 0x4040b5
cmp word [ebx], 0
je 0x404814
mov ecx, ebx
lea esi, [esi]
mov edx, eax
lea eax, [eax + 1]
cmp word [ecx + edx*2 + 2], 0
jne 0x403438
mov eax, 0x224c
mov dword [ebp - 0x26c], edi
lea ebx, [ebp - 0x236]
mov word [ebp - 0x238], ax
jmp 0x40349b
cmp ax, 9
je 0x404497
cmp ax, 0xa
jne 0x4044b5
mov eax, 0x6e5c
add ebx, 2
mov word [ebx - 2], ax
nop
lea ecx, [ebp - 0x116]
lea eax, [edx - 1]
cmp ebx, ecx
ja 0x404081
test edx, edx
jle 0x404081
mov edx, eax
add dword [ebp - 0x270], 2
mov eax, dword [ebp - 0x270]
movzx eax, word [eax - 2]
cmp ax, 0xd
je 0x404486
jbe 0x40345f
cmp ax, 0x22
je 0x404506
cmp ax, 0x5c
jne 0x4044a8
mov ecx, 0x5c5c
add ebx, 2
mov word [ebx - 2], cx
jmp 0x403480
mov eax, dword [ebp - 0x258]
mov eax, dword [eax + esi]
movzx edx, word [eax]
and edx, 0xfffffffd
cmp dx, 0x2d
jne 0x402ff9
mov edx, 0x40825d
call fcn.00401700
test eax, eax
jne 0x403e82
mov eax, dword [ebp - 0x258]
mov eax, dword [eax + esi]
movzx edx, word [eax]
and edx, 0xfffffffd
cmp dx, 0x2d
jne 0x402ff9
mov edx, 0x40825f
call fcn.00401710
test eax, eax
mov eax, dword [ebp - 0x258]
jne 0x4046d5
mov eax, dword [eax + esi]
movzx edx, word [eax]
and edx, 0xfffffffd
cmp dx, 0x2d
jne 0x402ff9
mov edx, 0x408287
call fcn.00401700
test eax, eax
jne 0x40423d
mov eax, dword [ebp - 0x258]
mov eax, dword [eax + esi]
movzx edx, word [eax]
and edx, 0xfffffffd
cmp dx, 0x2d
jne 0x402ff9
mov edx, str.update
call fcn.00401700
test eax, eax
jne 0x40423d
mov eax, dword [ebp - 0x258]
mov eax, dword [eax + esi]
movzx edx, word [eax]
and edx, 0xfffffffd
cmp dx, 0x2d
jne 0x402ff9
mov edx, 0x408290
call fcn.00401710
test eax, eax
jne 0x404dff
mov eax, dword [ebp - 0x258]
mov eax, dword [eax + esi]
movzx edx, word [eax]
and edx, 0xfffffffd
cmp dx, 0x2d
jne 0x402ff9
mov edx, str.passive
call fcn.00401700
test eax, eax
jne 0x404dda
mov eax, dword [ebp - 0x258]
mov eax, dword [eax + esi]
movzx edx, word [eax]
and edx, 0xfffffffd
cmp dx, 0x2d
jne 0x402ff9
mov edx, 0x4082ea
call fcn.00401700
test eax, eax
je 0x403ee2
mov edx, dword [ebp - 0x25c]
add edi, 1
cmp edx, edi
jle 0x4057dc
mov ecx, dword [ebp - 0x258]
mov eax, dword [ecx + esi + 4]
mov dword [ebp - 0x2a4], eax
test byte [section..data], 8
jne 0x405469
mov dword [ebp - 0x2a8], 1
jmp 0x402010
xor esi, esi
jmp 0x403065
mov byte [ecx], 0x22
mov edi, dword [ebp - 0x26c]
test eax, eax
jle 0x4045fe
mov edx, 0x2e2e
mov byte [ecx + 3], 0x2e
lea eax, [ecx + 4]
mov word [ecx + 1], dx
mov byte [eax], 0
lea eax, [ebp - 0x238]
mov dword [esp], eax
call fcn.00406670
mov edx, eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], str.argvW__d____s_n
mov dword [esp + 8], str.WinMain
mov dword [esp + 4], 0x407000
mov dword [esp], 3
call fcn.00401720
mov ecx, dword [ebp - 0x258]
mov edx, dword [ebp - 0x25c]
mov eax, dword [ecx + esi + 4]
mov dword [ebp - 0x270], eax
jmp 0x402421
lea esi, [eax - 0x20]
cmp si, 0x5e
jbe 0x403bd1
mov esi, eax
mov byte [ecx], 0x5c
add ecx, 5
shr si, 0xc
movzx esi, si
movzx ebx, byte [esi + str.0123456789abcdef]
mov esi, eax
shr si, 8
and esi, 0xf
mov byte [ecx - 4], bl
movzx ebx, byte [esi + str.0123456789abcdef]
mov esi, eax
and eax, 0xf
shr si, 4
movzx eax, byte [eax + str.0123456789abcdef]
and esi, 0xf
mov byte [ecx - 3], bl
movzx ebx, byte [esi + str.0123456789abcdef]
mov byte [ecx - 1], al
mov byte [ecx - 2], bl
jmp 0x4029a0
mov esi, 0x225c
add ecx, 2
mov word [ecx - 2], si
jmp 0x4029a0
mov eax, 0x725c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x4029a0
mov eax, 0x745c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x4029a0
lea edi, [eax - 0x20]
cmp di, 0x5e
jbe 0x403c39
mov edi, eax
mov byte [ecx], 0x5c
add ecx, 5
shr di, 0xc
movzx edi, di
movzx ebx, byte [edi + str.0123456789abcdef]
mov edi, eax
shr di, 8
and edi, 0xf
mov byte [ecx - 4], bl
movzx ebx, byte [edi + str.0123456789abcdef]
mov edi, eax
and eax, 0xf
shr di, 4
movzx eax, byte [eax + str.0123456789abcdef]
and edi, 0xf
mov byte [ecx - 3], bl
movzx ebx, byte [edi + str.0123456789abcdef]
mov byte [ecx - 1], al
mov byte [ecx - 2], bl
jmp 0x402e10
mov edi, 0x225c
add ecx, 2
mov word [ecx - 2], di
jmp 0x402e10
mov eax, 0x725c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x402e10
mov eax, 0x745c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x402e10
xor eax, eax
mov byte [ebp - 0x280], 0
mov dword [ebp - 0x2a4], 0
mov dword [ebp - 0x2a0], 5
mov dword [ebp - 0x298], 0
mov dword [ebp - 0x2b0], 0
mov word [ebp - 0x2b6], ax
mov dword [ebp - 0x284], 0
mov dword [ebp - 0x294], 0
mov dword [ebp - 0x270], 0
mov dword [ebp - 0x2ac], 0
mov dword [ebp - 0x2bc], 0
mov dword [ebp - 0x274], 0
mov dword [ebp - 0x278], 0
mov dword [ebp - 0x2b4], 0
mov dword [ebp - 0x2a8], 0
mov dword [ebp - 0x28c], 0
mov dword [ebp - 0x288], 0
mov dword [ebp - 0x29c], 0
jmp 0x40208b
lea edi, [eax - 0x20]
cmp di, 0x5e
jbe 0x403c43
mov edi, eax
mov byte [ecx], 0x5c
add ecx, 5
shr di, 0xc
movzx edi, di
movzx ebx, byte [edi + str.0123456789abcdef]
mov edi, eax
shr di, 8
and edi, 0xf
mov byte [ecx - 4], bl
movzx ebx, byte [edi + str.0123456789abcdef]
mov edi, eax
and eax, 0xf
shr di, 4
movzx eax, byte [eax + str.0123456789abcdef]
and edi, 0xf
mov byte [ecx - 3], bl
movzx ebx, byte [edi + str.0123456789abcdef]
mov byte [ecx - 1], al
mov byte [ecx - 2], bl
jmp 0x402f40
mov edi, 0x225c
add ecx, 2
mov word [ecx - 2], di
jmp 0x402f40
mov eax, 0x725c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x402f40
mov eax, 0x745c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x402f40
mov eax, 0x2aa
cmovne eax, dword [ebp - 0x294]
mov dword [ebp - 0x294], eax
jmp 0x402cae
test eax, eax
je 0x40461f
shr eax, 0x10
je 0x404468
mov ebx, dword [ebp - 0x270]
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call sub.kernel32.dll_IsBadStringPtrW
mov edx, str._invalid_
sub esp, 8
test eax, eax
jne 0x403a86
cmp word [ebx], 0
je 0x404629
mov ecx, ebx
lea esi, [esi]
nop
mov edx, eax
lea eax, [eax + 1]
cmp word [ecx + edx*2 + 2], 0
jne 0x4039b8
mov eax, 0x224c
mov dword [ebp - 0x26c], edi
lea ecx, [ebp - 0x236]
mov word [ebp - 0x238], ax
jmp 0x403a13
cmp ax, 9
je 0x4040fc
cmp ax, 0xa
jne 0x4041a6
mov eax, 0x6e5c
add ecx, 2
mov word [ecx - 2], ax
lea eax, [edx - 1]
test edx, edx
jle 0x403a52
lea edi, [ebp - 0x116]
cmp ecx, edi
ja 0x403a52
mov edx, eax
add dword [ebp - 0x270], 2
mov eax, dword [ebp - 0x270]
movzx eax, word [eax - 2]
cmp ax, 0xd
je 0x404188
jbe 0x4039e0
cmp ax, 0x22
je 0x4041f7
cmp ax, 0x5c
jne 0x404199
mov ebx, 0x5c5c
add ecx, 2
mov word [ecx - 2], bx
jmp 0x403a00
mov byte [ecx], 0x22
mov edi, dword [ebp - 0x26c]
test eax, eax
jle 0x404642
mov edx, 0x2e2e
mov byte [ecx + 3], 0x2e
lea eax, [ecx + 4]
mov word [ecx + 1], dx
mov byte [eax], 0
lea eax, [ebp - 0x238]
mov dword [esp], eax
call fcn.00406670
mov edx, eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], str.argvW__d____s_n
mov dword [esp + 8], str.WinMain
mov dword [esp + 4], 0x407000
mov dword [esp], 3
call fcn.00401720
mov ecx, dword [ebp - 0x258]
mov edx, dword [ebp - 0x25c]
mov eax, dword [ecx + esi + 4]
mov dword [ebp - 0x270], eax
jmp 0x402cdc
movzx eax, word [ebp - 0x270]
mov dword [esp], str._04x
mov dword [esp + 4], eax
call fcn.00401b10
mov edx, eax
jmp 0x402a2b
mov eax, dword [ebp - 0x290]
test eax, eax
je 0x404668
shr eax, 0x10
je 0x403e02
mov esi, dword [ebp - 0x290]
mov dword [esp + 4], 0xffffffff
mov dword [esp], esi
call sub.kernel32.dll_IsBadStringPtrW
mov edx, str._invalid_
sub esp, 8
test eax, eax
jne 0x403e1b
cmp word [esi], 0
je 0x404c5d
mov ecx, esi
lea esi, [esi]
mov edx, eax
lea eax, [eax + 1]
cmp word [ecx + edx*2 + 2], 0
jne 0x403b38
mov ebx, 0x224c
mov esi, dword [ebp - 0x290]
lea ecx, [ebp - 0x236]
lea edi, [ebp - 0x116]
mov word [ebp - 0x238], bx
jmp 0x403b9d
cmp ax, 9
je 0x404304
cmp ax, 0xa
jne 0x4042a2
mov eax, 0x6e5c
add ecx, 2
mov word [ecx - 2], ax
lea esi, [esi]
lea eax, [edx - 1]
test edx, edx
jle 0x404586
cmp ecx, edi
ja 0x404586
mov edx, eax
movzx eax, word [esi]
add esi, 2
cmp ax, 0xd
je 0x404284
jbe 0x403b65
cmp ax, 0x22
je 0x4042f3
cmp ax, 0x5c
jne 0x404295
mov ebx, 0x5c5c
add ecx, 2
mov word [ecx - 2], bx
jmp 0x403b88
mov byte [ecx], al
add ecx, 1
jmp 0x4029a0
mov eax, dword [ebp - 0x270]
cmp word [eax], 0
je 0x403c08
lea esi, [esi]
nop
add eax, 2
cmp word [eax], 0
jne 0x403bf0
sub eax, dword [ebp - 0x270]
cmp eax, 0x4c
je 0x403da9
mov eax, dword [ebp - 0x290]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x270]
mov dword [esp], eax
call sub.msi.dll_MsiInstallProductW
mov dword [ebp - 0x28c], eax
sub esp, 8
mov eax, dword [ebp - 0x28c]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
mov byte [ecx], al
add ecx, 1
jmp 0x402e10
mov byte [ecx], al
add ecx, 1
jmp 0x402f40
movzx eax, word [ebp - 0x270]
mov dword [esp], str._04x
mov dword [esp + 4], eax
call fcn.00401b10
mov edx, eax
jmp 0x403683
lea eax, [ebp - 0x238]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x270]
mov dword [esp], eax
call sub.ole32.dll_CLSIDFromString
sub esp, 8
test eax, eax
jne 0x402278
test byte [section..data], 1
jne 0x4049d5
mov dword [ebp - 0x28c], 1
mov eax, dword [ebp - 0x28c]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
mov eax, 0x224c
mov byte [ebp - 0x236], 0x22
lea ecx, [ebp - 0x236]
mov word [ebp - 0x238], ax
lea eax, [ecx + 1]
jmp 0x402e8e
mov eax, dword [ebp - 0x258]
mov eax, dword [eax + 8]
mov dword [esp + 4], str.SoftwareMicrosoftWindowsCurrentVersionInstallerRunOnceEntries
mov dword [esp], 0x80000002
mov dword [ebp - 0x26c], eax
lea eax, [ebp - 0x250]
mov dword [esp + 8], eax
mov dword [ebp - 0x248], 0
mov dword [ebp - 0x238], 0
call sub.advapi32.dll_RegOpenKeyW
sub esp, 0xc
test eax, eax
jne 0x403c9b
mov eax, dword [ebp - 0x26c]
lea edi, [ebp - 0x248]
lea ebx, [ebp - 0x238]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], edi
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x250]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0
mov dword [esp], eax
call sub.advapi32.dll_RegQueryValueExW
sub esp, 0x18
test eax, eax
jne 0x403d72
cmp dword [ebp - 0x238], 1
je 0x405246
mov eax, dword [ebp - 0x250]
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
sub esp, 4
jmp 0x403c9b
mov edx, 0x224c
mov byte [ebp - 0x236], 0x22
lea ecx, [ebp - 0x236]
mov word [ebp - 0x238], dx
lea eax, [ecx + 1]
jmp 0x402fb8
lea eax, [ebp - 0x238]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x270]
mov dword [esp], eax
call sub.ole32.dll_CLSIDFromString
sub esp, 8
test eax, eax
jne 0x403c08
mov eax, dword [ebp - 0x290]
mov dword [esp + 8], 5
mov dword [esp + 4], 0
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x270]
mov dword [esp], eax
call sub.msi.dll_MsiConfigureProductExW
mov dword [ebp - 0x28c], eax
sub esp, 0x10
jmp 0x402299
movzx eax, word [ebp - 0x290]
mov dword [esp], str._04x
mov dword [esp + 4], eax
call fcn.00401b10
mov edx, eax
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], str.properties_____s_n
mov dword [esp + 8], str.build_properties
mov dword [esp + 4], 0x407000
mov dword [esp], 3
call fcn.00401720
jmp 0x402232
mov eax, dword [ebp - 0x290]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x298]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x270]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2b0]
mov dword [esp], eax
call sub.msi.dll_MsiApplyPatchW
mov dword [ebp - 0x28c], eax
sub esp, 0x10
jmp 0x402299
mov edx, dword [ebp - 0x25c]
add edi, 1
cmp edx, edi
jle 0x4057dc
mov ecx, dword [ebp - 0x258]
mov ebx, dword [ecx + esi + 4]
test byte [section..data], 8
jne 0x40498d
movzx eax, word [ebx]
lea ecx, [eax - 0x30]
cmp cx, 9
ja 0x405612
xor ecx, ecx
lea esi, [esi]
lea ecx, [ecx + ecx*4]
add ebx, 2
lea ecx, [eax + ecx*2 - 0x30]
movzx eax, word [ebx]
lea esi, [eax - 0x30]
cmp si, 9
jbe 0x403ec0
mov word [ebp - 0x2b6], cx
jmp 0x402010
mov eax, dword [ebp - 0x258]
mov eax, dword [eax + esi]
movzx edx, word [eax]
and edx, 0xfffffffd
cmp dx, 0x2d
jne 0x402ff9
mov edx, 0x4082ec
call fcn.00401700
test eax, eax
jne 0x4047d7
mov eax, dword [ebp - 0x258]
mov eax, dword [eax + esi]
movzx edx, word [eax]
and edx, 0xfffffffd
cmp dx, 0x2d
jne 0x402ff9
mov edx, str.help
call fcn.00401700
test eax, eax
jne 0x40585d
mov eax, dword [ebp - 0x258]
mov eax, dword [eax + esi]
movzx edx, word [eax]
and edx, 0xfffffffd
cmp dx, 0x2d
jne 0x402ff9
mov edx, 0x4082f3
call fcn.00401700
test eax, eax
jne 0x40585d
mov eax, dword [ebp - 0x258]
mov eax, dword [eax + esi]
movzx edx, word [eax]
and edx, 0xfffffffd
cmp dx, 0x2d
jne 0x402ff9
mov edx, 0x408259
call fcn.00401700
test eax, eax
je 0x404cf3
test byte [section..data], 1
jne 0x405692
mov dword [ebp - 0x2ac], 1
mov edx, dword [ebp - 0x25c]
jmp 0x402010
mov eax, 0x725c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x402b40
lea edi, [eax - 0x20]
cmp di, 0x5e
jbe 0x404212
mov edi, eax
mov byte [ecx], 0x5c
add ecx, 5
shr di, 0xc
movzx edi, di
movzx ebx, byte [edi + str.0123456789abcdef]
mov edi, eax
shr di, 8
and edi, 0xf
mov byte [ecx - 4], bl
movzx ebx, byte [edi + str.0123456789abcdef]
mov edi, eax
and eax, 0xf
shr di, 4
movzx eax, byte [eax + str.0123456789abcdef]
and edi, 0xf
mov byte [ecx - 3], bl
movzx ebx, byte [edi + str.0123456789abcdef]
mov byte [ecx - 1], al
mov byte [ecx - 2], bl
jmp 0x402b40
mov edi, 0x225c
add ecx, 2
mov word [ecx - 2], di
jmp 0x402b40
mov eax, 0x745c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x402b40
mov ecx, dword [ebp - 0x258]
mov ebx, dword [ecx + 4]
movzx eax, word [ebx]
and eax, 0xfffffffd
cmp ax, 0x2d
jne 0x401ed6
mov edx, str.Embedding
mov eax, ebx
call fcn.00401700
test eax, eax
jne 0x404d54
mov eax, dword [ebp - 0x25c]
jmp 0x403323
mov byte [ebx], 0x22
mov edi, dword [ebp - 0x26c]
test eax, eax
jle 0x40482d
mov edx, 0x2e2e
mov byte [ebx + 3], 0x2e
lea eax, [ebx + 4]
mov word [ebx + 1], dx
mov byte [eax], 0
lea eax, [ebp - 0x238]
mov dword [esp], eax
call fcn.00406670
mov edx, eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], str.argvW__d____s_n
mov dword [esp + 8], str.WinMain
mov dword [esp + 4], 0x407000
mov dword [esp], 3
call fcn.00401720
mov ecx, dword [ebp - 0x258]
mov edx, dword [ebp - 0x25c]
mov eax, dword [ecx + esi + 4]
mov dword [ebp - 0x270], eax
jmp 0x40278a
mov eax, 0x745c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x403a00
mov byte [ebx], 0x22
mov edi, dword [ebp - 0x26c]
test eax, eax
jle 0x404943
mov edx, 0x2e2e
mov byte [ebx + 3], 0x2e
lea eax, [ebx + 4]
mov word [ebx + 1], dx
mov byte [eax], 0
lea eax, [ebp - 0x238]
mov dword [esp], eax
call fcn.00406670
mov edx, eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], str.argvW__d____s_n
mov dword [esp + 8], str.WinMain
mov dword [esp + 4], 0x407000
mov dword [esp], 3
call fcn.00401720
mov ecx, dword [ebp - 0x258]
mov edx, dword [ebp - 0x25c]
mov eax, dword [ecx + esi + 4]
mov dword [ebp - 0x270], eax
jmp 0x401ffc
mov eax, 0x725c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x403a00
lea edi, [eax - 0x20]
cmp di, 0x5e
jbe 0x4045b9
mov edi, eax
mov byte [ecx], 0x5c
add ecx, 5
shr di, 0xc
movzx edi, di
movzx ebx, byte [edi + str.0123456789abcdef]
mov edi, eax
shr di, 8
and edi, 0xf
mov byte [ecx - 4], bl
movzx ebx, byte [edi + str.0123456789abcdef]
mov edi, eax
and eax, 0xf
shr di, 4
movzx eax, byte [eax + str.0123456789abcdef]
and edi, 0xf
mov byte [ecx - 3], bl
movzx ebx, byte [edi + str.0123456789abcdef]
mov byte [ecx - 1], al
mov byte [ecx - 2], bl
jmp 0x403a00
mov edi, 0x225c
add ecx, 2
mov word [ecx - 2], di
jmp 0x403a00
mov edx, str._null_
jmp 0x403350
mov byte [ecx], al
add ecx, 1
jmp 0x402b40
mov ebx, 0x224c
mov byte [ebp - 0x236], 0x22
lea ecx, [ebp - 0x236]
mov word [ebp - 0x238], bx
lea eax, [ecx + 1]
jmp 0x402a18
mov edx, dword [ebp - 0x25c]
add edi, 1
cmp edx, edi
jle 0x4057dc
mov ecx, dword [ebp - 0x258]
mov eax, dword [ecx + esi + 4]
mov dword [ebp - 0x2b0], eax
test byte [section..data], 8
jne 0x404c11
mov dword [ebp - 0x28c], 1
jmp 0x402010
mov edx, str._null_
jmp 0x4033aa
mov eax, 0x725c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x403b88
lea ebx, [eax - 0x20]
cmp bx, 0x5e
jbe 0x404615
mov ebx, eax
mov byte [ecx], 0x5c
add ecx, 5
shr bx, 0xc
movzx ebx, bx
movzx ebx, byte [ebx + str.0123456789abcdef]
mov byte [ecx - 4], bl
mov ebx, eax
shr bx, 8
and ebx, 0xf
movzx ebx, byte [ebx + str.0123456789abcdef]
mov byte [ecx - 3], bl
mov ebx, eax
and eax, 0xf
shr bx, 4
movzx eax, byte [eax + str.0123456789abcdef]
and ebx, 0xf
movzx ebx, byte [ebx + str.0123456789abcdef]
mov byte [ecx - 1], al
mov byte [ecx - 2], bl
jmp 0x403b88
mov eax, 0x225c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x403b88
mov eax, 0x745c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x403b88
mov edi, dword [ebp - 0x264]
test edi, edi
je 0x4051f0
mov edx, edi
mov ebx, 1
lea esi, [esi]
cmp word [edx + 4], 0
lea ecx, [edx + 4]
je 0x40445e
mov eax, ecx
add eax, 2
cmp word [eax], 0
jne 0x404340
sub eax, ecx
sar eax, 1
add eax, 1
mov edx, dword [edx]
add ebx, eax
test edx, edx
jne 0x404330
add ebx, ebx
mov dword [esp + 4], 0
mov dword [esp + 8], ebx
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call sub.kernel32.dll_HeapAlloc
mov dword [ebp - 0x274], eax
sub esp, 0xc
mov edx, eax
lea esi, [esi]
movzx ebx, word [edi + 4]
lea ecx, [edi + 4]
test bx, bx
je 0x40445a
mov eax, ecx
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x4043a0
sub eax, ecx
mov esi, eax
add eax, edx
sar esi, 1
mov dword [ebp - 0x26c], esi
cmp esi, 1
jbe 0x404443
sub esi, 1
add edx, 2
add ecx, 2
mov word [edx - 2], bx
cmp esi, 1
je 0x4043da
movzx ebx, word [ecx]
test bx, bx
jne 0x4043c0
xor ecx, ecx
mov word [edx], cx
mov esi, dword [edi]
test esi, esi
je 0x4043f8
mov ebx, 0x3b
lea edx, [eax + 2]
mov word [eax], bx
mov edi, dword [edi]
test edi, edi
jne 0x404388
mov eax, edx
xor ecx, ecx
movzx ebx, word [ebp - 0x2b6]
mov word [eax], cx
mov eax, dword [ebp - 0x274]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x284]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x270]
mov dword [esp], eax
call sub.msi.dll_MsiAdvertiseProductW
mov dword [ebp - 0x28c], eax
sub esp, 0x10
mov eax, dword [ebp - 0x28c]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
mov ebx, dword [ebp - 0x26c]
test ebx, ebx
je 0x4043df
jmp 0x4043da
mov edx, str._null_
jmp 0x403683
mov eax, edx
jmp 0x4043df
mov eax, 1
jmp 0x404350
movzx eax, word [ebp - 0x270]
mov dword [esp], str._04x
mov dword [esp + 4], eax
call fcn.00401b10
mov edx, eax
jmp 0x403a86
mov eax, 0x725c
add ebx, 2
mov word [ebx - 2], ax
jmp 0x403480
mov eax, 0x745c
add ebx, 2
mov word [ebx - 2], ax
jmp 0x403480
lea edi, [eax - 0x20]
cmp di, 0x5e
jbe 0x4047b9
mov edi, eax
mov byte [ebx], 0x5c
add ebx, 5
shr di, 0xc
movzx edi, di
movzx ecx, byte [edi + str.0123456789abcdef]
mov edi, eax
shr di, 8
and edi, 0xf
mov byte [ebx - 4], cl
movzx ecx, byte [edi + str.0123456789abcdef]
mov edi, eax
and eax, 0xf
shr di, 4
movzx eax, byte [eax + str.0123456789abcdef]
and edi, 0xf
mov byte [ebx - 3], cl
movzx ecx, byte [edi + str.0123456789abcdef]
mov byte [ebx - 1], al
mov byte [ebx - 2], cl
jmp 0x403480
mov edi, 0x225c
add ebx, 2
mov word [ebx - 2], di
jmp 0x403480
lea edi, [eax - 0x20]
cmp di, 0x5e
jbe 0x4047c3
mov edi, eax
mov byte [ebx], 0x5c
add ebx, 5
shr di, 0xc
movzx edi, di
movzx ecx, byte [edi + str.0123456789abcdef]
mov edi, eax
shr di, 8
and edi, 0xf
mov byte [ebx - 4], cl
movzx ecx, byte [edi + str.0123456789abcdef]
mov edi, eax
and eax, 0xf
shr di, 4
movzx eax, byte [eax + str.0123456789abcdef]
and edi, 0xf
mov byte [ebx - 3], cl
movzx ecx, byte [edi + str.0123456789abcdef]
mov byte [ebx - 1], al
mov byte [ebx - 2], cl
jmp 0x4031a0
mov edi, 0x225c
add ebx, 2
mov word [ebx - 2], di
jmp 0x4031a0
mov byte [ecx], 0x22
test eax, eax
jle 0x404c76
mov edx, 0x2e2e
mov byte [ecx + 3], 0x2e
lea eax, [ecx + 4]
mov word [ecx + 1], dx
mov byte [eax], 0
lea eax, [ebp - 0x238]
mov dword [esp], eax
call fcn.00406670
mov edx, eax
jmp 0x403e1b
mov byte [ecx], al
add ecx, 1
jmp 0x403a00
mov eax, 0x725c
add ebx, 2
mov word [ebx - 2], ax
jmp 0x4031a0
mov eax, 0x745c
add ebx, 2
mov word [ebx - 2], ax
jmp 0x4031a0
mov ebx, 0x224c
mov byte [ebp - 0x236], 0x22
lea ecx, [ebp - 0x236]
mov word [ebp - 0x238], bx
lea eax, [ecx + 1]
jmp 0x403670
mov dword [ebp - 0x290], 0
jmp 0x402232
mov byte [ecx], al
add ecx, 1
jmp 0x403b88
mov edx, str._null_
jmp 0x403a86
mov eax, 0x224c
mov byte [ebp - 0x236], 0x22
lea ecx, [ebp - 0x236]
mov word [ebp - 0x238], ax
lea eax, [ecx + 1]
jmp 0x403a73
movzx eax, word [ebp - 0x270]
mov dword [esp], str._04x
mov dword [esp + 4], eax
call fcn.00401b10
mov edx, eax
jmp 0x4040b5
mov edx, str._null_
jmp 0x403e1b
mov eax, dword [ebp - 0x2a4]
lea ecx, [ebp - 0x238]
mov edx, str.DllRegisterServer
mov dword [ebp - 0x238], 0
call fcn.00401da0
call eax
test eax, eax
mov eax, dword [ebp - 0x2a4]
js 0x404a0a
call fcn.00401b70
mov dword [esp], str.Successfully_registered_dll__s_n
mov dword [esp + 4], eax
call fcn.004016b0
mov eax, dword [ebp - 0x238]
test eax, eax
je 0x402299
mov dword [esp], eax
call sub.kernel32.dll_FreeLibrary
sub esp, 4
jmp 0x402299
mov ecx, dword [eax + esi]
mov dword [ebp - 0x26c], eax
cmp word [ecx], 0
je 0x404743
mov eax, ecx
add eax, 2
cmp word [eax], 0
jne 0x4046e6
sub eax, ecx
mov ebx, eax
sar ebx, 1
cmp eax, 4
jle 0x404743
mov dword [ebp - 0x280], edi
mov edi, dword [ebp - 0x2c0]
mov edx, 2
movzx eax, word [ecx + edx*2]
sub eax, 0x21
cmp ax, 0x56
ja case.0x40471b.1
movzx eax, ax
jmp dword [eax*4 + 0x4085cc]
mov edi, 0x7fdf
lea esi, [esi]
nop
add edx, 1
cmp edx, ebx
jl 0x40470b
mov dword [ebp - 0x2c0], edi
mov edi, dword [ebp - 0x280]
add edi, 1
cmp dword [ebp - 0x25c], edi
jle 0x4057dc
mov eax, dword [ebp - 0x26c]
mov ebx, dword [eax + esi + 4]
test byte [section..data], 8
jne 0x40494b
mov eax, dword [ebp - 0x2c4]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2c0]
mov dword [esp], eax
call sub.msi.dll_MsiEnableLogW
sub esp, 0xc
test eax, eax
jne 0x405904
mov edx, dword [ebp - 0x25c]
jmp 0x402010
movzx eax, word [ebp - 0x270]
mov dword [esp], str._04x
mov dword [esp + 4], eax
call fcn.00401b10
mov edx, eax
jmp 0x404141
mov byte [ebx], al
add ebx, 1
jmp 0x403480
mov byte [ebx], al
add ebx, 1
jmp 0x4031a0
mov edx, str._null_
jmp 0x4040b5
mov edx, dword [ebp - 0x25c]
add edi, 1
cmp edx, edi
jle 0x4057dc
mov ecx, dword [ebp - 0x258]
mov eax, dword [ecx + esi + 4]
mov dword [ebp - 0x2a4], eax
test byte [section..data], 8
jne 0x405522
mov dword [ebp - 0x2b4], 1
jmp 0x402010
mov eax, 0x224c
mov byte [ebp - 0x236], 0x22
lea ebx, [ebp - 0x236]
mov word [ebp - 0x238], ax
lea eax, [ebx + 1]
jmp 0x4040a2
mov dword [esp + 8], 2
mov dword [esp + 4], str.ServicesActive
mov dword [esp], 0
call sub.advapi32.dll_OpenSCManagerW
sub esp, 0xc
mov esi, eax
test eax, eax
je 0x40569f
lea ebx, [ebp - 0x238]
mov dword [esp + 4], 0x104
mov dword [esp], ebx
call sub.kernel32.dll_GetSystemDirectoryW
mov edx, 0x5c
lea ecx, [ebx + eax*2]
sub esp, 8
xor eax, eax
jmp 0x40488a
movzx edx, word [eax + str.msiexec__V]
mov word [ecx + eax], dx
add eax, 2
test dx, dx
jne 0x404883
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], 1
mov dword [esp + 0x14], 3
mov dword [esp + 0x10], 0x20
mov dword [esp + 0xc], 0x10000000
mov dword [esp + 8], 0x408748
mov dword [esp + 4], 0x408748
mov dword [esp], esi
call sub.advapi32.dll_CreateServiceW
sub esp, 0x34
test eax, eax
je 0x40556e
mov dword [esp], eax
call sub.advapi32.dll_CloseServiceHandle
mov dword [ebp - 0x28c], 0
sub esp, 4
mov dword [esp], esi
call sub.advapi32.dll_CloseServiceHandle
sub esp, 4
jmp 0x402299
mov eax, 0x224c
mov byte [ebp - 0x236], 0x22
lea ebx, [ebp - 0x236]
mov word [ebp - 0x238], ax
lea eax, [ebx + 1]
jmp 0x40412e
mov eax, ebx
call fcn.00401b70
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], str.argvW__d____s_n
mov dword [esp + 8], str.WinMain
mov dword [esp + 4], 0x407000
mov dword [esp], 3
call fcn.00401720
mov eax, dword [ebp - 0x258]
mov ebx, dword [eax + esi + 4]
jmp 0x404769
mov eax, ebx
call fcn.00401b70
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], str.argvW__d____s_n
mov dword [esp + 8], str.WinMain
mov dword [esp + 4], 0x407000
mov dword [esp], 3
call fcn.00401720
mov ecx, dword [ebp - 0x258]
mov edx, dword [ebp - 0x25c]
mov ebx, dword [ecx + esi + 4]
jmp 0x403eaa
mov dword [esp + 0xc], str.Product_code_treatment_not_implemented_yet_n
mov dword [esp + 8], str.WinMain
mov dword [esp + 4], 0x407000
mov dword [esp], 0
call fcn.00401720
mov eax, dword [ebp - 0x29c]
mov dword [ebp - 0x28c], eax
jmp 0x402299
call fcn.00401b70
mov dword [esp], 2
mov ebx, eax
call sub.ucrtbase.dll___acrt_iob_func
mov dword [esp + 8], ebx
mov dword [esp + 4], str.Failed_to_register_dll__s_n
mov dword [esp], eax
call fcn.00401670
mov eax, dword [ebp - 0x2a8]
mov dword [ebp - 0x28c], eax
jmp 0x402299
or edi, 8
jmp case.0x40471b.1
or edi, 0x200
jmp case.0x40471b.1
or edi, 0x400
jmp case.0x40471b.1
or edi, 0x80
jmp case.0x40471b.1
or edi, 1
jmp case.0x40471b.1
or edi, 0x10
jmp case.0x40471b.1
or edi, 2
jmp case.0x40471b.1
or edi, 0x800
jmp case.0x40471b.1
or edi, 0x100
jmp case.0x40471b.1
or edi, 4
jmp case.0x40471b.1
or edi, 0x1000
jmp case.0x40471b.1
or dword [ebp - 0x2c4], 1
jmp case.0x40471b.1
or dword [ebp - 0x2c4], 2
jmp case.0x40471b.1
test ebx, ebx
je 0x40545f
mov eax, ebx
shr eax, 0x10
je 0x40522c
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call sub.kernel32.dll_IsBadStringPtrW
mov edx, str._invalid_
sub esp, 8
test eax, eax
jne 0x404bd6
cmp word [ebx], 0
je 0x4055c8
mov edx, eax
lea eax, [eax + 1]
cmp word [ebx + edx*2 + 2], 0
jne 0x404b01
mov eax, 0x224c
mov dword [ebp - 0x280], edi
mov ecx, edx
mov word [ebp - 0x238], ax
lea eax, [ebp - 0x236]
mov dword [ebp - 0x26c], ebx
jmp 0x404b63
cmp dx, 9
je 0x404ebd
cmp dx, 0xa
jne 0x404e4a
mov edi, 0x6e5c
add eax, 2
mov word [eax - 2], di
lea edi, [ebp - 0x116]
lea edx, [ecx - 1]
cmp eax, edi
ja 0x404ba2
test ecx, ecx
jle 0x404ba2
mov ecx, edx
add dword [ebp - 0x26c], 2
mov edi, dword [ebp - 0x26c]
movzx edx, word [edi - 2]
cmp dx, 0xd
je 0x404eac
jbe 0x404b30
cmp dx, 0x22
je 0x404e9b
cmp dx, 0x5c
jne 0x404e3d
mov ebx, 0x5c5c
add eax, 2
mov word [eax - 2], bx
jmp 0x404b50
mov byte [eax], 0x22
mov edi, dword [ebp - 0x280]
test edx, edx
jle 0x4055e1
mov ecx, 0x2e2e
mov byte [eax + 3], 0x2e
lea edx, [eax + 4]
mov word [eax + 1], cx
lea eax, [ebp - 0x238]
mov byte [edx], 0
mov dword [esp], eax
call fcn.00406670
mov edx, eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], str.argvW__d____s_n
mov dword [esp + 8], str.WinMain
mov dword [esp + 4], 0x407000
mov dword [esp], 3
call fcn.00401720
mov eax, dword [ebp - 0x258]
mov ebx, dword [eax + esi + 4]
jmp 0x4032e8
call fcn.00401b70
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], str.argvW__d____s_n
mov dword [esp + 8], str.WinMain
mov dword [esp + 4], 0x407000
mov dword [esp], 3
call fcn.00401720
mov ecx, dword [ebp - 0x258]
mov edx, dword [ebp - 0x25c]
mov eax, dword [ecx + esi + 4]
mov dword [ebp - 0x2b0], eax
jmp 0x40426b
mov esi, 0x224c
mov byte [ebp - 0x236], 0x22
lea ecx, [ebp - 0x236]
mov word [ebp - 0x238], si
lea eax, [ecx + 1]
jmp 0x4045a1
mov eax, dword [ebp - 0x2a4]
lea ecx, [ebp - 0x238]
mov edx, str.DllUnregisterServer
mov dword [ebp - 0x238], 0
call fcn.00401da0
call eax
test eax, eax
mov eax, dword [ebp - 0x2a4]
js 0x405350
call fcn.00401b70
mov dword [esp], str.Successfully_unregistered_dll__s_n
mov dword [esp + 4], eax
call fcn.004016b0
mov eax, dword [ebp - 0x238]
test eax, eax
je 0x404cd8
mov dword [esp], eax
call sub.kernel32.dll_FreeLibrary
sub esp, 4
mov eax, dword [ebp - 0x2a8]
mov dword [ebp - 0x28c], eax
jmp 0x402299
mov edx, str._null_
jmp 0x404141
mov eax, dword [ebp - 0x258]
mov eax, dword [eax + esi]
movzx edx, word [eax]
and edx, 0xfffffffd
cmp dx, 0x2d
jne 0x402ff9
mov edx, 0x40830b
call fcn.00401700
test eax, eax
je 0x404ece
test byte [section..data], 1
je 0x403f9b
mov dword [esp + 0xc], str.Unknown_parameter__D_n
mov dword [esp + 8], str.WinMain
mov dword [esp + 4], 0x407000
mov dword [esp], 0
call fcn.00401720
jmp 0x403f9b
mov eax, dword [ebp - 0x258]
mov ebx, dword [eax + 8]
test byte [section..data], 8
jne 0x405388
mov dword [esp + 8], 0xa
mov dword [esp + 4], 0
mov dword [esp], ebx
call sub.ucrtbase.dll_wcstol
mov dword [section..bss], eax
test eax, eax
jne 0x404f0e
mov dword [ebp - 0x28c], 1
test byte [section..data], 2
je 0x402299
mov eax, ebx
call fcn.00401b70
mov dword [esp + 0xc], str.Invalid_parameter__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.custom_action_server
mov dword [esp + 4], 0x407000
mov dword [esp], 1
call fcn.00401720
jmp 0x402299
mov edx, str.REBOOTPROMPT_S_
lea eax, [ebp - 0x264]
call fcn.00401a40
mov edx, dword [ebp - 0x25c]
mov dword [ebp - 0x2a0], 0x63
jmp 0x402010
mov ecx, dword [ebp - 0x258]
mov edx, dword [ecx + esi]
cmp word [edx], 0
je 0x405188
mov eax, edx
add eax, 2
cmp word [eax], 0
jne 0x404e14
sub eax, edx
cmp eax, 4
jne 0x405188
mov dword [ebp - 0x2a0], 2
mov edx, dword [ebp - 0x25c]
jmp 0x402010
lea edi, [edx - 0x20]
cmp di, 0x5e
jbe 0x405222
mov edi, edx
mov byte [eax], 0x5c
add eax, 5
shr di, 0xc
movzx edi, di
movzx ebx, byte [edi + str.0123456789abcdef]
mov edi, edx
shr di, 8
and edi, 0xf
mov byte [eax - 4], bl
movzx ebx, byte [edi + str.0123456789abcdef]
mov edi, edx
and edx, 0xf
shr di, 4
movzx edx, byte [edx + str.0123456789abcdef]
and edi, 0xf
mov byte [eax - 3], bl
movzx ebx, byte [edi + str.0123456789abcdef]
mov byte [eax - 1], dl
mov byte [eax - 2], bl
jmp 0x404b50
mov edi, 0x225c
add eax, 2
mov word [eax - 2], di
jmp 0x404b50
mov ebx, 0x725c
add eax, 2
mov word [eax - 2], bx
jmp 0x404b50
mov edx, 0x745c
add eax, 2
mov word [eax - 2], dx
jmp 0x404b50
mov eax, dword [ebp - 0x258]
mov eax, dword [eax + esi]
movzx edx, word [eax]
and edx, 0xfffffffd
cmp dx, 0x2d
jne 0x402ff9
mov edx, 0x408323
call fcn.00401700
test eax, eax
je 0x405514
mov dword [ebp - 0x2bc], 1
mov edx, dword [ebp - 0x25c]
jmp 0x402010
lea ebx, [ebp - 0x238]
mov dword [esp + 0x10], 0x20
mov dword [esp], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 8], str..pipemsica__x__d
mov dword [esp + 4], 0x18
call fcn.00401380
mov dword [esp], ebx
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 3
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0xc0000000
call sub.kernel32.dll_CreateFileW
sub esp, 0x1c
mov ebx, eax
cmp eax, 0xffffffff
je 0x405771
mov dword [esp + 4], 0
lea edi, [ebp - 0x248]
lea esi, [ebp - 0x254]
mov dword [esp], 0
call sub.ole32.dll_CoInitializeEx
sub esp, 8
mov eax, dword fs:[0x18]
mov dword [ebp - 0x26c], eax
jmp 0x40507d
mov eax, dword [ebp - 0x26c]
mov dword [esp + 8], 0x10
mov dword [esp + 4], 0
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call sub.kernel32.dll_HeapAlloc
mov ecx, dword [ebp - 0x248]
sub esp, 0xc
mov dword [eax], ecx
mov ecx, dword [ebp - 0x244]
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0x240]
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0x23c]
mov dword [eax + 0xc], ecx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x401320
mov dword [esp + 4], 0
mov dword [esp], 0
call sub.kernel32.dll_CreateThread
mov dword [ebp - 0x24c], 0
sub esp, 0x18
mov dword [ebp - 0x250], eax
lea eax, [ebp - 0x250]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], esi
mov dword [esp + 8], 8
mov dword [esp + 4], eax
mov dword [esp], ebx
call sub.kernel32.dll_WriteFile
sub esp, 0x14
test eax, eax
je 0x40566c
cmp dword [ebp - 0x254], 8
jne 0x40566c
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0x10
mov dword [esp + 4], edi
mov dword [esp], ebx
call sub.kernel32.dll_ReadFile
sub esp, 0x14
test eax, eax
je 0x40572e
cmp dword [ebp - 0x254], 0x10
jne 0x40572e
mov eax, dword [0x40891c]
cmp dword [edi], eax
jne 0x404fb2
mov eax, dword [0x408920]
cmp dword [edi + 4], eax
jne 0x404fb2
mov eax, dword [0x408924]
cmp dword [edi + 8], eax
jne 0x404fb2
mov eax, dword [0x408928]
cmp dword [edi + 0xc], eax
jne 0x404fb2
mov dword [ebp - 0x28c], 0
call sub.ole32.dll_CoUninitialize
jmp 0x402299
mov dword [esp + 8], 1
mov dword [esp + 4], str.ServicesActive
mov dword [esp], 0
call sub.advapi32.dll_OpenSCManagerW
sub esp, 0xc
mov ebx, eax
test eax, eax
je 0x405830
mov dword [esp + 8], 0x10000
mov dword [esp + 4], 0x408734
mov dword [esp], eax
call sub.advapi32.dll_OpenServiceW
sub esp, 0xc
mov esi, eax
test eax, eax
je 0x4057e6
mov dword [esp], eax
call sub.advapi32.dll_DeleteService
sub esp, 4
test eax, eax
je 0x405868
mov dword [esp], esi
call sub.advapi32.dll_CloseServiceHandle
mov eax, dword [ebp - 0x278]
sub esp, 4
mov dword [ebp - 0x28c], eax
mov dword [esp], ebx
call sub.advapi32.dll_CloseServiceHandle
sub esp, 4
jmp 0x402299
lea eax, [edx + 4]
mov edx, 0x408292
call fcn.004013d0
test eax, eax
jne 0x404e28
mov eax, dword [ebp - 0x258]
mov edx, str.uiet
mov eax, dword [eax + esi]
add eax, 4
call fcn.004013d0
test eax, eax
jne 0x404e28
mov eax, dword [ebp - 0x258]
mov edx, 0x408299
mov eax, dword [eax + esi]
add eax, 4
call fcn.004013d0
test eax, eax
je 0x40594d
mov dword [ebp - 0x2a0], 4
mov edx, dword [ebp - 0x25c]
jmp 0x402010
mov dword [esp + 8], 2
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call sub.kernel32.dll_HeapAlloc
mov dword [ebp - 0x274], eax
sub esp, 0xc
jmp 0x4043f8
mov byte [eax], dl
add eax, 1
jmp 0x404b50
movzx ebx, bx
mov dword [esp], str._04x
mov dword [esp + 4], ebx
call fcn.00401b10
mov edx, eax
jmp 0x404bd6
mov eax, dword [ebp - 0x258]
mov eax, dword [eax]
cmp word [eax], 0
je 0x405895
mov edx, eax
add edx, 2
cmp word [edx], 0
jne 0x40525a
sub edx, eax
lea eax, [edx + 2]
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x270]
add eax, dword [ebp - 0x248]
mov dword [esp + 4], 0
mov esi, dword fs:[0x18]
mov dword [esp + 8], eax
mov eax, dword [esi + 0x30]
mov dword [ebp - 0x278], edx
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x274], esi
mov dword [esp], eax
call sub.kernel32.dll_HeapAlloc
mov edx, dword [ebp - 0x278]
sub esp, 0xc
test eax, eax
mov esi, eax
je 0x403d72
mov eax, dword [ebp - 0x258]
mov dword [ebp - 0x278], edx
mov eax, dword [eax]
mov dword [esp + 8], edx
mov dword [esp], esi
mov dword [esp + 4], eax
call sub.ucrtbase.dll_memcpy
mov edx, dword [ebp - 0x278]
mov eax, 0x20
mov word [esi + edx], ax
mov eax, dword [ebp - 0x270]
mov dword [esp + 0x14], edi
add eax, esi
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x26c]
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x250]
mov dword [esp], eax
call sub.advapi32.dll_RegQueryValueExW
sub esp, 0x18
test eax, eax
je 0x405620
mov eax, dword [ebp - 0x274]
mov dword [esp + 8], esi
mov dword [esp + 4], 0
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call sub.kernel32.dll_HeapFree
sub esp, 0xc
jmp 0x403d72
call fcn.00401b70
mov dword [esp], 2
mov ebx, eax
call sub.ucrtbase.dll___acrt_iob_func
mov dword [esp + 8], ebx
mov dword [esp + 4], str.Failed_to_unregister_dll__s_n
mov dword [esp], eax
call fcn.00401670
mov eax, dword [ebp - 0x2b4]
mov dword [ebp - 0x2a8], eax
jmp 0x404cd8
test ebx, ebx
je 0x4058dc
mov eax, ebx
shr eax, 0x10
je 0x4055e9
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call sub.kernel32.dll_IsBadStringPtrW
mov edx, eax
sub esp, 8
mov eax, str._invalid_
test edx, edx
jne 0x4054e7
cmp word [ebx], 0
je 0x4058e6
mov ecx, edx
lea edx, [edx + 1]
cmp word [ebx + ecx*2 + 2], 0
jne 0x4053c7
mov eax, 0x224c
mov dword [ebp - 0x26c], ebx
mov esi, ebx
mov word [ebp - 0x238], ax
lea eax, [ebp - 0x236]
jmp 0x40542b
cmp dx, 9
je 0x40571d
cmp dx, 0xa
jne 0x4056cc
mov edi, 0x6e5c
add eax, 2
mov word [eax - 2], di
lea edi, [ebp - 0x116]
lea edx, [ecx - 1]
cmp eax, edi
ja 0x4054b5
test ecx, ecx
jle 0x4054b5
mov ecx, edx
movzx edx, word [esi]
add esi, 2
cmp dx, 0xd
je 0x405601
jbe 0x4053f0
cmp dx, 0x22
je 0x4057cb
cmp dx, 0x5c
jne 0x4057b4
mov ebx, 0x5c5c
add eax, 2
mov word [eax - 2], bx
jmp 0x405410
mov edx, str._null_
jmp 0x404bd6
call fcn.00401b70
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], str.argvW__d____s_n
mov dword [esp + 8], str.WinMain
mov dword [esp + 4], 0x407000
mov dword [esp], 3
call fcn.00401720
mov ecx, dword [ebp - 0x258]
mov edx, dword [ebp - 0x25c]
mov eax, dword [ecx + esi + 4]
mov dword [ebp - 0x2a4], eax
jmp 0x403635
mov byte [eax], 0x22
mov ebx, dword [ebp - 0x26c]
test edx, edx
jle 0x4058fc
mov ecx, 0x2e2e
mov byte [eax + 3], 0x2e
lea edx, [eax + 4]
mov word [eax + 1], cx
lea eax, [ebp - 0x238]
mov byte [edx], 0
mov dword [esp], eax
call fcn.00406670
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0x4080bb
mov dword [esp + 8], str.custom_action_server
mov dword [esp + 4], 0x407000
mov dword [esp], 3
call fcn.00401720
jmp 0x404d6a
mov eax, dword [ebp - 0x258]
mov eax, dword [eax + esi]
jmp 0x402ff9
call fcn.00401b70
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], str.argvW__d____s_n
mov dword [esp + 8], str.WinMain
mov dword [esp + 4], 0x407000
mov dword [esp], 3
call fcn.00401720
mov ecx, dword [ebp - 0x258]
mov edx, dword [ebp - 0x25c]
mov eax, dword [ecx + esi + 4]
mov dword [ebp - 0x2a4], eax
jmp 0x404805
mov eax, dword fs:[0x18]
cmp dword [eax + 0x34], 0x431
mov dword [ebp - 0x28c], 0
je 0x40491a
mov dword [esp], 2
call sub.ucrtbase.dll___acrt_iob_func
mov dword [esp + 4], str.Failed_to_create_MSI_service_n
mov dword [esp], eax
call fcn.00401670
mov eax, dword [ebp - 0x278]
mov dword [ebp - 0x28c], eax
jmp 0x40491a
call fcn.00405e80
mov dword [ebp - 0x28c], eax
jmp 0x402299
mov byte [ebp - 0x236], 0x22
mov eax, 0x224c
mov word [ebp - 0x238], ax
lea eax, [ebp - 0x236]
lea edx, [eax + 1]
jmp 0x404bc3
movzx eax, bx
mov dword [esp], str._04x
mov dword [esp + 4], eax
call fcn.00401b10
jmp 0x4054e7
mov ebx, 0x725c
add eax, 2
mov word [eax - 2], bx
jmp 0x405410
xor eax, eax
mov word [ebp - 0x2b6], ax
jmp 0x402010
lea ecx, [ebp - 0x258]
lea edx, [ebp - 0x25c]
mov eax, esi
call fcn.00401200
mov eax, dword [ebp - 0x274]
mov dword [esp + 8], esi
mov dword [esp + 4], 0
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call sub.kernel32.dll_HeapFree
mov eax, dword [ebp - 0x250]
sub esp, 0xc
mov dword [esp], eax
call sub.advapi32.dll_RegCloseKey
sub esp, 4
jmp 0x403314
test byte [section..data], 2
jne 0x4058a6
call sub.ole32.dll_CoUninitialize
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
mov dword [ebp - 0x28c], eax
jmp 0x402299
mov dword [esp + 0xc], str.Unknown_parameter__m_n
jmp 0x404d33
mov dword [esp], 2
call sub.ucrtbase.dll___acrt_iob_func
mov dword [esp + 4], str.Failed_to_open_the_service_control_manager._n
mov dword [esp], eax
call fcn.00401670
mov eax, dword [ebp - 0x278]
mov dword [ebp - 0x28c], eax
jmp 0x402299
mov edi, edx
mov byte [eax], 0x5c
add eax, 5
shr di, 0xc
movzx edi, di
movzx ebx, byte [edi + str.0123456789abcdef]
mov edi, edx
shr di, 8
and edi, 0xf
mov byte [eax - 4], bl
movzx ebx, byte [edi + str.0123456789abcdef]
mov edi, edx
and edx, 0xf
shr di, 4
movzx edx, byte [edx + str.0123456789abcdef]
and edi, 0xf
mov byte [eax - 3], bl
movzx ebx, byte [edi + str.0123456789abcdef]
mov byte [eax - 1], dl
mov byte [eax - 2], bl
jmp 0x405410
mov edx, 0x745c
add eax, 2
mov word [eax - 2], dx
jmp 0x405410
test byte [section..data], 2
je 0x405679
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
mov dword [esp + 0xc], str.Failed_to_read_from_custom_action_server_pipe:__u_n
mov dword [esp + 8], str.custom_action_server
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x407000
mov dword [esp], 1
call fcn.00401720
jmp 0x405679
test byte [section..data], 2
je 0x40567e
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
mov dword [esp + 0xc], str.Failed_to_create_custom_action_server_pipe:__u_n
mov dword [esp + 8], str.custom_action_server
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x407000
mov dword [esp], 1
call fcn.00401720
jmp 0x40567e
lea edi, [edx - 0x20]
cmp di, 0x5e
ja 0x4056cc
mov byte [eax], dl
add eax, 1
jmp 0x405410
mov edi, 0x225c
add eax, 2
mov word [eax - 2], di
jmp 0x405410
mov eax, 1
call fcn.004017b0
mov eax, dword fs:[0x18]
cmp dword [eax + 0x34], 0x424
mov dword [ebp - 0x28c], 0
je 0x405178
mov dword [esp], 2
call sub.ucrtbase.dll___acrt_iob_func
mov dword [esp + 4], str.Failed_to_open_MSI_service_n
mov dword [esp], eax
call fcn.00401670
mov eax, dword [ebp - 0x274]
mov dword [ebp - 0x28c], eax
jmp 0x405178
mov dword [esp], 2
call sub.ucrtbase.dll___acrt_iob_func
mov dword [esp + 4], str.Failed_to_open_service_control_manager_n
mov dword [esp], eax
call fcn.00401670
mov eax, dword [ebp - 0x274]
mov dword [ebp - 0x28c], eax
jmp 0x402299
xor eax, eax
call fcn.004017b0
mov dword [esp], 2
call sub.ucrtbase.dll___acrt_iob_func
mov dword [esp + 4], str.Failed_to_delete_MSI_service_n
mov dword [esp], eax
call fcn.00401670
mov eax, dword [ebp - 0x274]
mov dword [ebp - 0x278], eax
jmp 0x405161
mov dword [ebp - 0x270], 2
xor edx, edx
jmp 0x40526e
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
mov dword [esp + 0xc], str.Failed_to_write_to_custom_action_server_pipe:__u_n
mov dword [esp + 8], str.custom_action_server
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x407000
mov dword [esp], 1
call fcn.00401720
jmp 0x405679
mov eax, str._null_
jmp 0x4054e7
mov word [ebp - 0x238], 0x224c
lea eax, [ebp - 0x236]
mov byte [ebp - 0x236], 0x22
lea edx, [eax + 1]
jmp 0x4054d6
mov eax, ebx
call fcn.00401b70
mov dword [esp], 2
mov ebx, eax
call sub.ucrtbase.dll___acrt_iob_func
mov esi, dword [ebp - 0x2c4]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.Logging_in__s__0x_08x___u__failed_n
mov dword [esp + 0x10], esi
mov esi, dword [ebp - 0x2c0]
mov dword [esp], eax
mov dword [esp + 0xc], esi
call fcn.00401670
mov dword [esp], 1
call sub.kernel32.dll_ExitProcess
mov eax, dword [ebp - 0x258]
mov edx, 0x4081e9
mov eax, dword [eax + esi]
add eax, 4
call fcn.004013d0
test eax, eax
je 0x40597c
mov dword [ebp - 0x2a0], 0x85
mov edx, dword [ebp - 0x25c]
jmp 0x402010
mov eax, dword [ebp - 0x258]
mov edx, 0x40829b
mov eax, dword [eax + esi]
add eax, 4
call fcn.004013d0
test eax, eax
je 0x4059ab
mov dword [ebp - 0x2a0], 0x82
mov edx, dword [ebp - 0x25c]
jmp 0x402010
mov eax, dword [ebp - 0x258]
mov edx, 0x40829e
mov eax, dword [eax + esi]
add eax, 4
call fcn.00401520
test eax, eax
jne 0x405a03
mov eax, dword [ebp - 0x258]
mov eax, dword [eax + esi]
add eax, 4
call fcn.00401b70
mov dword [esp], 2
mov ebx, eax
call sub.ucrtbase.dll___acrt_iob_func
mov dword [esp + 8], ebx
mov dword [esp + 4], str.Unknown_option___s__for_UI_level_n
mov dword [esp], eax
call fcn.00401670
mov edx, dword [ebp - 0x25c]
jmp 0x402010
mov ecx, dword [ebp - 0x258]
mov ebx, dword [ecx + esi]
mov esi, 3
add ebx, 6
jmp 0x405a1c
or esi, 0x20
add ebx, 2
cmp word [ebx], 0
je 0x405a8a
mov edx, 0x4082a0
mov eax, ebx
call fcn.00401520
test eax, eax
je 0x405a38
or esi, 0x80
mov edx, 0x4082a2
mov eax, ebx
call fcn.00401520
test eax, eax
je 0x405a4b
or esi, 0x40
mov edx, 0x4082a4
mov eax, ebx
call fcn.00401520
test eax, eax
je 0x405a19
test byte [section..data], 1
je 0x405a16
mov dword [esp + 0xc], 0x4082a6
mov dword [esp + 8], str.WinMain
mov dword [esp + 4], 0x407000
mov dword [esp], 0
call fcn.00401720
jmp 0x405a16
mov dword [ebp - 0x2a0], esi
mov edx, dword [ebp - 0x25c]
jmp 0x402010