Function at 0x4ec353
Capabilities:
Inspect section memory permissions
Parse credit card information

Disassembly:
push ebp
sub esp, 0x70
mov eax, 0x576415
call fcn.00566e38
sub esp, 0xec
and dword [ebp + 0x28], 0
push ebx
push esi
mov ebx, ecx
push edi
mov dword [ebp - 0x14], ebx
mov esi, dword [ebp + 0x7c]
lea ecx, [ebp + 0x28]
and dword [ebp - 4], 0
push dword [esi + 4]
call fcn.00484693
mov eax, dword [esi + 4]
mov esi, dword [ebp + 0x28]
shl eax, 2
push eax
push 0
push esi
call sub.msvcrt.dll_memset
mov ecx, dword [ebx + 0x14]
xor edx, edx
add esp, 0xc
mov dword [ebp + 0x1c], ecx
cmp dword [ebx + 0xc8], edx
jbe 0x4ea186
mov eax, dword [ebx + 0xcc]
lea eax, [eax + edx*4]
mov edi, dword [eax + ecx]
mov eax, dword [ebp + 0x7c]
cmp edi, dword [eax + 4]
jae 0x4ea17d
mov ecx, dword [esi + edi*4]
mov eax, edx
and ecx, 0xfffffdf
shl eax, 0x1c
or ecx, eax
or ecx, 0x20
mov dword [esi + edi*4], ecx
mov ecx, dword [ebp + 0x1c]
inc edx
cmp edx, dword [ebx + 0xc8]
jb 0x4ea150
cmp dword [ebx + 0x7c], 0
je 0x4ea609
mov ecx, ebx
call fcn.004eccc2
push dword [ebx + 0x7c]
mov ecx, ebx
push str.PAGES
call fcn.004e9e9b
mov eax, dword [ebx + 0x7c]
cmp eax, 0x1000
ja 0x4ea5fd
mov ecx, dword [ebx + 0x34]
cmp dword [ebx + 0x78], ecx
ja 0x4ea5fd
sub ecx, dword [ebx + 0x78]
shl eax, 6
cmp eax, ecx
ja 0x4ea5fd
push 0x57edd0
mov ecx, ebx
call fcn.00401abc
mov eax, dword [ebx + 0x14]
add eax, dword [ebx + 0x78]
and dword [ebp + 0x40], 0
cmp dword [ebx + 0x7c], 0
mov dword [ebp + 0x18], eax
jbe 0x4ea609
mov ecx, dword [eax]
lea esi, [eax + 0x2c]
mov edx, dword [eax + 0xc]
lea edi, [ebp - 0x34]
mov dword [ebp - 0x10], ecx
mov ecx, dword [eax + 4]
mov dword [ebp + 0x1c], ecx
mov ecx, dword [eax + 8]
mov dword [ebp + 0x20], ecx
mov ecx, dword [eax + 0x10]
mov dword [ebp + 0x24], ecx
mov ecx, dword [eax + 0x14]
mov dword [ebp + 0x38], ecx
mov ecx, dword [eax + 0x18]
mov dword [ebp], ecx
mov ecx, dword [eax + 0x20]
mov eax, dword [ebp + 0x7c]
mov dword [ebp + 0x34], ecx
push 5
pop ecx
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp + 0x20]
mov esi, dword [ebp + 0x28]
mov dword [ebp + 0x3c], edx
test edi, edi
js 0x4ea259
cmp edi, dword [eax + 4]
jae 0x4ea259
mov ecx, dword [esi + edi*4]
mov eax, dword [ebp + 0x40]
and ecx, 0xf000ffff
shl eax, 0x10
or ecx, eax
push 4
pop eax
or ecx, eax
mov eax, dword [ebp + 0x7c]
mov dword [esi + edi*4], ecx
mov edi, dword [ebp + 0x40]
test edx, edx
js 0x4ea27b
cmp edx, dword [eax + 4]
jae 0x4ea27b
mov ecx, dword [esi + edx*4]
mov eax, edi
and ecx, 0xf000ffff
shl eax, 0x10
or ecx, eax
or ecx, 8
mov dword [esi + edx*4], ecx
mov edx, dword [ebp + 0x24]
test edx, edx
js 0x4ea2a2
mov eax, dword [ebp + 0x7c]
cmp edx, dword [eax + 4]
jae 0x4ea2a2
mov ecx, dword [esi + edx*4]
mov eax, edi
shl eax, 0x10
and ecx, 0xf000ffff
or ecx, eax
push 0x10
pop eax
or ecx, eax
mov dword [esi + edx*4], ecx
mov edi, dword [ebp + 0x1c]
cmp edi, 5
jne 0x4ea2b6
push 0x58a310
mov ecx, ebx
call fcn.004e6d5a
push str.Page
mov ecx, ebx
call fcn.004e6899
push dword [ebp + 0x40]
mov ecx, ebx
call fcn.004e7064
push 0x57edd0
mov ecx, ebx
call fcn.00401abc
mov eax, dword [ebp + 0x38]
and eax, 0x200
mov dword [ebp + 0x68], eax
je 0x4ea301
push str.PageEx
mov ecx, ebx
call fcn.00401abc
cmp byte [ebx + 0x17f], 0
jne 0x4ea31d
push 0x58a328
jmp 0x4ea316
cmp byte [ebx + 0x17f], 0
mov eax, str.Page
mov ecx, str.UninstPage
cmove eax, ecx
push eax
mov ecx, ebx
call fcn.00401abc
mov ecx, ebx
cmp edi, 7
jae 0x4ea332
push dword [edi*4 + 0x5897f0]
call fcn.00401abc
jmp 0x4ea338
push edi
call fcn.004e7064
mov eax, dword [ebp + 0x20]
test eax, eax
jns 0x4ea34f
cmp dword [ebp + 0x3c], 0
jge 0x4ea34f
cmp dword [ebp + 0x24], 0
jge 0x4ea34f
xor cl, cl
jmp 0x4ea352
xor ecx, ecx
inc ecx
cmp dword [ebp + 0x68], 0
mov byte [ebp + 0x4f], cl
je 0x4ea37e
push 0x57edd0
mov ecx, ebx
call fcn.00401abc
cmp byte [ebp + 0x4f], 0
je 0x4ea3ac
push str.PageCallbacks
mov ecx, ebx
call fcn.004ed031
mov eax, dword [ebp + 0x20]
jmp 0x4ea382
test cl, cl
je 0x4ea3c9
push eax
push esi
mov ecx, ebx
call fcn.004e6c0a
cmp edi, 6
je 0x4ea39b
push dword [ebp + 0x3c]
mov ecx, ebx
push esi
call fcn.004e6c0a
push dword [ebp + 0x24]
mov ecx, ebx
push esi
call fcn.004e6c0a
cmp dword [ebp + 0x68], 0
je 0x4ea3c9
push 0x57edd0
mov ecx, ebx
call fcn.00401abc
push str.Caption
push dword [ebp]
mov ecx, ebx
call fcn.004e6b72
jmp 0x4ea3e9
push 4
pop eax
test byte [ebp + 0x38], al
je 0x4ea3dd
push str.__ENABLECANCEL
mov ecx, ebx
call fcn.00401abc
push 0x57edd0
mov ecx, ebx
call fcn.00401abc
test edi, edi
jne 0x4ea4cc
test byte [ebp + 0x38], 0x60
je 0x4ea452
push str.LicenseForceSelection
mov ecx, ebx
call fcn.004ed031
test byte [ebp + 0x38], 0x40
mov ecx, ebx
je 0x4ea418
mov eax, 0x5804f0
push eax
call fcn.00401abc
jmp 0x4ea44b
mov eax, dword [ebp - 0x10]
cmp eax, 0x6d
jne 0x4ea427
push str.checkbox
jmp 0x4ea431
cmp eax, 0x6c
jne 0x4ea438
push str.radiobuttons
call fcn.00401abc
jmp 0x4ea43e
push eax
call fcn.004e7064
push 2
lea eax, [ebp - 0x2c]
mov ecx, ebx
push eax
call fcn.004e6b47
mov ecx, ebx
call fcn.004e8a12
cmp dword [ebp - 0x34], 0
jne 0x4ea45e
cmp dword [ebp + 0x34], 0
je 0x4ea48a
push str.LicenseText
mov ecx, ebx
call fcn.004ed031
push dword [ebp - 0x34]
mov ecx, ebx
call fcn.004e6be0
mov eax, dword [ebp + 0x34]
test eax, eax
je 0x4ea483
push eax
mov ecx, ebx
call fcn.004e6be0
mov ecx, ebx
call fcn.004e8a12
cmp dword [ebp - 0x30], 0
je 0x4ea5b1
push str.LicenseData
mov ecx, ebx
call fcn.004ed031
mov eax, dword [ebp - 0x30]
mov ecx, ebx
test eax, eax
jns 0x4ea4b1
push eax
call fcn.004e6be0
jmp 0x4ea4b9
push 0xffffffffffffffff
push eax
call fcn.004e68f9
and dword [ebx + 0xc0], 0
mov ecx, ebx
call fcn.004e8a12
jmp 0x4ea5b1
xor eax, eax
inc eax
cmp edi, eax
jne 0x4ea4df
push str.ComponentsText
push 3
jmp 0x4ea5a6
cmp edi, 2
jne 0x4ea549
push str.DirText
push 4
pop eax
push eax
lea eax, [ebp - 0x34]
mov ecx, ebx
push eax
call fcn.004e6b9b
cmp dword [ebp - 0x24], 0
je 0x4ea522
push str.DirVar
mov ecx, ebx
call fcn.004ed031
mov eax, dword [ebp - 0x24]
mov ecx, ebx
dec eax
push eax
call fcn.004e6c53
push 0x57edd0
mov ecx, ebx
call fcn.00401abc
test dword [ebp + 0x38], 0x400
je 0x4ea5b1
push str.DirVerify_leave
mov ecx, ebx
call fcn.004ed031
push 0x57edd0
mov ecx, ebx
call fcn.00401abc
jmp 0x4ea5b1
cmp edi, 3
jne 0x4ea56e
push str.CompletedText
push dword [ebp - 0x2c]
mov ecx, ebx
call fcn.004e6b72
push str.DetailsButtonText
push dword [ebp - 0x30]
mov ecx, ebx
call fcn.004e6b72
jmp 0x4ea5b1
push 4
pop eax
cmp edi, eax
jne 0x4ea5b1
cmp dword [ebp - 0x24], 0
je 0x4ea59f
push str.DirVar
mov ecx, ebx
call fcn.004ed031
mov eax, dword [ebp - 0x24]
mov ecx, ebx
dec eax
push eax
call fcn.004e6c53
push 0x57edd0
mov ecx, ebx
call fcn.00401abc
push str.UninstallText
push 2
lea eax, [ebp - 0x34]
mov ecx, ebx
push eax
call fcn.004e6b9b
cmp dword [ebp + 0x68], 0
je 0x4ea5ca
push str.PageExEnd
mov ecx, ebx
call fcn.00401abc
mov ecx, ebx
call fcn.004e8a12
cmp edi, 5
jne 0x4ea5db
push 0x58a314
mov ecx, ebx
call fcn.004e6d5a
mov ecx, ebx
call fcn.004e8a12
mov ecx, dword [ebp + 0x40]
mov eax, dword [ebp + 0x18]
inc ecx
add eax, 0x40
mov dword [ebp + 0x40], ecx
mov dword [ebp + 0x18], eax
cmp ecx, dword [ebx + 0x7c]
jb 0x4ea1f1
jmp 0x4ea609
push str.Pages_error
mov ecx, ebx
call fcn.004e68dd
and dword [ebp + 0x2c], 0
mov ecx, ebx
mov byte [ebp - 4], 1
call fcn.004eccc2
push dword [ebx + 0x84]
mov ecx, ebx
push str.SECTIONS
call fcn.004e9e9b
mov eax, dword [ebp + 0x7c]
mov ecx, ebx
push dword [eax + 4]
push str.COMMANDS
call fcn.004e9e9b
push 0x57edd0
mov ecx, ebx
call fcn.00401abc
mov eax, dword [ebx + 0x84]
cmp eax, 0x8000
jbe 0x4ea663
push str.Sections_error
mov ecx, ebx
call fcn.004e68dd
jmp 0x4ea6c1
test eax, eax
je 0x4ea6c1
push eax
lea ecx, [ebp + 0x2c]
call fcn.004e70b3
mov edi, dword [ebx + 0x80]
add edi, dword [ebx + 0x14]
and dword [ebp + 0x3c], 0
cmp dword [ebx + 0x84], 0
jbe 0x4ea6c1
mov eax, dword [ebp + 0x2c]
mov dword [ebp + 0x34], eax
push edi
mov ecx, eax
call fcn.004e9e72
mov eax, dword [ebp + 0x34]
mov edx, dword [ebp + 0x7c]
mov ecx, dword [eax + 8]
cmp ecx, dword [edx + 4]
jae 0x4ea6a6
or dword [esi + ecx*4], 0x40
mov ecx, dword [ebp + 0x3c]
add eax, 0x18
add edi, dword [ebx + 0xa4]
inc ecx
mov dword [ebp + 0x3c], ecx
mov dword [ebp + 0x34], eax
cmp ecx, dword [ebx + 0x84]
jb 0x4ea68c
mov eax, dword [ebp + 0x7c]
mov edi, dword [ebx + 0x14]
and dword [ebp + 0x3c], 0
mov ecx, dword [eax + 4]
add edi, dword [eax]
mov dword [ebp + 0x34], ecx
test ecx, ecx
je 0x4ea78d
push dword [edi]
mov ecx, ebx
call fcn.004e78d2
cmp eax, 0x16
ja 0x4ea726
je 0x4ea722
dec eax
sub eax, 1
je 0x4ea71b
sub eax, 3
je 0x4ea705
sub eax, 7
je 0x4ea738
dec eax
sub eax, 1
jne 0x4ea76d
push 3
jmp 0x4ea742
xor ecx, ecx
inc ecx
cmp dword [edi + 8], ecx
je 0x4ea71e
mov eax, dword [edi + 4]
test eax, eax
jle 0x4ea76d
or dword [esi + eax*4 - 4], 2
jmp 0x4ea76d
xor ecx, ecx
inc ecx
mov eax, ecx
jmp 0x4ea746
push 0x28
jmp 0x4ea742
push 0x1a
pop ecx
sub eax, ecx
je 0x4ea740
dec eax
sub eax, 1
je 0x4ea73c
sub eax, 6
jne 0x4ea76d
push 6
jmp 0x4ea742
push 0x1c
jmp 0x4ea742
push 0xc
xor ecx, ecx
inc ecx
pop eax
mov ebx, dword [ebp + 0x7c]
lea edx, [edi + 4]
test cl, al
je 0x4ea763
mov ecx, dword [edx]
test ecx, ecx
jle 0x4ea760
cmp ecx, dword [ebx + 4]
jg 0x4ea760
or dword [esi + ecx*4 - 4], 1
xor ecx, ecx
inc ecx
add edx, 4
shr eax, 1
jne 0x4ea74c
mov ebx, dword [ebp - 0x14]
mov eax, dword [ebp + 0x3c]
push 0x1c
pop ecx
add edi, ecx
inc eax
mov ecx, dword [ebp + 0x7c]
mov dword [ebp + 0x3c], eax
mov ecx, dword [ecx + 4]
mov dword [ebp + 0x34], ecx
cmp eax, ecx
jb 0x4ea6db
mov eax, dword [ebp + 0x7c]
mov edx, dword [ebx + 0x14]
xor edi, edi
add edx, dword [eax]
or dword [ebp - 0x44], 0xffffffff
or dword [ebp - 0x10], 0xffffffff
mov dword [ebp + 0x3c], edx
test ecx, ecx
je 0x4ea7f2
mov eax, dword [esi + edi*4]
mov dword [ebp + 0x1c], eax
test al, 0x3e
je 0x4ea7cf
mov eax, ecx
sub eax, edi
cmp eax, 0xe
jb 0x4ea7cf
push 0xe
push 0x589838
push edx
mov ecx, ebx
call fcn.004e7286
test al, al
jne 0x4ea7de
mov ecx, dword [ebp + 0x34]
mov edx, dword [ebp + 0x3c]
push 0x1c
pop eax
inc edi
add edx, eax
mov dword [ebp + 0x3c], edx
cmp edi, ecx
jb 0x4ea7a3
jmp 0x4ea7f2
lea eax, [edi + 0xe]
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 0x1c]
or eax, 0x80
mov dword [esi + edi*4], eax
or dword [ebp + 0x10], 0xffffffff
xor ecx, ecx
mov edi, ecx
mov byte [ebp + 0x6f], cl
mov byte [ebp + 0x4f], cl
mov dword [ebp - 0x48], ecx
mov dword [ebp + 0x38], ecx
mov ecx, ebx
mov dword [ebp + 0x30], edi
call fcn.004e80c3
lea ecx, [ebp - 0xb0]
mov dword [ebp - 0x90], eax
call fcn.004025e6
lea ecx, [ebp - 0xbc]
mov byte [ebp - 4], 2
call fcn.00402365
push str._INSTDIR
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 3
call fcn.0040256d
mov esi, eax
push 4
pop eax
lea ecx, [ebx + 0x198]
mov byte [ebp - 4], al
call fcn.0040393c
push esi
lea ecx, [ebx + 0x198]
call fcn.00402b2f
push dword [ebp - 0x60]
mov byte [ebp - 4], 3
call fcn.00566e0e
lea ecx, [ebp - 0x60]
mov dword [esp], str._INSTDIR
call fcn.00402337
mov esi, eax
lea ecx, [ebx + 0x1a4]
mov byte [ebp - 4], 5
call fcn.0040393c
push esi
lea ecx, [ebx + 0x1a4]
call fcn.00433b61
push dword [ebp - 0x60]
mov byte [ebp - 4], 3
call fcn.00566e0e
mov eax, dword [ebp + 0x7c]
mov esi, dword [ebx + 0x14]
pop ecx
push 0x1f
add esi, dword [eax]
cmp byte [ebx + 0x55], 0
pop ecx
push 0x1d
pop edx
cmovne ecx, edx
mov dword [ebp + 0x44], esi
xor edx, edx
mov dword [ebp + 0x24], ecx
mov dword [ebp + 0x48], edx
cmp dword [eax + 4], edx
jbe 0x4eca29
push dword [esi]
mov ecx, ebx
call fcn.004e78d2
push 6
mov dword [ebp + 0x68], eax
lea edi, [ebp + 0x50]
mov eax, dword [ebp + 0x30]
add esi, 4
pop ecx
rep movsd dword es:[edi], dword [esi]
mov byte [ebp + 0x6e], 0
cmp eax, dword [ebx + 0x84]
jae 0x4ea953
imul esi, eax, 0x18
mov edi, eax
mov al, byte [ebp + 0x6f]
add esi, dword [ebp + 0x2c]
test al, al
je 0x4ea91e
mov eax, dword [esi + 8]
inc eax
add eax, dword [esi + 0xc]
cmp eax, dword [ebp + 0x48]
jne 0x4ea950
mov ecx, ebx
call fcn.004ea0de
xor al, al
inc edi
add esi, 0x18
jmp 0x4ea945
mov eax, dword [ebp + 0x48]
cmp dword [esi + 8], eax
jne 0x4ea950
push edi
push esi
mov ecx, ebx
call fcn.004e9ece
test al, al
je 0x4ea942
xor eax, eax
inc eax
inc edi
mov byte [ebp + 0x6e], al
add esi, 0x18
mov al, byte [ebp + 0x6f]
jmp 0x4ea948
xor eax, eax
inc eax
mov byte [ebp + 0x6f], al
cmp edi, dword [ebx + 0x84]
jb 0x4ea8ff
mov dword [ebp + 0x30], edi
mov esi, dword [ebp + 0x28]
mov ecx, dword [ebp + 0x48]
mov edi, dword [ebp + 0x2c]
mov eax, dword [esi + ecx*4]
mov dword [ebp + 0x70], eax
test eax, eax
je 0x4eaa46
cmp eax, 0x40
je 0x4eaa46
test al, 0x3e
je 0x4eaa25
cmp ecx, dword [ebp - 0x44]
jne 0x4ea98c
push 0x58a310
mov ecx, ebx
call fcn.004e6d5a
xor eax, eax
mov ecx, ebx
inc eax
push str.Function
mov byte [ebp + 0x4f], al
call fcn.00401abc
push dword [ebp + 0x48]
mov ecx, ebx
push esi
call fcn.004e6e52
test byte [ebp + 0x70], 0x1c
je 0x4eaa13
push 0x58a2f8
mov ecx, ebx
call fcn.00401abc
push str.Page
mov ecx, ebx
call fcn.00401abc
mov eax, dword [ebp + 0x70]
mov ecx, ebx
shr eax, 0x10
and eax, 0xfff
push eax
call fcn.004e7064
mov eax, dword [ebp + 0x70]
test al, 0x10
je 0x4ea9f0
push str.__Leave
mov ecx, ebx
call fcn.00401abc
mov eax, dword [ebp + 0x70]
test al, 4
je 0x4eaa03
push str.__Pre
mov ecx, ebx
call fcn.00401abc
mov eax, dword [ebp + 0x70]
test al, 8
je 0x4eaa13
push str.__Show
mov ecx, ebx
call fcn.00401abc
push 0x57edd0
mov ecx, ebx
call fcn.00401abc
mov eax, dword [ebp + 0x70]
mov ecx, dword [ebp + 0x48]
test al, 1
je 0x4eaa46
push ecx
mov ecx, ebx
call fcn.004e6f10
push 0x3a
mov ecx, ebx
call fcn.00401a43
push 0x57edd0
mov ecx, ebx
call fcn.00401abc
mov ecx, dword [ebp + 0x68]
xor eax, eax
inc eax
cmp ecx, eax
je 0x4eaa67
mov eax, dword [ebp + 0x38]
mov ecx, ebx
cmp dword [ebp + 0x48], eax
setb al
movzx eax, al
push eax
call fcn.004ed016
mov ecx, dword [ebp + 0x68]
xor eax, eax
mov dword [ebp + 0x70], eax
cmp ecx, 0x4a
jae 0x4eaa9b
cmp ecx, dword [ebp - 0x90]
jae 0x4eaa9b
movzx eax, byte [ecx + 0x5893f8]
mov dword [ebp + 0x70], eax
mov eax, dword [ecx*4 + 0x589448]
test eax, eax
je 0x4eaac0
push eax
mov ecx, ebx
call fcn.00401abc
mov ecx, dword [ebp + 0x68]
jmp 0x4eaac0
push str.Command
mov ecx, ebx
call fcn.00401abc
mov eax, dword [ebp + 0x68]
mov ecx, ebx
push eax
call fcn.004e7064
mov ecx, dword [ebp + 0x68]
mov eax, 0x1000
cmp ecx, eax
jae 0x4eaac0
add ecx, eax
lea eax, [ecx - 1]
cmp eax, 0x46
ja case.0x4eaacc.4
jmp dword [eax*4 + 0x4ecad5]
mov eax, dword [ebp + 0x54]
test eax, eax
setne cl
mov byte [ebp + 0x6e], cl
test eax, eax
je 0x4eaba5
mov edi, dword [ebp + 0x50]
lea eax, [ebp - 0x94]
push eax
push edi
mov ecx, ebx
call fcn.004e86cd
mov esi, eax
cmp esi, dword [ebp + 0x24]
je 0x4eab04
cmp esi, 0x16
jne 0x4eab0a
add edi, dword [ebp - 0x94]
push edi
mov ecx, ebx
call fcn.004ecc52
cmp byte [ebx + 0x28], 0
je 0x4eab5e
cmp esi, dword [ebp + 0x24]
jne 0x4eab26
lea eax, [ebp - 0xb0]
push eax
jmp 0x4eab3a
cmp esi, 0x16
jne 0x4eab44
lea eax, [ebx + 0x198]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
push dword [eax + ecx*4 - 4]
push 0
lea ecx, [ebx + 0x44]
call fcn.004031e5
lea esi, [ebx + 0x198]
mov ecx, esi
call fcn.0040393c
lea eax, [ebx + 0x44]
mov ecx, esi
push eax
call fcn.00402b2f
jmp 0x4eaba2
cmp esi, dword [ebp + 0x24]
jne 0x4eab6c
lea eax, [ebp - 0xbc]
push eax
jmp 0x4eab80
cmp esi, 0x16
jne 0x4eab8a
lea eax, [ebx + 0x1a4]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
push dword [eax + ecx*4 - 4]
push 0
lea ecx, [ebx + 0x38]
call fcn.0040316f
lea esi, [ebx + 0x1a4]
mov ecx, esi
call fcn.0040393c
lea eax, [ebx + 0x38]
mov ecx, esi
push eax
call fcn.00433b61
mov cl, byte [ebp + 0x6e]
test cl, cl
mov edx, str.CreateDirectory
mov eax, str.SetOutPath
mov ecx, ebx
cmove eax, edx
push eax
call fcn.00401abc
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6be0
cmp dword [ebp + 0x58], 0
je 0x4eabe4
push 0x58a300
mov ecx, ebx
call fcn.00401abc
push str.CreateRestrictedDirectory
mov ecx, ebx
call fcn.00401abc
mov ecx, dword [ebp + 0x70]
push 4
pop edx
push 6
pop edi
lea eax, [ebp + 0x64]
cmp dword [eax], 0
jne 0x4eabfc
sub eax, edx
sub edi, 1
jne 0x4eabf0
cmp edi, ecx
jbe 0x4ec9c4
push str.________Unknown_Params:
mov ecx, ebx
call fcn.00401abc
xor esi, esi
test edi, edi
je 0x4eac26
push dword [ebp + esi*4 + 0x50]
mov ecx, ebx
call fcn.004e6be0
inc esi
cmp esi, edi
jb 0x4eac16
push 0x58ab88
mov ecx, ebx
call fcn.00401abc
xor esi, esi
test edi, edi
je 0x4ec9c4
push 0x20
mov ecx, ebx
call fcn.00401a43
mov eax, dword [ebp + esi*4 + 0x50]
cmp eax, 0xfff00000
jbe 0x4ec9b3
cdq
lea ecx, [ebp - 0x8c]
push edx
push eax
call fcn.00401be3
lea eax, [ebp - 0x8c]
mov ecx, ebx
push eax
call fcn.00401abc
jmp 0x4ec9bb
mov eax, dword [ebp + 0x24]
mov edi, dword [ebp + 0x5c]
mov esi, dword [ebp + 0x58]
cmp dword [ebp + 0x50], eax
jne 0x4eacf7
mov eax, dword [ebp - 0xb0]
xor ecx, ecx
and dword [ebp - 0xac], 0
push 0x16
push dword [ebp + 0x54]
mov word [eax], cx
mov eax, dword [ebp - 0xbc]
and dword [ebp - 0xb8], ecx
mov byte [eax], cl
mov ecx, ebx
call fcn.004e88cb
test al, al
je 0x4eacf7
test esi, esi
jne 0x4ead57
test edi, edi
jne 0x4ead57
lea eax, [ebx + 0x198]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
push dword [eax + ecx*4 - 4]
lea ecx, [ebp - 0xb0]
call fcn.00402707
lea eax, [ebx + 0x1a4]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
push dword [eax + ecx*4 - 4]
lea ecx, [ebp - 0xbc]
call fcn.00402633
test esi, esi
jne 0x4ead57
test edi, edi
jne 0x4ead57
cmp dword [ebp + 0x60], edi
jne 0x4ead57
cmp dword [ebp + 0x64], edi
jne 0x4ead57
mov eax, dword [ebp + 0x54]
test eax, eax
je 0x4ead57
cmp eax, dword [ebx + 0x30]
jae 0x4ead57
mov ecx, dword [ebp + 0x48]
lea edx, [ebp - 0x30]
lea ecx, [ecx + 1]
call fcn.00401c5c
lea eax, [ebp - 0x30]
mov ecx, ebx
push eax
push dword [ebp + 0x54]
call fcn.004e87f7
test al, al
je 0x4ead57
push str.GetCurrentAddress
mov ecx, ebx
call fcn.00401abc
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6c53
push 0x58a300
mov ecx, ebx
call fcn.00401abc
push str.StrCpy
mov ecx, ebx
call fcn.00401abc
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6c53
push dword [ebp + 0x54]
mov ecx, ebx
call fcn.004e6be0
push 2
lea eax, [ebp + 0x58]
push eax
mov ecx, ebx
call fcn.004e6b47
jmp 0x4eabe4
lea ecx, [ebx + 0x1c]
call fcn.004e6abf
push dword [ebp + 0x54]
mov esi, eax
mov ecx, ebx
push esi
mov dword [ebp + 0x14], esi
call fcn.004ecce8
mov ecx, dword [ebp + 0x58]
mov eax, dword [ebp + 0x60]
mov dword [esi + 0xc], ecx
mov ecx, dword [ebp + 0x5c]
mov dword [esi + 0x28], ecx
mov ecx, dword [ebp + 0x50]
mov dword [esi + 0x2c], eax
mov esi, ecx
and esi, 7
mov dword [ebp + 0x68], ecx
cmp esi, dword [ebp - 0x48]
je 0x4eae04
push str.SetOverwrite
mov ecx, ebx
call fcn.00401abc
push esi
push 5
push 0x589824
mov ecx, ebx
call fcn.004e7034
push 0x57edd0
mov ecx, ebx
mov dword [ebp - 0x48], esi
call fcn.00401abc
mov eax, dword [ebp + 0x38]
mov ecx, ebx
cmp dword [ebp + 0x48], eax
setb al
movzx eax, al
push eax
call fcn.004ed016
mov ecx, dword [ebp + 0x68]
mov edx, dword [ebp + 0x10]
shr ecx, 3
mov dword [ebp + 0x68], ecx
cmp ecx, edx
je 0x4eaed3
mov edi, ecx
mov dword [ebp + 0x10], ecx
mov esi, ecx
mov eax, ecx
and edi, 0xfffff
shr esi, 0x15
shr eax, 0x14
cmp edi, 0x12
jne 0x4eae3e
cmp esi, 5
je 0x4eae39
cmp eax, 5
jne 0x4eae56
or esi, 0xffffffff
jmp 0x4eae50
cmp edi, 0x15
jne 0x4eae56
cmp esi, 2
je 0x4eae4d
cmp eax, 2
jne 0x4eae56
push 0xfffffffffffffffe
pop esi
cmp esi, edx
je 0x4eaed0
jmp 0x4eae85
push str.AllowSkipFiles__Overwrite_:
mov ecx, ebx
call fcn.004e6899
push edi
mov ecx, ebx
call fcn.004e88f4
test esi, esi
je 0x4eae82
push str.__SD
mov ecx, ebx
call fcn.00401abc
push esi
mov ecx, ebx
call fcn.004e6d76
mov esi, dword [ebp + 0x10]
test esi, esi
jns 0x4eaead
push str.AllowSkipFiles
mov ecx, ebx
call fcn.00401abc
cmp esi, 0xffffffff
mov ecx, 0x5804f0
mov eax, 0x5804ec
cmovne eax, ecx
mov ecx, ebx
push eax
call fcn.00401abc
push 0x57edd0
mov ecx, ebx
call fcn.00401abc
mov eax, dword [ebp + 0x38]
mov ecx, ebx
cmp dword [ebp + 0x48], eax
setb al
movzx eax, al
push eax
call fcn.004ed016
mov ecx, dword [ebp + 0x68]
mov dword [ebp + 0x10], ecx
push 0x58a644
mov ecx, ebx
call fcn.00401abc
push dword [ebp + 0x54]
mov ecx, ebx
call fcn.004e6be0
push 0xa
push dword [ebp + 0x54]
mov ecx, ebx
call fcn.004e88cb
test al, al
je 0x4eabe4
mov ecx, dword [ebp + 0x48]
xor edx, edx
inc edx
push 0x1c
cmp ecx, edx
mov edx, dword [ebp + 0x44]
pop eax
jbe 0x4eaf17
cmp dword [edx - 0x1c], 2
push 0x1a
pop esi
cmove eax, esi
cmp ecx, eax
jbe 0x4eabe4
imul eax, eax, 0x1c
mov esi, edx
sub esi, eax
cmp dword [esi], 0x19
jne 0x4eabe4
push 6
add esi, 4
lea edi, [ebp - 0x84]
pop ecx
rep movsd dword es:[edi], dword [esi]
cmp dword [ebp - 0x84], 0xe
jne 0x4eabe4
cmp dword [ebp - 0x7c], 0
jne 0x4eabe4
cmp dword [ebp - 0x78], 0
jne 0x4eabe4
mov ecx, dword [ebp + 0x14]
xor edx, edx
push dword [ebp - 0x80]
push ecx
mov eax, dword [ecx + 0x30]
or dword [ecx + 0x24], 0xffffffff
mov dword [ecx + 0x34], edx
mov byte [eax], dl
mov eax, dword [ecx + 0x3c]
mov dword [ecx + 0x40], edx
mov ecx, ebx
mov word [eax], dx
call fcn.004ecce8
jmp 0x4eabe4
cmp dword [ebp + 0x48], 0
mov esi, dword [ebp + 0x54]
mov edx, dword [ebp + 0x50]
jbe 0x4eafb5
mov eax, dword [ebp + 0x44]
cmp dword [eax - 0x1c], 0x14
jne 0x4eafb5
cmp edx, dword [eax - 0x14]
jne 0x4eafb5
mov ecx, dword [ebx + 0x20]
mov eax, dword [ebx + 0x1c]
mov eax, dword [eax + ecx*4 - 4]
xor ecx, ecx
inc ecx
mov byte [eax + 5], cl
mov dword [eax + 8], esi
push edx
mov ecx, ebx
call fcn.004e6be0
push 0x20
mov ecx, ebx
call fcn.00401a43
push esi
push 0x11
mov edx, 0x5896a0
mov ecx, ebx
call fcn.004e7837
jmp 0x4eabe4
mov esi, dword [ebp + 0x50]
test esi, esi
je 0x4eb0ba
push esi
mov ecx, ebx
call fcn.004e883b
test al, al
je 0x4eb0ba
mov edi, dword [ebp + 0x5c]
xor eax, eax
inc eax
mov byte [ebp + 0x6e], al
test edi, edi
je 0x4eb02e
and dword [ebp + 0x68], 0
lea eax, [ebp + 0x68]
push eax
push 0x5c
push edi
mov ecx, ebx
mov byte [ebp + 0x6e], 0
call fcn.004e8711
cmp eax, 0x15
jne 0x4eb02e
mov eax, dword [ebp + 0x68]
mov ecx, ebx
push esi
add eax, edi
push eax
call fcn.004e70fa
mov byte [ebp + 0x6e], al
push esi
mov ecx, ebx
call fcn.004e6be0
test edi, edi
je 0x4eb04e
push 0x58a300
mov ecx, ebx
call fcn.00401abc
push edi
mov ecx, ebx
call fcn.004e6be0
cmp byte [ebp + 0x6e], 0
jne 0x4eb060
push str.alt_path_error
mov ecx, ebx
call fcn.004e68b5
cmp dword [ebx + 0x58], 0x3e
ja 0x4eb077
push str.SKIP_possible_BadCmd
mov ecx, ebx
call fcn.004e68b5
jmp 0x4eabe4
lea ecx, [ebx + 0x1c]
call fcn.004e6abf
push dword [ebp + 0x50]
mov esi, eax
mov ecx, ebx
push esi
call fcn.004ecce8
mov ecx, dword [ebp + 0x54]
xor eax, eax
inc eax
mov dword [esi + 0xc], ecx
mov ecx, dword [ebp + 0x58]
mov dword [esi + 0x20], ecx
mov byte [esi + 6], al
test edi, edi
je 0x4eb0b1
cmp dword [esi + 0x24], 0xffffffff
je 0x4eb0b1
push edi
push esi
mov ecx, ebx
call fcn.004ecce8
or dword [esi + 0x24], 0xffffffff
jmp 0x4eabe4
push str.bad_path
jmp 0x4eb06b
cmp byte [ebp + 0x4f], 0
mov edx, dword [ebp + 0x48]
je 0x4eb11a
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax + 4]
dec eax
cmp edx, eax
je 0x4eb0e4
mov eax, dword [esi + edx*4 + 4]
test eax, eax
je 0x4eb11a
xor ecx, ecx
inc ecx
cmp eax, ecx
je 0x4eb11a
push str.FunctionEnd
mov ecx, ebx
call fcn.004e6d5a
mov eax, dword [ebp + 0x48]
inc eax
cmp eax, dword [ebp - 0x10]
jne 0x4eb105
push 0x58a314
mov ecx, ebx
call fcn.004e6d5a
push 0x57edd0
mov ecx, ebx
call fcn.00401abc
mov byte [ebp + 0x4f], 0
jmp 0x4eabe4
cmp byte [ebp + 0x6e], 0
jne 0x4eabe4
cmp byte [ebp + 0x6f], 0
je 0x4eb150
mov esi, dword [ebp + 0x30]
imul ecx, esi, 0x18
mov eax, dword [ecx + edi + 0xc]
add eax, dword [ecx + edi + 8]
cmp eax, edx
jne 0x4eb150
mov ecx, ebx
call fcn.004ea0de
inc esi
mov byte [ebp + 0x6f], 0
mov dword [ebp + 0x30], esi
jmp 0x4eabe4
push str.Return
mov ecx, ebx
call fcn.004ed031
push 0x57edd0
jmp 0x4eabdd
cmp dword [ebp + 0x50], 0
mov ecx, ebx
jne 0x4eb178
push 0x58a694
jmp 0x4eabdf
push str.Goto
call fcn.00401abc
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6ec3
jmp 0x4eabe4
cmp dword [ebp + 0x50], 0
je 0x4eabe4
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6be0
jmp 0x4eabe4
mov edi, dword [ebp + 0x48]
mov ecx, dword [ebp + 0x7c]
lea eax, [edi + 1]
cmp eax, dword [ecx + 4]
jae 0x4eb3b2
mov edx, dword [ebp + 0x44]
mov ecx, ebx
push dword [edx + 0x1c]
call fcn.004e78d2
cmp eax, 0x14
jne 0x4eb3b2
and dword [ebp + 0x68], 0
lea eax, [ebp + 0x68]
push eax
mov eax, dword [ebp + 0x44]
mov ecx, ebx
push 0x5c
push dword [eax + 0x24]
call fcn.004e8711
push 0x1a
pop ecx
cmp eax, ecx
jne 0x4eb3b2
mov ecx, dword [ebp + 0x44]
mov eax, dword [ebp + 0x68]
add eax, dword [ecx + 0x24]
push dword [ecx + 0x38]
mov ecx, ebx
mov dword [ebp + 0x14], eax
call fcn.004e78d2
cmp eax, 0xd
je 0x4eb218
cmp eax, 6
jne 0x4eb3b2
mov ecx, dword [ebp + 0x7c]
lea eax, [edi + 3]
mov dword [ebp + 0x68], eax
cmp eax, dword [ecx + 4]
jae 0x4eb3b2
mov edi, dword [ebp + 0x44]
mov esi, eax
add edi, 0x60
push dword [edi - 0xc]
mov ecx, ebx
call fcn.004e78d2
cmp eax, 0x1f
jne 0x4eb25a
cmp dword [edi - 4], 0
jne 0x4eb25a
cmp dword [edi], 0
jne 0x4eb25a
push 0x1c
pop eax
add edi, eax
inc esi
mov eax, dword [ebp + 0x7c]
cmp esi, dword [eax + 4]
jb 0x4eb232
mov ecx, dword [ebp + 0x7c]
mov edi, dword [ebp + 0x48]
mov dword [ebp + 0x68], esi
mov eax, dword [ebp + 0x68]
mov esi, dword [ebp + 0x28]
cmp eax, dword [ecx + 4]
jae 0x4eb3b2
sub eax, edi
mov ecx, ebx
imul edi, eax, 0x1c
add edi, dword [ebp + 0x44]
push dword [edi]
call fcn.004e78d2
cmp eax, 0x2c
jne 0x4eb3b2
mov eax, dword [ebp + 0x44]
mov ecx, ebx
push dword [eax + 0x24]
push dword [edi + 4]
call fcn.004e70fa
test al, al
je 0x4eb3b2
cmp dword [edi + 0xc], 0
jne 0x4eb3b2
lea ecx, [ebp - 0x20]
call fcn.00402365
push dword [ebp + 0x14]
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 6
push eax
mov ecx, ebx
call fcn.004ecbf1
mov ecx, dword [ebp - 0x1c]
push 4
pop eax
cmp ecx, eax
jb 0x4eb2fa
add ecx, 0xfffffffc
mov edx, str..dll
add ecx, dword [ebp - 0x20]
call fcn.00403dcc
test al, al
je 0x4eb2fa
mov eax, dword [ebp - 0x1c]
lea ecx, [eax - 4]
cmp ecx, eax
jae 0x4eb2fa
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x1c], ecx
mov byte [eax + ecx], 0
push 0x58a6a8
lea ecx, [ebp - 0x20]
call fcn.00402a01
lea ecx, [ebp - 0x60]
call fcn.00402365
push dword [edi + 8]
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 7
push eax
mov ecx, ebx
call fcn.004ecbf1
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp - 0x20]
call fcn.004029d3
lea eax, [ebp - 0x20]
mov ecx, ebx
push eax
call fcn.004e6f97
xor eax, eax
inc eax
cmp dword [edi + 0x10], eax
jne 0x4eb34c
push str.__NOUNLOAD
mov ecx, ebx
call fcn.00401abc
mov edx, dword [ebp + 0x48]
mov edi, dword [ebp + 0x68]
dec edi
lea ecx, [edx + 3]
cmp edi, ecx
jb 0x4eb382
mov esi, dword [ebp + 0x44]
mov eax, edi
sub eax, edx
add esi, 4
imul eax, eax, 0x1c
sub edi, ecx
add esi, eax
inc edi
push dword [esi]
mov ecx, ebx
call fcn.004e6be0
push 0x1c
pop eax
sub esi, eax
sub edi, 1
jne 0x4eb36c
mov esi, dword [ebp + 0x28]
mov ecx, ebx
call fcn.004e8a12
push 0x58a2f8
mov ecx, ebx
call fcn.00401abc
mov eax, dword [ebp + 0x68]
push dword [ebp - 0x60]
inc eax
mov dword [ebp + 0x38], eax
call fcn.00566e0e
push dword [ebp - 0x20]
mov byte [ebp - 4], 3
call fcn.00566e0e
pop ecx
pop ecx
mov eax, dword [ebp + 0x44]
mov ecx, ebx
push dword [eax + 0x1c]
call fcn.004e78d2
mov edi, dword [ebp + 0x50]
cmp eax, 0xd
jne 0x4eb40e
mov eax, dword [ebp + 0x44]
cmp dword [eax + 0x20], 0xd
jne 0x4eb40e
cmp dword [eax + 0x28], 0
je 0x4eb40e
test edi, edi
jle 0x4eb40e
test byte [esi + edi*4 - 4], 0x80
je 0x4eb40e
push str.InitPluginsDir
mov ecx, ebx
call fcn.00401abc
push 0x57edd0
mov ecx, ebx
call fcn.00401abc
push 0x58a2f8
mov ecx, ebx
call fcn.00401abc
mov eax, dword [ebp + 0x48]
add eax, 2
mov dword [ebp + 0x38], eax
push str.Call
mov ecx, ebx
call fcn.00401abc
test edi, edi
jns 0x4eb430
or eax, 0xffffffff
mov ecx, ebx
sub eax, edi
push eax
call fcn.004e7088
jmp 0x4eabe4
jne 0x4eb440
push 0x30
mov ecx, ebx
call fcn.00401a43
jmp 0x4eabe4
xor eax, eax
dec edi
inc eax
mov ecx, ebx
cmp dword [ebp + 0x54], eax
jne 0x4eb45f
push 0x3a
call fcn.00401a43
push edi
mov ecx, ebx
call fcn.004e6f10
jmp 0x4eabe4
push edi
push esi
call fcn.004e6e52
jmp 0x4eabe4
cmp dword [ebp + 0x50], 8
jne 0x4eb481
cmp dword [ebp + 0x54], 0
jne 0x4eb481
push str._show
jmp 0x4eabdd
cmp dword [ebp + 0x54], 8
jne 0x4eb497
cmp dword [ebp + 0x50], 0
jne 0x4eb497
push str._hide
jmp 0x4eabdd
xor esi, esi
push 0x20
mov ecx, ebx
call fcn.00401a43
push dword [ebp + esi*4 + 0x50]
mov ecx, ebx
call fcn.004e7002
inc esi
cmp esi, 2
jl 0x4eb499
jmp 0x4eabe4
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6be0
lea eax, [ebp + 0x54]
push eax
mov ecx, ebx
call fcn.004e6eec
jmp 0x4eabe4
lea ecx, [ebp - 0x40]
call fcn.00402365
push dword [ebp + 0x54]
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 8
push eax
mov ecx, ebx
call fcn.004ecbf1
mov esi, dword [ebp + 0x50]
mov edi, dword [ebp + 0x58]
cmp esi, 2
jne 0x4eb52f
test edi, edi
jne 0x4eb52f
xor eax, eax
inc eax
cmp dword [ebp - 0x3c], eax
jne 0x4eb510
mov eax, dword [ebp - 0x40]
cmp byte [eax], 0x30
mov eax, str.ClearErrors
je 0x4eb515
mov eax, str.SetErrors
push eax
mov ecx, ebx
call fcn.00401abc
push dword [ebp - 0x40]
mov byte [ebp - 4], 3
call fcn.00566e0e
pop ecx
jmp 0x4eabe4
push 0x58a6f8
mov ecx, ebx
call fcn.00401abc
push esi
mov ecx, ebx
call fcn.004e6e3f
test edi, edi
je 0x4eb54e
push str._lastused
jmp 0x4eb516
mov ecx, dword [ebp - 0x40]
lea edx, [ebp + 0x40]
call fcn.004ecfdc
test al, al
je 0x4eb624
sub esi, 0
je 0x4eb5fe
sub esi, 1
je 0x4eb5ec
sub esi, 3
je 0x4eb5fe
push 4
pop ecx
sub esi, ecx
je 0x4eb5da
sub esi, ecx
je 0x4eb5bd
sub esi, 1
jne 0x4eb624
mov eax, dword [ebp + 0x40]
test eax, eax
jne 0x4eb59a
mov esi, str.both
jmp 0x4eb615
cmp eax, 2
jne 0x4eb5a6
mov esi, str.textonly
jmp 0x4eb615
cmp eax, ecx
jne 0x4eb5b1
mov esi, str.listonly
jmp 0x4eb615
cmp eax, 6
jne 0x4eb624
mov esi, str.none
jmp 0x4eb615
cmp dword [ebp + 0x40], 0
jne 0x4eb5ca
mov esi, 0x58a734
jmp 0x4eb615
cmp dword [ebp + 0x40], 0x100
jne 0x4eb624
mov esi, 0x58a214
jmp 0x4eb615
cmp dword [ebp + 0x40], 2
jae 0x4eb624
mov esi, str.normal
mov eax, str.silent
jmp 0x4eb60e
cmp dword [ebp + 0x40], 2
jae 0x4eb624
mov esi, str.current
mov eax, 0x58a720
jmp 0x4eb60e
cmp dword [ebp + 0x40], 2
jae 0x4eb624
mov esi, str.false
mov eax, str.true
cmp dword [ebp + 0x40], 0
cmovne esi, eax
push 0x20
mov ecx, ebx
call fcn.00401a43
push esi
jmp 0x4eb516
lea eax, [ebp - 0x40]
mov ecx, ebx
push eax
call fcn.004ecfc3
jmp 0x4eb51d
push dword [ebp + 0x58]
mov ecx, ebx
call fcn.004e6e3f
lea eax, [ebp + 0x50]
jmp 0x4eb4c5
push dword [ebp + 0x54]
mov ecx, ebx
call fcn.004e6e3f
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6c53
jmp 0x4eabe4
cmp dword [ebp + 0x58], 0
je 0x4eb671
push str.__REBOOTOK
mov ecx, ebx
call fcn.00401abc
xor esi, esi
push dword [ebp + esi*4 + 0x50]
mov ecx, ebx
call fcn.004e6be0
inc esi
cmp esi, 2
jb 0x4eb673
cmp dword [ebp + 0x5c], 0
je 0x4eabe4
push 0x58a300
mov ecx, ebx
call fcn.00401abc
push dword [ebp + 0x5c]
jmp 0x4eb19e
cmp dword [ebp + 0x58], 0
jne 0x4eb6b4
push str.__SHORT
mov ecx, ebx
call fcn.00401abc
push dword [ebp + 0x54]
mov ecx, ebx
call fcn.004e6c53
jmp case.0x4eaacc.6
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6c53
push dword [ebp + 0x54]
jmp 0x4eb19e
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6c53
lea ecx, [ebp - 0xc8]
call fcn.00402365
push dword [ebp + 0x54]
lea eax, [ebp - 0xc8]
mov byte [ebp - 4], 9
push eax
mov ecx, ebx
call fcn.004ecbf1
push str._TEMP
push dword [ebp - 0xc8]
call sub.msvcrt.dll_strcmp
pop ecx
pop ecx
test eax, eax
je 0x4eb723
lea eax, [ebp - 0xc8]
mov ecx, ebx
push eax
call fcn.004ecfc3
push dword [ebp - 0xc8]
jmp 0x4eb520
push 4
pop eax
test byte [ebp + 0x54], al
je case.0x4eaacc.6
push str.__REBOOTOK
mov ecx, ebx
call fcn.00401abc
jmp case.0x4eaacc.6
mov esi, dword [ebp + 0x50]
mov ecx, ebx
push esi
call fcn.004e88f4
push dword [ebp + 0x54]
mov ecx, ebx
call fcn.004e6be0
shr esi, 0x15
test esi, esi
je 0x4eb77b
push str.__SD
mov ecx, ebx
call fcn.00401abc
push esi
mov ecx, ebx
call fcn.004e6d76
push 2
pop esi
mov eax, dword [ebp + esi*4 + 0x50]
test eax, eax
je 0x4eb799
push eax
mov ecx, ebx
call fcn.004e6d76
push dword [ebp + esi*4 + 0x54]
mov ecx, ebx
call fcn.004e6eaa
add esi, 2
cmp esi, 6
jl 0x4eb77e
jmp 0x4eabe4
test byte [ebp + 0x54], 2
je case.0x4eaacc.21
push 0x58a770
mov ecx, ebx
call fcn.00401abc
jmp case.0x4eaacc.21
cmp dword [ebp + 0x60], 0
je 0x4eb7cc
push 0x53
mov ecx, ebx
call fcn.00401a43
xor esi, esi
push dword [ebp + esi*4 + 0x50]
mov ecx, ebx
call fcn.004e6be0
inc esi
cmp esi, 2
jb 0x4eb7ce
lea eax, [ebp + 0x58]
jmp 0x4eb4c5
mov esi, dword [ebp + 0x58]
mov ecx, str.ExpandEnvStrings
test esi, esi
mov eax, str.ReadEnvStr
cmove eax, ecx
mov ecx, ebx
push eax
call fcn.00401abc
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6c53
lea ecx, [ebp - 0x54]
call fcn.00402365
push dword [ebp + 0x54]
lea eax, [ebp - 0x54]
mov byte [ebp - 4], 0xa
push eax
mov ecx, ebx
call fcn.004ecbf1
test esi, esi
je 0x4eb852
mov eax, dword [ebp - 0x50]
cmp eax, 2
jb 0x4eb852
mov ecx, dword [ebp - 0x54]
cmp byte [ecx], 0x25
jne 0x4eb852
cmp byte [eax + ecx - 1], 0x25
jne 0x4eb852
dec eax
mov dword [ebp - 0x50], eax
push 0
mov byte [ecx + eax], 0
lea ecx, [ebp - 0x54]
call fcn.00402e60
lea eax, [ebp - 0x54]
mov ecx, ebx
push eax
call fcn.004ecfc3
push dword [ebp - 0x54]
jmp 0x4eb520
push 0x58a794
mov ecx, ebx
call fcn.00401abc
mov esi, dword [ebp + 0x64]
test esi, 0x8000
je 0x4eb888
push 0x58a214
mov ecx, ebx
call fcn.00401abc
push 0x58a798
mov ecx, ebx
call fcn.00401abc
xor edx, edx
xor eax, eax
inc edx
mov ecx, esi
and ecx, edx
test esi, esi
setne al
cmp dword [ebx + 0x50], edx
cmove eax, ecx
test eax, eax
je 0x4eb8b5
push 0x55
mov ecx, ebx
call fcn.00401a43
xor esi, esi
push dword [ebp + esi*4 + 0x50]
mov ecx, ebx
call fcn.004e6be0
inc esi
cmp esi, 2
jb 0x4eb8b7
push dword [ebp + 0x58]
mov ecx, ebx
call fcn.004e6eaa
cmp dword [ebp + 0x5c], 0
jne 0x4eb8e2
cmp dword [ebp + 0x60], 0
je 0x4eabe4
lea eax, [ebp + 0x5c]
jmp 0x4eb4c5
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6c53
mov esi, dword [ebp + 0x5c]
cmp esi, 0xe
jae 0x4eb904
mov al, byte [esi + 0x58a79c]
jmp 0x4eb906
mov al, 0x3f
mov byte [ebp + 0x20], al
cmp esi, 8
jb 0x4eb916
mov byte [ebp + 0x18], al
cmp esi, 0xa
jne 0x4eb91a
mov byte [ebp + 0x18], 0
push dword [ebp + 0x54]
mov ecx, ebx
call fcn.004e6be0
cmp esi, 7
je 0x4eb94e
cmp byte [ebp + 0x20], 0x5e
jne 0x4eb94e
push str.0xFFFFFFFF
push dword [ebp + 0x58]
mov ecx, ebx
call fcn.004e87f7
test al, al
je 0x4eb94e
push str.______
mov ecx, ebx
call fcn.00401abc
push 0x20
mov ecx, ebx
call fcn.00401a43
push dword [ebp + 0x20]
mov ecx, ebx
call fcn.00401a43
cmp esi, 7
je 0x4eabe4
cmp esi, 0xd
jne 0x4eb979
push dword [ebp + 0x20]
mov ecx, ebx
call fcn.00401a43
cmp byte [ebp + 0x18], 0
je 0x4eb989
push dword [ebp + 0x18]
mov ecx, ebx
call fcn.00401a43
push dword [ebp + 0x58]
jmp 0x4eb19e
cmp dword [ebp + 0x5c], 0
mov ecx, ebx
mov eax, str.Int64Fmt
jne 0x4eb9a3
mov eax, str.IntFmt
push eax
call fcn.00401abc
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6c53
lea eax, [ebp + 0x54]
push 2
push eax
mov ecx, ebx
call fcn.004e6c6c
jmp 0x4eabe4
mov edi, dword [ebp + 0x58]
test edi, edi
je 0x4eb9f0
push str.Exch
mov ecx, ebx
call fcn.00401abc
xor eax, eax
inc eax
cmp edi, eax
je 0x4eabe4
push edi
mov ecx, ebx
call fcn.004e6c3a
jmp 0x4eabe4
cmp dword [ebp + 0x54], 0
je 0x4eba07
push 0x58a7dc
mov ecx, ebx
call fcn.00401abc
jmp case.0x4eaacc.54
mov edi, dword [ebp + 0x48]
xor eax, eax
lea ecx, [esi + edi*4]
cmp dword [ecx + eax*4 + 4], 0
jne 0x4eba79
inc eax
cmp eax, 2
jb 0x4eba0f
mov eax, dword [ebp + 0x44]
cmp dword [eax + 0x1c], 0x1f
jne 0x4eba79
xor ecx, ecx
inc ecx
cmp dword [eax + 0x28], ecx
jne 0x4eba79
cmp dword [eax + 0x38], 0x1f
jne 0x4eba79
cmp dword [eax + 0x40], 0
je 0x4eba79
push dword [eax + 0x3c]
mov ecx, ebx
push dword [ebp + 0x50]
call fcn.004e88cb
test al, al
je 0x4eba79
push str.Exch
mov ecx, ebx
call fcn.00401abc
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6be0
mov ecx, ebx
call fcn.004e8a12
push 0x58a2f8
mov ecx, ebx
call fcn.00401abc
lea eax, [edi + 3]
mov dword [ebp + 0x38], eax
push str.Push
jmp 0x4eb73f
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6c53
push dword [ebp + 0x54]
mov ecx, ebx
call fcn.004e6be0
push 3
jmp 0x4ead79
push dword [ebp + 0x54]
mov ecx, ebx
call fcn.004e6be0
lea ecx, [ebp - 0xe0]
call fcn.00402365
push dword [ebp + 0x58]
lea eax, [ebp - 0xe0]
mov byte [ebp - 4], 0xb
push eax
mov ecx, ebx
call fcn.004ecbf1
mov ecx, dword [ebp - 0xe0]
lea edx, [ebp + 0x34]
call fcn.004ecfdc
test al, al
je 0x4ebb20
cmp dword [ebp + 0x34], 0xc
je 0x4ebafc
push 0x10
pop eax
cmp dword [ebp + 0x34], eax
je 0x4ebaf5
cmp dword [ebp + 0x34], 0x30
jne 0x4ebb20
mov esi, str.SETFONT
jmp 0x4ebb01
mov esi, str.CLOSE
jmp 0x4ebb01
mov esi, str.SETTEXT
push str.__WM_
mov ecx, ebx
call fcn.00401abc
push esi
mov ecx, ebx
call fcn.00401abc
push 0x7d
mov ecx, ebx
call fcn.00401a43
jmp 0x4ebb2e
lea eax, [ebp - 0xe0]
mov ecx, ebx
push eax
call fcn.004ecfc3
mov edi, dword [ebp + 0x64]
xor esi, esi
lea ecx, [ebp - 0xd4]
call fcn.00402365
xor eax, eax
mov byte [ebp - 4], 0xc
inc eax
mov ecx, esi
shl eax, cl
test edi, eax
je 0x4ebb5d
push str.STR:
lea ecx, [ebp - 0xd4]
call fcn.00402a01
push dword [ebp + esi*4 + 0x5c]
lea eax, [ebp - 0xd4]
mov ecx, ebx
push eax
call fcn.004ecbf1
lea eax, [ebp - 0xd4]
mov ecx, ebx
push eax
call fcn.004ecfc3
push dword [ebp - 0xd4]
mov byte [ebp - 4], 0xb
call fcn.00566e0e
inc esi
pop ecx
cmp esi, 2
jb 0x4ebb33
cmp dword [ebp + 0x50], 0
jl 0x4ebba3
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6c53
shr edi, 2
test edi, edi
je 0x4ebbbe
push str.__TIMEOUT
mov ecx, ebx
call fcn.00401abc
push edi
mov ecx, ebx
call fcn.004e7064
push dword [ebp - 0xe0]
jmp 0x4eb520
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6be0
mov ecx, dword [ebx + 0x34]
mov esi, dword [ebx + 0x88]
cmp ecx, esi
jb 0x4ebcfd
mov edx, dword [ebp + 0x54]
sub ecx, esi
cmp ecx, edx
jb 0x4ebcfd
mov al, byte [ebx + 0x29]
sub ecx, edx
push 0x18
mov dword [ebp + 0x68], eax
cmp byte [ebp + 0x68], 0
pop eax
push 0x1c
pop edi
cmovne eax, edi
cmp ecx, eax
jb 0x4ebcfd
push dword [ebp + 0x68]
lea eax, [edx + esi]
add eax, dword [ebx + 0x14]
lea ecx, [ebp - 0x88]
push eax
call fcn.004e9e2c
mov esi, dword [ebp - 0x74]
and esi, 8
jne 0x4ebc31
test byte [ebp - 0x74], 2
je 0x4ebc3d
push str.__BRANDING
mov ecx, ebx
call fcn.00401abc
lea ecx, [ebp - 0xf8]
call fcn.00402365
xor ecx, ecx
mov byte [ebp - 4], 0xd
xor al, al
inc ecx
mov dword [ebp + 0x68], eax
cmp dword [ebp - 0x78], ecx
jne 0x4ebc71
push str._transparent
lea ecx, [ebp - 0xf8]
call fcn.00402a01
mov eax, dword [ebp + 0x68]
xor ecx, ecx
inc ecx
jmp 0x4ebc88
test byte [ebp - 0x74], 0x10
je 0x4ebc88
test esi, esi
jne 0x4ebc88
test byte [ebp - 0x74], 4
movzx eax, al
cmovne eax, ecx
mov dword [ebp + 0x68], eax
mov esi, dword [ebp - 0x74]
and esi, ecx
jne 0x4ebc9b
cmp dword [ebp - 0xf4], esi
jne 0x4ebc9b
test al, al
je 0x4ebcc9
push 0x20
mov ecx, ebx
call fcn.00401a43
test byte [ebp - 0x74], 2
jne 0x4ebcbd
test esi, esi
je 0x4ebcbd
push dword [ebp - 0x88]
mov ecx, ebx
call fcn.004e6e0a
jmp 0x4ebcc9
push 0x58a318
mov ecx, ebx
call fcn.00401abc
push dword [ebp - 0xf8]
mov ecx, ebx
call fcn.00401abc
cmp byte [ebp + 0x68], 0
je 0x4ebcf2
push 0x20
mov ecx, ebx
call fcn.00401a43
push dword [ebp - 0x84]
mov ecx, ebx
call fcn.004e6e0a
push dword [ebp - 0xf8]
jmp 0x4eb520
push str.bad_offset
jmp 0x4eb06b
push str.__IMGID
mov ecx, ebx
call fcn.00401abc
push dword [ebp + 0x54]
mov ecx, ebx
call fcn.004e7064
xor eax, eax
inc eax
cmp dword [ebp + 0x58], eax
jne case.0x4eaacc.6
push str.__RESIZETOFIT
jmp 0x4eb73f
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6c53
push dword [ebp + 0x54]
mov ecx, ebx
call fcn.004e6be0
push 2
lea eax, [ebp + 0x58]
mov ecx, ebx
push eax
call fcn.004e6b47
xor eax, eax
inc eax
test byte [ebp + 0x60], al
je 0x4ebd68
push str.__ITALIC
mov ecx, ebx
call fcn.00401abc
test byte [ebp + 0x60], 2
je 0x4ebd7a
push str.__UNDERLINE
mov ecx, ebx
call fcn.00401abc
push 4
pop edx
test byte [ebp + 0x60], dl
je 0x4ec9ab
push str.__STRIKE
jmp 0x4eabdd
lea ecx, [ebp - 0xec]
call fcn.00402365
lea ecx, [ebp + 4]
mov byte [ebp - 4], 0xe
call fcn.00402365
push dword [ebp + 0x50]
lea eax, [ebp - 0xec]
mov byte [ebp - 4], 0xf
push eax
mov ecx, ebx
call fcn.004ecbf1
push dword [ebp + 0x54]
lea eax, [ebp + 4]
mov ecx, ebx
push eax
call fcn.004ecbf1
cmp dword [ebp + 0x5c], 0
je 0x4ebdda
push 0x58a884
jmp 0x4ebee3
mov ecx, dword [ebp + 4]
lea edx, [ebp - 0x98]
mov byte [ebp + 0x6e], 0
call fcn.004ecfdc
mov esi, dword [ebp - 0x98]
test al, al
je 0x4ebe56
cmp esi, 0xc
jae 0x4ebe56
mov eax, dword [ebp + 4]
lea ecx, [ebp + 4]
and dword [ebp + 8], 0
push 0x58a894
mov byte [eax], 0
call fcn.00402a01
push 0x58a2dc
lea ecx, [ebp + 4]
call fcn.00402a01
push dword [esi*4 + 0x589788]
lea ecx, [ebp + 4]
call fcn.00402a01
mov ecx, dword [ebp + 8]
cmp dword [ebp + 0xc], ecx
jne 0x4ebe41
lea ecx, [ebp + 4]
call fcn.004030e1
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 4]
mov byte [eax + ecx], 0x7d
inc ecx
mov byte [eax + ecx], 0
xor eax, eax
inc eax
mov dword [ebp + 8], ecx
mov byte [ebp + 0x6e], al
cmp byte [ebx + 0x55], 0
push 0x1d
pop eax
push 0x1b
pop ecx
cmovne eax, ecx
mov ecx, ebx
push eax
push dword [ebp + 0x50]
call fcn.004e88cb
cmp byte [ebp + 0x6e], 0
je 0x4ebede
cmp dword [ebp + 0x58], 0
je 0x4ebeab
test esi, esi
jne 0x4ebeab
test al, al
je 0x4ebeab
push str.HideWindow
mov ecx, ebx
call fcn.00401abc
push dword [ebp + 4]
call fcn.00566e0e
push dword [ebp - 0xec]
mov byte [ebp - 4], 3
call fcn.00566e0e
pop ecx
jmp 0x4eb529
cmp esi, 5
jne 0x4ebede
test al, al
je 0x4ebede
mov ecx, dword [ebp + 0x7c]
mov eax, dword [ebp + 0x48]
inc eax
cmp eax, dword [ecx + 4]
jae 0x4ebede
mov eax, dword [ebp + 0x44]
mov ecx, ebx
push dword [eax + 0x1c]
call fcn.004e78d2
cmp eax, 8
jne 0x4ebede
push 0x58a8a4
mov ecx, ebx
call fcn.00401abc
push 0x58a8ac
mov ecx, ebx
call fcn.00401abc
lea eax, [ebp - 0xec]
mov ecx, ebx
push eax
call fcn.004ecfc3
lea eax, [ebp + 4]
mov ecx, ebx
push eax
call fcn.004ecfc3
jmp 0x4ebe8e
xor esi, esi
push dword [ebp + esi*4 + 0x50]
mov ecx, ebx
call fcn.004e6be0
inc esi
cmp esi, 2
jb 0x4ebf07
cmp dword [ebp + 0x58], 0
jne 0x4ebf26
xor eax, eax
inc eax
cmp dword [ebp + 0x5c], eax
je 0x4ebf4b
push dword [ebp + 0x58]
mov ecx, ebx
call fcn.004e6be0
xor eax, eax
inc eax
cmp dword [ebp + 0x5c], eax
je 0x4ebf4b
push 0x20
mov ecx, ebx
call fcn.00401a43
push dword [ebp + 0x5c]
mov ecx, ebx
call fcn.004e7002
cmp dword [ebp + 0x64], 0
je 0x4eabe4
push 0x58a8b8
mov ecx, ebx
call fcn.00401abc
push dword [ebp + 0x64]
jmp 0x4eb19e
mov esi, dword [ebp + 0x58]
test esi, esi
je 0x4ebf7c
push str.Wait
mov ecx, ebx
call fcn.00401abc
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6be0
test esi, esi
je 0x4eabe4
cmp dword [ebp + 0x54], 0
jl 0x4eabe4
push dword [ebp + 0x54]
jmp 0x4eb653
cmp ecx, 0x2b
jne 0x4ebfb7
cmp dword [ebp + 0x5c], 2
jne 0x4ebfb7
push str.__ProductVersion
mov ecx, ebx
call fcn.00401abc
push dword [ebp + 0x58]
mov ecx, ebx
call fcn.004e6be0
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6c53
jmp 0x4ebf98
lea ecx, [ebp - 0xa4]
call fcn.00402365
push 0x10
pop eax
push dword [ebp + 0x54]
mov byte [ebp - 4], al
mov ecx, ebx
lea eax, [ebp - 0xa4]
push eax
call fcn.004ecbf1
cmp dword [ebp + 0x58], 0
jne 0x4ec021
push str.CallInstDLL
mov ecx, ebx
call fcn.00401abc
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6be0
xor eax, eax
inc eax
cmp dword [ebp + 0x5c], eax
jne 0x4ec081
push str.__NOUNLOAD
mov ecx, ebx
call fcn.00401abc
jmp 0x4ec081
push str.DllUnregisterServer
push dword [ebp - 0xa4]
call sub.msvcrt.dll_strcmp
pop ecx
pop ecx
mov ecx, ebx
test eax, eax
jne 0x4ec049
push str.UnRegDLL
call fcn.00401abc
mov byte [ebp], 0
jmp 0x4ec071
push str.RegDLL
call fcn.00401abc
push str.DllRegisterServer
push dword [ebp - 0xa4]
call sub.msvcrt.dll_strcmp
neg eax
pop ecx
sbb al, al
pop ecx
xor ecx, ecx
inc ecx
and al, cl
mov dword [ebp], eax
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6be0
cmp byte [ebp], 0
je 0x4ec08f
lea eax, [ebp - 0xa4]
mov ecx, ebx
push eax
call fcn.004ecfc3
push dword [ebp - 0xa4]
jmp 0x4eb520
push 6
pop edi
lea eax, [ebp + 0x64]
cmp dword [eax], 0
jne 0x4ec0ae
dec edi
sub eax, 4
cmp edi, 2
ja 0x4ec0a0
mov eax, dword [ebp + 0x60]
mov dword [ebp + 0x68], eax
test eax, 0x8000
je 0x4ec0c7
push str.__NoWorkingDir
mov ecx, ebx
call fcn.00401abc
push 4
pop ecx
cmp edi, ecx
mov eax, edi
cmova eax, ecx
mov ecx, ebx
push eax
lea eax, [ebp + 0x50]
push eax
call fcn.004e6c6c
push 4
pop edx
cmp edi, edx
jbe 0x4ec9ab
mov eax, dword [ebp + 0x68]
mov ecx, ebx
push 0x20
movzx esi, al
call fcn.00401a43
mov ecx, ebx
test esi, esi
je 0x4ec105
push esi
call fcn.004e7064
jmp 0x4ec10f
push 0x58a318
call fcn.00401abc
mov esi, dword [ebp + 0x68]
shr esi, 8
test esi, esi
jne 0x4ec122
cmp edi, 6
jb 0x4eabe4
push 0x20
mov ecx, ebx
and esi, 0x7f
call fcn.00401a43
cmp esi, 7
jne 0x4ec17a
push 2
pop esi
push esi
mov ecx, ebx
call fcn.004e7002
mov ecx, dword [ebp + 0x68]
mov eax, ecx
shr eax, 0x18
shr ecx, 0x10
mov dword [ebp + 0x68], eax
movzx esi, cl
test eax, eax
jne 0x4ec18c
test cl, cl
jne 0x4ec18c
cmp edi, 6
jb 0x4eabe4
push 0x20
mov ecx, ebx
call fcn.00401a43
push 0x58a318
mov ecx, ebx
call fcn.00401abc
jmp 0x4ec235
test esi, esi
jne 0x4ec136
push 0x58a318
mov ecx, ebx
call fcn.00401abc
jmp 0x4ec13e
push 0x20
mov ecx, ebx
call fcn.00401a43
mov eax, dword [ebp + 0x68]
xor ecx, ecx
inc ecx
test cl, al
je 0x4ec1ae
push str.SHIFT
mov ecx, ebx
call fcn.00401abc
mov eax, dword [ebp + 0x68]
test al, 2
je 0x4ec1c1
push str.CONTROL
mov ecx, ebx
call fcn.00401abc
mov eax, dword [ebp + 0x68]
push 4
pop ecx
test cl, al
je 0x4ec1d7
push str.ALT
mov ecx, ebx
call fcn.00401abc
mov eax, dword [ebp + 0x68]
test al, 8
je 0x4ec1e7
push str.EXT
mov ecx, ebx
call fcn.00401abc
cmp esi, 0x70
jb 0x4ec203
cmp esi, 0x87
ja 0x4ec221
push 0x46
mov ecx, ebx
call fcn.00401a43
lea eax, [esi - 0x6f]
push eax
jmp 0x4ec22e
cmp esi, 0x41
jb 0x4ec20d
cmp esi, 0x5a
jbe 0x4ec217
cmp esi, 0x30
jb 0x4ec221
cmp esi, 0x39
ja 0x4ec221
push esi
mov ecx, ebx
call fcn.00401a43
jmp 0x4ec235
push str.Char_
mov ecx, ebx
call fcn.00401abc
push esi
mov ecx, ebx
call fcn.004e7064
cmp dword [ebp + 0x64], 0
je 0x4eabe4
jmp 0x4ebf61
push 4
pop eax
test byte [ebp + 0x58], al
je 0x4ec258
push str.__SILENT
mov ecx, ebx
call fcn.00401abc
test byte [ebp + 0x58], 0x80
je 0x4ec26a
push str.__FILESONLY
mov ecx, ebx
call fcn.00401abc
xor esi, esi
push dword [ebp + esi*4 + 0x50]
mov ecx, ebx
call fcn.004e6be0
inc esi
cmp esi, 2
jb 0x4ec26c
cmp dword [ebp + 0x5c], 0
je 0x4eabe4
push 0x58a8b8
jmp 0x4eb693
cmp dword [ebp + 0x50], 0xbadf00d
je 0x4ec2a4
push str.___Corrupted____
jmp 0x4eabdd
mov esi, dword [ebp + 0x48]
mov ecx, dword [ebp + 0x7c]
lea eax, [esi + 1]
cmp eax, dword [ecx + 4]
jae 0x4eabe4
mov eax, dword [ebp + 0x44]
mov ecx, ebx
push dword [eax + 0x1c]
call fcn.004e78d2
mov ecx, dword [ebp + 0x70]
push 4
pop edx
cmp eax, edx
jne 0x4eabea
lea eax, [esi + 2]
mov dword [ebp + 0x38], eax
jmp 0x4eabea
xor esi, esi
mov ecx, ebx
cmp dword [ebp + 0x50], esi
jne 0x4ec2f1
push str.FlushINI
call fcn.00401abc
jmp 0x4ec32c
cmp dword [ebp + 0x60], esi
je 0x4ec305
push str.WriteINIStr
call fcn.00401abc
push 3
pop esi
jmp 0x4ec32c
push str.DeleteINI
call fcn.00401abc
cmp dword [ebp + 0x54], esi
mov ecx, 0x58a9b0
mov eax, 0x580208
cmovne eax, ecx
mov ecx, ebx
push eax
call fcn.00401abc
xor eax, eax
lea esi, [eax + 1]
push dword [ebp + 0x5c]
mov ecx, ebx
call fcn.004e6be0
push esi
lea eax, [ebp + 0x50]
mov ecx, ebx
push eax
call fcn.004e6c6c
push 3
pop eax
sub eax, esi
push eax
lea eax, [ebp + 0x50]
lea eax, [eax + esi*4]
jmp 0x4ead7c
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6c53
push dword [ebp + 0x5c]
mov ecx, ebx
call fcn.004e6be0
jmp 0x4eb9b3
cmp dword [ebp + 0x60], 0
mov ecx, ebx
jne 0x4ec37c
mov eax, str.Value
push eax
jmp 0x4ec393
push 0x58a9bc
call fcn.00401abc
test byte [ebp + 0x60], 2
je 0x4ec398
push str.__ifempty
mov ecx, ebx
call fcn.00401abc
push dword [ebp + 0x54]
mov ecx, ebx
call fcn.004e6c94
push dword [ebp + 0x58]
mov ecx, ebx
call fcn.004e6be0
cmp dword [ebp + 0x5c], 0
je 0x4eabe4
jmp 0x4eb69a
mov edi, dword [ebp + 0x60]
xor esi, esi
mov eax, edi
sub eax, 1
je 0x4ec3fe
sub eax, 1
je 0x4ec3f7
sub eax, 1
je 0x4ec3f0
sub eax, 1
je 0x4ec3e9
push 0x3f
mov ecx, ebx
call fcn.00401a43
push edi
mov ecx, ebx
call fcn.004e7064
jmp 0x4ec403
mov esi, str.DWORD
jmp 0x4ec403
mov esi, 0x58a9d8
jmp 0x4ec403
mov esi, str.ExpandStr
jmp 0x4ec403
mov esi, 0x58a9b0
xor eax, eax
inc eax
cmp edi, eax
jne 0x4ec415
cmp dword [ebp + 0x64], 2
jne 0x4ec427
mov esi, str.ExpandStr
cmp edi, 3
jne 0x4ec427
cmp dword [ebp + 0x64], 7
jne 0x4ec427
mov esi, str.MultiStr
jmp 0x4ec42b
test esi, esi
je 0x4ec433
push esi
mov ecx, ebx
call fcn.00401abc
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6c94
push 2
lea eax, [ebp + 0x54]
mov ecx, ebx
push eax
call fcn.004e6c6c
mov ecx, ebx
cmp edi, 3
je 0x4ec459
push dword [ebp + 0x5c]
jmp 0x4eb1a0
push 0x20
call fcn.00401a43
mov ecx, dword [ebx + 0x98]
mov esi, dword [ebp + 0x5c]
push 4
pop eax
cmp ecx, eax
jb 0x4ec506
mov edx, dword [ebx + 0x90]
lea eax, [ecx - 4]
cmp edx, eax
ja 0x4ec506
sub ecx, edx
lea eax, [ecx - 4]
cmp esi, eax
ja 0x4ec506
mov edi, dword [ebx + 0x9c]
sub ecx, esi
add edi, esi
add edi, edx
push 4
pop edx
sub ecx, edx
mov eax, dword [edi]
mov dword [ebp + 0x14], eax
cmp eax, ecx
ja 0x4ec506
xor ecx, ecx
mov dword [ebp + 0x68], ecx
test eax, eax
je 0x4ec9ab
mov esi, eax
movzx ebx, byte [edi + ecx + 4]
mov ecx, ebx
shr ecx, 4
cmp ecx, 0xa
sbb al, al
add cl, 0x37
and al, 0xf9
add al, cl
mov ecx, dword [ebp - 0x14]
movzx eax, al
push eax
call fcn.00401a43
and ebx, 0xf
cmp ebx, 0xa
sbb al, al
add bl, 0x37
and al, 0xf9
add al, bl
mov ebx, dword [ebp - 0x14]
movzx eax, al
mov ecx, ebx
push eax
call fcn.00401a43
mov ecx, dword [ebp + 0x68]
inc ecx
mov dword [ebp + 0x68], ecx
cmp ecx, esi
jb 0x4ec4b7
jmp 0x4eabe4
push str.data_
mov ecx, ebx
call fcn.00401abc
push esi
mov ecx, ebx
call fcn.004e7064
push str._...__
mov ecx, ebx
call fcn.00401abc
push str.________Unsupported
jmp 0x4eabdd
xor ecx, ecx
mov eax, str.DWORD
inc ecx
cmp dword [ebp + 0x60], ecx
mov ecx, 0x58a9b0
cmovne eax, ecx
push eax
mov ecx, ebx
call fcn.00401abc
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6c53
push dword [ebp + 0x54]
mov ecx, ebx
call fcn.004e6c94
lea eax, [ebp + 0x58]
jmp 0x4eb9b6
cmp dword [ebp + 0x60], 0
mov eax, 0x58a9bc
mov ecx, str.Value
cmove eax, ecx
jmp 0x4ec543
cmp dword [ebp + 0x58], 2
mov edi, dword [ebp + 0x50]
mov esi, dword [ebp + 0x54]
jne 0x4ec5c0
cmp esi, 0x40000000
jne 0x4ec5c0
mov ecx, dword [ebp + 0x7c]
mov eax, dword [ebp + 0x48]
inc eax
cmp eax, dword [ecx + 4]
jae 0x4ec5c0
mov eax, dword [ebp + 0x44]
cmp dword [eax + 0x1c], 0x36
jne 0x4ec5c0
cmp dword [eax + 0x20], edi
jne 0x4ec5c0
lea ecx, [ebx + 0x1c]
call fcn.004e6abf
push dword [ebp + 0x5c]
xor ecx, ecx
inc ecx
mov byte [eax], cl
mov ecx, ebx
push eax
call fcn.004ecce8
push edi
mov ecx, ebx
call fcn.004e6c53
push dword [ebp + 0x5c]
mov ecx, ebx
call fcn.004e6be0
mov edi, dword [ebp + 0x58]
test esi, esi
jne 0x4ec5e1
test edi, edi
je 0x4eabe4
cmp edi, 3
jne 0x4ec5f4
cmp esi, 0x80000000
jne 0x4ec62b
mov byte [ebp + 0x3c], 0x72
jmp 0x4ec61a
cmp edi, 2
jne 0x4ec607
cmp esi, 0x40000000
jne 0x4ec62b
mov byte [ebp + 0x3c], 0x77
jmp 0x4ec61a
push 4
pop eax
cmp edi, eax
jne 0x4ec62b
cmp esi, 0xc0000000
jne 0x4ec62b
mov byte [ebp + 0x3c], 0x61
push 0x20
mov ecx, ebx
call fcn.00401a43
push dword [ebp + 0x3c]
jmp 0x4eb434
test esi, esi
jns 0x4ec63b
push str._GENERIC_READ
mov ecx, ebx
call fcn.00401abc
test esi, 0x40000000
je 0x4ec64f
push str._GENERIC_WRITE
mov ecx, ebx
call fcn.00401abc
test esi, 0x20000000
je 0x4ec663
push str._GENERIC_EXECUTE
mov ecx, ebx
call fcn.00401abc
test esi, 0x10000000
je 0x4ec677
push str._GENERIC_ALL
mov ecx, ebx
call fcn.00401abc
mov eax, edi
xor esi, esi
sub eax, 1
je 0x4ec6b0
sub eax, 1
je 0x4ec6a9
sub eax, 1
je 0x4ec6a2
sub eax, 1
je 0x4ec69b
sub eax, 1
jne 0x4ec6b5
mov esi, str.TRUNCATE_EXISTING
jmp 0x4ec6b5
mov esi, str.OPEN_ALWAYS
jmp 0x4ec6b5
mov esi, str.OPEN_EXISTING
jmp 0x4ec6b5
mov esi, str.CREATE_ALWAYS
jmp 0x4ec6b5
mov esi, str.CREATE_NEW
push 0x20
mov ecx, ebx
call fcn.00401a43
mov ecx, ebx
test esi, esi
je 0x4ec6ca
push esi
jmp 0x4eabdf
push edi
call fcn.004e7064
jmp 0x4eabe4
mov esi, dword [ebp + 0x58]
cmp ecx, 0x44
jne 0x4ec6ef
test esi, esi
mov eax, str.UTF16LE
mov ecx, str.Word
cmovne eax, ecx
push eax
jmp 0x4ec6f8
test esi, esi
je 0x4ec707
push str.Byte
mov ecx, ebx
call fcn.00401abc
test esi, esi
jne case.0x4eaacc.18
cmp dword [ebp + 0x5c], 0
je case.0x4eaacc.18
push str.__BOM
mov ecx, ebx
call fcn.00401abc
jmp case.0x4eaacc.18
mov esi, dword [ebp + 0x5c]
cmp ecx, 0x44
jne 0x4ec741
test esi, esi
mov ecx, str.Word
mov eax, str.UTF16LE
cmovne eax, ecx
mov ecx, ebx
push eax
call fcn.00401abc
test esi, esi
je 0x4ec751
push str.Byte
mov ecx, ebx
call fcn.00401abc
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6c53
push dword [ebp + 0x54]
mov ecx, ebx
call fcn.004e6c53
lea ecx, [ebp - 0x6c]
call fcn.00402365
push dword [ebp + 0x58]
lea eax, [ebp - 0x6c]
mov byte [ebp - 4], 0x11
push eax
mov ecx, ebx
call fcn.004ecbf1
mov ecx, dword [ebp - 0x6c]
lea edx, [ebp + 0x1c]
call fcn.004ecfdc
test al, al
je 0x4ec7af
xor eax, eax
inc eax
cmp dword [ebp + 0x1c], eax
jne 0x4ec7a2
test esi, esi
je 0x4ec7af
push dword [ebp - 0x6c]
jmp 0x4eb520
cmp dword [ebp + 0x1c], 0x3ff
jne 0x4ec7af
test esi, esi
je 0x4ec79a
lea eax, [ebp - 0x6c]
mov ecx, ebx
push eax
call fcn.004ecfc3
jmp 0x4ec79a
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6c53
push dword [ebp + 0x58]
mov ecx, ebx
call fcn.004e6be0
mov esi, dword [ebp + 0x5c]
xor eax, eax
inc eax
cmp esi, eax
jne 0x4ec7e6
push str._CUR
mov ecx, ebx
call fcn.00401abc
cmp esi, 2
jne 0x4ec7f7
push str._END
mov ecx, ebx
call fcn.00401abc
cmp dword [ebp + 0x54], 0
jl 0x4eabe4
test esi, esi
jne 0x4ebf98
push str._SET
mov ecx, ebx
call fcn.00401abc
jmp 0x4ebf98
push dword [ebp + 0x54]
mov ecx, ebx
call fcn.004e6c53
jmp case.0x4eaacc.54
push dword [ebp + 0x54]
mov ecx, ebx
call fcn.004e6c53
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6c53
jmp 0x4eb989
cmp dword [ebp + 0x50], 0
mov ecx, ebx
je 0x4ec86b
push str.Set
call fcn.00401abc
cmp dword [ebp + 0x54], 0
mov eax, 0x5804f0
mov ecx, 0x5804ec
cmovne eax, ecx
push eax
jmp 0x4eabdd
push str.Text
call fcn.00401abc
jmp 0x4eb6cd
mov edi, dword [ebp + 0x58]
mov ecx, ebx
test edi, edi
js 0x4ec8a4
push 0x5898dc
call fcn.00401abc
push edi
mov ecx, ebx
call fcn.004e6fef
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6be0
jmp 0x4ebf98
push 0x58a6f8
call fcn.00401abc
or esi, 0xffffffff
mov ecx, ebx
sub esi, edi
push esi
call fcn.004e6fef
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6be0
push 4
pop ecx
push 0x10
mov eax, ecx
test esi, esi
pop ecx
cmove eax, ecx
push dword [ebp + eax + 0x50]
jmp 0x4eb19e
mov edi, dword [ebp + 0x58]
xor esi, esi
cmp dword [ebp + 0x5c], esi
jne 0x4ec8fa
test edi, edi
jne 0x4ec8f0
mov eax, str.InstTypeGetText
jmp 0x4ec90a
push 2
mov eax, str.InstTypeSetText
pop esi
jmp 0x4ec90f
test edi, edi
jne 0x4ec905
mov eax, str.GetCurInstType
jmp 0x4ec90f
mov eax, str.SetCurInstType
xor ecx, ecx
lea esi, [ecx + 1]
push eax
mov ecx, ebx
call fcn.00401abc
push esi
lea eax, [ebp + 0x50]
mov ecx, ebx
push eax
call fcn.004e6c6c
test edi, edi
jne 0x4eabe4
jmp 0x4ebf98
xor eax, eax
inc eax
cmp dword [ebx + 0x50], eax
jne 0x4ec987
cmp dword [ebp + 0x5c], 0
mov ecx, ebx
jne 0x4ec952
push str.GetKnownFolderPath
call fcn.00401abc
push dword [ebp + 0x54]
jmp 0x4ec836
cmp dword [ebp + 0x5c], eax
jne 0x4ec97d
push str.ReadMemory
call fcn.00401abc
push dword [ebp + 0x54]
mov ecx, ebx
call fcn.004e6c53
push dword [ebp + 0x58]
mov ecx, ebx
call fcn.004e6be0
push dword [ebp + 0x60]
jmp 0x4eb19e
push str.GetOsInfo
jmp 0x4eabdf
push str.GetLabelAddr
jmp 0x4eabdd
cmp dword [ebp + 0x50], 0
mov eax, 0x58ab60
mov ecx, str._off
jmp 0x4ec862
xor ecx, ecx
jmp 0x4eabe7
mov ecx, dword [ebp + 0x70]
jmp 0x4eabea
push eax
mov ecx, ebx
call fcn.004e7064
inc esi
cmp esi, edi
jb 0x4eac3c
mov ecx, ebx
call fcn.004e8a12
mov esi, dword [ebp + 0x44]
mov edx, dword [ebp + 0x48]
push 0x1c
pop eax
add esi, eax
inc edx
mov eax, dword [ebp + 0x7c]
mov dword [ebp + 0x48], edx
mov dword [ebp + 0x44], esi
cmp edx, dword [eax + 4]
jb 0x4ea8ce
mov al, byte [ebp + 0x6f]
mov edi, dword [ebp + 0x30]
mov esi, dword [ebp + 0x2c]
test al, al
je 0x4eca33
cmp edi, dword [ebx + 0x84]
jae 0x4eca96
imul eax, edi, 0x18
mov ecx, dword [eax + esi + 0xc]
mov eax, dword [eax + esi + 8]
inc eax
add eax, ecx
cmp eax, edx
jne 0x4eca30
mov ecx, ebx
call fcn.004ea0de
mov edx, dword [ebp + 0x48]
xor al, al
inc edi
mov byte [ebp + 0x6f], al
mov dword [ebp + 0x30], edi
jmp 0x4eca33
mov esi, dword [ebp + 0x2c]
mov al, dl
jmp 0x4eca33
mov al, byte [ebp + 0x6f]
cmp edi, dword [ebx + 0x84]
jae 0x4eca96
imul edi, edi, 0x18
add edi, esi
mov esi, dword [ebp + 0x30]
test al, al
je 0x4eca6c
mov eax, dword [edi + 0xc]
add eax, dword [edi + 8]
cmp eax, edx
je 0x4eca5d
push str.SECTION_ERROR
mov ecx, ebx
call fcn.004e68dd
mov ecx, ebx
call fcn.004ea0de
xor al, al
inc esi
add edi, 0x18
jmp 0x4eca85
push esi
push edi
mov ecx, ebx
call fcn.004e9ece
test al, al
je 0x4eca82
mov al, byte [ebp + 0x6f]
inc esi
add edi, 0x18
jmp 0x4eca88
xor eax, eax
inc eax
mov byte [ebp + 0x6f], al
mov edx, dword [ebp + 0x48]
cmp esi, dword [ebx + 0x84]
jb 0x4eca43
mov esi, dword [ebp + 0x2c]
push dword [ebp - 0xbc]
call fcn.00566e0e
push dword [ebp - 0xb0]
call fcn.00566e0e
push esi
call fcn.00566e0e
push dword [ebp + 0x28]
call fcn.00566e0e
mov ecx, dword [ebp - 0xc]
add esp, 0x10
xor eax, eax
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
add ebp, 0x74
leave
ret 4