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

Disassembly:
push ebp
sub esp, 0x70
mov eax, 0x575a40
call fcn.00566548
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.004847d6
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 0x4ea275
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 0x4ea26c
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 0x4ea23f
cmp dword [ebx + 0x7c], 0
je 0x4ea6f8
mov ecx, ebx
call fcn.004ecdb1
push dword [ebx + 0x7c]
mov ecx, ebx
push str.PAGES
call fcn.004e9f8a
mov eax, dword [ebx + 0x7c]
cmp eax, 0x1000
ja 0x4ea6ec
mov ecx, dword [ebx + 0x34]
cmp dword [ebx + 0x78], ecx
ja 0x4ea6ec
sub ecx, dword [ebx + 0x78]
shl eax, 6
cmp eax, ecx
ja 0x4ea6ec
push 0x57ddd0
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 0x4ea6f8
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 0x4ea348
cmp edi, dword [eax + 4]
jae 0x4ea348
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 0x4ea36a
cmp edx, dword [eax + 4]
jae 0x4ea36a
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 0x4ea391
mov eax, dword [ebp + 0x7c]
cmp edx, dword [eax + 4]
jae 0x4ea391
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 0x4ea3a5
push 0x5892bc
mov ecx, ebx
call fcn.004e6e3f
push str.Page
mov ecx, ebx
call fcn.004e697e
push dword [ebp + 0x40]
mov ecx, ebx
call fcn.004e7149
push 0x57ddd0
mov ecx, ebx
call fcn.00401abc
mov eax, dword [ebp + 0x38]
and eax, 0x200
mov dword [ebp + 0x68], eax
je 0x4ea3f0
push str.PageEx
mov ecx, ebx
call fcn.00401abc
cmp byte [ebx + 0x17f], 0
jne 0x4ea40c
push 0x5892d4
jmp 0x4ea405
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 0x4ea421
push dword [edi*4 + 0x588790]
call fcn.00401abc
jmp 0x4ea427
push edi
call fcn.004e7149
mov eax, dword [ebp + 0x20]
test eax, eax
jns 0x4ea43e
cmp dword [ebp + 0x3c], 0
jge 0x4ea43e
cmp dword [ebp + 0x24], 0
jge 0x4ea43e
xor cl, cl
jmp 0x4ea441
xor ecx, ecx
inc ecx
cmp dword [ebp + 0x68], 0
mov byte [ebp + 0x4f], cl
je 0x4ea46d
push 0x57ddd0
mov ecx, ebx
call fcn.00401abc
cmp byte [ebp + 0x4f], 0
je 0x4ea49b
push str.PageCallbacks
mov ecx, ebx
call fcn.004ed120
mov eax, dword [ebp + 0x20]
jmp 0x4ea471
test cl, cl
je 0x4ea4b8
push eax
push esi
mov ecx, ebx
call fcn.004e6cef
cmp edi, 6
je 0x4ea48a
push dword [ebp + 0x3c]
mov ecx, ebx
push esi
call fcn.004e6cef
push dword [ebp + 0x24]
mov ecx, ebx
push esi
call fcn.004e6cef
cmp dword [ebp + 0x68], 0
je 0x4ea4b8
push 0x57ddd0
mov ecx, ebx
call fcn.00401abc
push str.Caption
push dword [ebp]
mov ecx, ebx
call fcn.004e6c57
jmp 0x4ea4d8
push 4
pop eax
test byte [ebp + 0x38], al
je 0x4ea4cc
push str.__ENABLECANCEL
mov ecx, ebx
call fcn.00401abc
push 0x57ddd0
mov ecx, ebx
call fcn.00401abc
test edi, edi
jne 0x4ea5bb
test byte [ebp + 0x38], 0x60
je 0x4ea541
push str.LicenseForceSelection
mov ecx, ebx
call fcn.004ed120
test byte [ebp + 0x38], 0x40
mov ecx, ebx
je 0x4ea507
mov eax, 0x57f4f0
push eax
call fcn.00401abc
jmp 0x4ea53a
mov eax, dword [ebp - 0x10]
cmp eax, 0x6d
jne 0x4ea516
push str.checkbox
jmp 0x4ea520
cmp eax, 0x6c
jne 0x4ea527
push str.radiobuttons
call fcn.00401abc
jmp 0x4ea52d
push eax
call fcn.004e7149
push 2
lea eax, [ebp - 0x2c]
mov ecx, ebx
push eax
call fcn.004e6c2c
mov ecx, ebx
call fcn.004e8afb
cmp dword [ebp - 0x34], 0
jne 0x4ea54d
cmp dword [ebp + 0x34], 0
je 0x4ea579
push str.LicenseText
mov ecx, ebx
call fcn.004ed120
push dword [ebp - 0x34]
mov ecx, ebx
call fcn.004e6cc5
mov eax, dword [ebp + 0x34]
test eax, eax
je 0x4ea572
push eax
mov ecx, ebx
call fcn.004e6cc5
mov ecx, ebx
call fcn.004e8afb
cmp dword [ebp - 0x30], 0
je 0x4ea6a0
push str.LicenseData
mov ecx, ebx
call fcn.004ed120
mov eax, dword [ebp - 0x30]
mov ecx, ebx
test eax, eax
jns 0x4ea5a0
push eax
call fcn.004e6cc5
jmp 0x4ea5a8
push 0xffffffffffffffff
push eax
call fcn.004e69de
and dword [ebx + 0xc0], 0
mov ecx, ebx
call fcn.004e8afb
jmp 0x4ea6a0
xor eax, eax
inc eax
cmp edi, eax
jne 0x4ea5ce
push str.ComponentsText
push 3
jmp 0x4ea695
cmp edi, 2
jne 0x4ea638
push str.DirText
push 4
pop eax
push eax
lea eax, [ebp - 0x34]
mov ecx, ebx
push eax
call fcn.004e6c80
cmp dword [ebp - 0x24], 0
je 0x4ea611
push str.DirVar
mov ecx, ebx
call fcn.004ed120
mov eax, dword [ebp - 0x24]
mov ecx, ebx
dec eax
push eax
call fcn.004e6d38
push 0x57ddd0
mov ecx, ebx
call fcn.00401abc
test dword [ebp + 0x38], 0x400
je 0x4ea6a0
push str.DirVerify_leave
mov ecx, ebx
call fcn.004ed120
push 0x57ddd0
mov ecx, ebx
call fcn.00401abc
jmp 0x4ea6a0
cmp edi, 3
jne 0x4ea65d
push str.CompletedText
push dword [ebp - 0x2c]
mov ecx, ebx
call fcn.004e6c57
push str.DetailsButtonText
push dword [ebp - 0x30]
mov ecx, ebx
call fcn.004e6c57
jmp 0x4ea6a0
push 4
pop eax
cmp edi, eax
jne 0x4ea6a0
cmp dword [ebp - 0x24], 0
je 0x4ea68e
push str.DirVar
mov ecx, ebx
call fcn.004ed120
mov eax, dword [ebp - 0x24]
mov ecx, ebx
dec eax
push eax
call fcn.004e6d38
push 0x57ddd0
mov ecx, ebx
call fcn.00401abc
push str.UninstallText
push 2
lea eax, [ebp - 0x34]
mov ecx, ebx
push eax
call fcn.004e6c80
cmp dword [ebp + 0x68], 0
je 0x4ea6b9
push str.PageExEnd
mov ecx, ebx
call fcn.00401abc
mov ecx, ebx
call fcn.004e8afb
cmp edi, 5
jne 0x4ea6ca
push 0x5892c0
mov ecx, ebx
call fcn.004e6e3f
mov ecx, ebx
call fcn.004e8afb
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 0x4ea2e0
jmp 0x4ea6f8
push str.Pages_error
mov ecx, ebx
call fcn.004e69c2
and dword [ebp + 0x2c], 0
mov ecx, ebx
mov byte [ebp - 4], 1
call fcn.004ecdb1
push dword [ebx + 0x84]
mov ecx, ebx
push str.SECTIONS
call fcn.004e9f8a
mov eax, dword [ebp + 0x7c]
mov ecx, ebx
push dword [eax + 4]
push str.COMMANDS
call fcn.004e9f8a
push 0x57ddd0
mov ecx, ebx
call fcn.00401abc
mov eax, dword [ebx + 0x84]
cmp eax, 0x8000
jbe 0x4ea752
push str.Sections_error
mov ecx, ebx
call fcn.004e69c2
jmp 0x4ea7b0
test eax, eax
je 0x4ea7b0
push eax
lea ecx, [ebp + 0x2c]
call fcn.004e7198
mov edi, dword [ebx + 0x80]
add edi, dword [ebx + 0x14]
and dword [ebp + 0x3c], 0
cmp dword [ebx + 0x84], 0
jbe 0x4ea7b0
mov eax, dword [ebp + 0x2c]
mov dword [ebp + 0x34], eax
push edi
mov ecx, eax
call fcn.004e9f61
mov eax, dword [ebp + 0x34]
mov edx, dword [ebp + 0x7c]
mov ecx, dword [eax + 8]
cmp ecx, dword [edx + 4]
jae 0x4ea795
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 0x4ea77b
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 0x4ea879
push dword [edi]
mov ecx, ebx
call fcn.004e79bb
cmp eax, 0x16
ja 0x4ea815
je 0x4ea811
dec eax
sub eax, 1
je 0x4ea80a
sub eax, 3
je 0x4ea7f4
sub eax, 7
je 0x4ea827
dec eax
sub eax, 1
jne 0x4ea85c
push 3
jmp 0x4ea831
xor ecx, ecx
inc ecx
cmp dword [edi + 8], ecx
je 0x4ea80d
mov eax, dword [edi + 4]
test eax, eax
jle 0x4ea85c
or dword [esi + eax*4 - 4], 2
jmp 0x4ea85c
xor ecx, ecx
inc ecx
mov eax, ecx
jmp 0x4ea835
push 0x28
jmp 0x4ea831
push 0x1a
pop ecx
sub eax, ecx
je 0x4ea82f
dec eax
sub eax, 1
je 0x4ea82b
sub eax, 6
jne 0x4ea85c
push 6
jmp 0x4ea831
push 0x1c
jmp 0x4ea831
push 0xc
xor ecx, ecx
inc ecx
pop eax
mov ebx, dword [ebp + 0x7c]
lea edx, [edi + 4]
test cl, al
je 0x4ea852
mov ecx, dword [edx]
test ecx, ecx
jle 0x4ea84f
cmp ecx, dword [ebx + 4]
jg 0x4ea84f
or dword [esi + ecx*4 - 4], 1
xor ecx, ecx
inc ecx
add edx, 4
shr eax, 1
jne 0x4ea83b
mov ebx, dword [ebp - 0x14]
mov edx, dword [ebp + 0x3c]
push 0x1c
pop eax
add edi, eax
inc edx
mov eax, dword [ebp + 0x7c]
mov dword [ebp + 0x3c], edx
mov ecx, dword [eax + 4]
mov dword [ebp + 0x34], ecx
cmp edx, ecx
jb 0x4ea7ca
mov eax, dword [ebp + 0x7c]
xor edi, edi
mov edx, dword [ebx + 0x14]
or dword [ebp - 0x44], 0xffffffff
or dword [ebp - 0x10], 0xffffffff
add edx, dword [eax]
mov dword [ebp + 0x3c], edx
test ecx, ecx
je 0x4ea8e1
mov eax, dword [esi + edi*4]
mov dword [ebp + 0x1c], eax
test al, 0x3e
je 0x4ea8be
mov eax, ecx
sub eax, edi
cmp eax, 0xe
jb 0x4ea8be
push 0xe
push 0x5887d8
push edx
mov ecx, ebx
call fcn.004e736e
test al, al
jne 0x4ea8cd
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 0x4ea892
jmp 0x4ea8e1
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.004e81ac
lea ecx, [ebp - 0xb0]
mov dword [ebp - 0x90], eax
call fcn.0040260e
lea ecx, [ebp - 0xbc]
mov byte [ebp - 4], 2
call fcn.0040238d
push str._INSTDIR
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 3
call fcn.00402595
mov esi, eax
push 4
pop eax
lea ecx, [ebx + 0x198]
mov byte [ebp - 4], al
call fcn.00403988
push esi
lea ecx, [ebx + 0x198]
call fcn.00402b6f
push dword [ebp - 0x60]
mov byte [ebp - 4], 3
call fcn.0056651e
lea ecx, [ebp - 0x60]
mov dword [esp], str._INSTDIR
call fcn.0040235f
mov esi, eax
lea ecx, [ebx + 0x1a4]
mov byte [ebp - 4], 5
call fcn.00403988
push esi
lea ecx, [ebx + 0x1a4]
call fcn.00433c24
push dword [ebp - 0x60]
mov byte [ebp - 4], 3
call fcn.0056651e
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 0x4ecb18
push dword [esi]
mov ecx, ebx
call fcn.004e79bb
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 0x4eaa42
imul esi, eax, 0x18
mov edi, eax
mov al, byte [ebp + 0x6f]
add esi, dword [ebp + 0x2c]
test al, al
je 0x4eaa0d
mov eax, dword [esi + 8]
inc eax
add eax, dword [esi + 0xc]
cmp eax, dword [ebp + 0x48]
jne 0x4eaa3f
mov ecx, ebx
call fcn.004ea1cd
xor al, al
inc edi
add esi, 0x18
jmp 0x4eaa34
mov eax, dword [ebp + 0x48]
cmp dword [esi + 8], eax
jne 0x4eaa3f
push edi
push esi
mov ecx, ebx
call fcn.004e9fbd
test al, al
je 0x4eaa31
xor eax, eax
inc eax
inc edi
mov byte [ebp + 0x6e], al
add esi, 0x18
mov al, byte [ebp + 0x6f]
jmp 0x4eaa37
xor eax, eax
inc eax
mov byte [ebp + 0x6f], al
cmp edi, dword [ebx + 0x84]
jb 0x4ea9ee
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 0x4eab35
cmp eax, 0x40
je 0x4eab35
test al, 0x3e
je 0x4eab14
cmp ecx, dword [ebp - 0x44]
jne 0x4eaa7b
push 0x5892bc
mov ecx, ebx
call fcn.004e6e3f
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.004e6f37
test byte [ebp + 0x70], 0x1c
je 0x4eab02
push 0x5892a4
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.004e7149
mov eax, dword [ebp + 0x70]
test al, 0x10
je 0x4eaadf
push str.__Leave
mov ecx, ebx
call fcn.00401abc
mov eax, dword [ebp + 0x70]
test al, 4
je 0x4eaaf2
push str.__Pre
mov ecx, ebx
call fcn.00401abc
mov eax, dword [ebp + 0x70]
test al, 8
je 0x4eab02
push str.__Show
mov ecx, ebx
call fcn.00401abc
push 0x57ddd0
mov ecx, ebx
call fcn.00401abc
mov eax, dword [ebp + 0x70]
mov ecx, dword [ebp + 0x48]
test al, 1
je 0x4eab35
push ecx
mov ecx, ebx
call fcn.004e6ff5
push 0x3a
mov ecx, ebx
call fcn.00401a43
push 0x57ddd0
mov ecx, ebx
call fcn.00401abc
mov ecx, dword [ebp + 0x68]
xor eax, eax
inc eax
cmp ecx, eax
je 0x4eab56
mov eax, dword [ebp + 0x38]
mov ecx, ebx
cmp dword [ebp + 0x48], eax
setb al
movzx eax, al
push eax
call fcn.004ed105
mov ecx, dword [ebp + 0x68]
xor eax, eax
mov dword [ebp + 0x70], eax
cmp ecx, 0x4a
jae 0x4eab8a
cmp ecx, dword [ebp - 0x90]
jae 0x4eab8a
movzx eax, byte [ecx + 0x588398]
mov dword [ebp + 0x70], eax
mov eax, dword [ecx*4 + 0x5883e8]
test eax, eax
je 0x4eabaf
push eax
mov ecx, ebx
call fcn.00401abc
mov ecx, dword [ebp + 0x68]
jmp 0x4eabaf
push str.Command
mov ecx, ebx
call fcn.00401abc
mov eax, dword [ebp + 0x68]
mov ecx, ebx
push eax
call fcn.004e7149
mov ecx, dword [ebp + 0x68]
mov eax, 0x1000
cmp ecx, eax
jae 0x4eabaf
add ecx, eax
lea eax, [ecx - 1]
cmp eax, 0x46
ja case.0x4eabbb.4
jmp dword [eax*4 + 0x4ecbc4]
mov eax, dword [ebp + 0x54]
test eax, eax
setne cl
mov byte [ebp + 0x6e], cl
test eax, eax
je 0x4eac94
mov edi, dword [ebp + 0x50]
lea eax, [ebp - 0x94]
push eax
push edi
mov ecx, ebx
call fcn.004e87b6
mov esi, eax
cmp esi, dword [ebp + 0x24]
je 0x4eabf3
cmp esi, 0x16
jne 0x4eabf9
add edi, dword [ebp - 0x94]
push edi
mov ecx, ebx
call fcn.004ecd41
cmp byte [ebx + 0x28], 0
je 0x4eac4d
cmp esi, dword [ebp + 0x24]
jne 0x4eac15
lea eax, [ebp - 0xb0]
push eax
jmp 0x4eac29
cmp esi, 0x16
jne 0x4eac33
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.00403225
lea esi, [ebx + 0x198]
mov ecx, esi
call fcn.00403988
lea eax, [ebx + 0x44]
mov ecx, esi
push eax
call fcn.00402b6f
jmp 0x4eac91
cmp esi, dword [ebp + 0x24]
jne 0x4eac5b
lea eax, [ebp - 0xbc]
push eax
jmp 0x4eac6f
cmp esi, 0x16
jne 0x4eac79
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.004031af
lea esi, [ebx + 0x1a4]
mov ecx, esi
call fcn.00403988
lea eax, [ebx + 0x38]
mov ecx, esi
push eax
call fcn.00433c24
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.004e6cc5
cmp dword [ebp + 0x58], 0
je 0x4eacd3
push 0x5892ac
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 0x4eaceb
sub eax, edx
sub edi, 1
jne 0x4eacdf
cmp edi, ecx
jbe 0x4ecab3
push str.________Unknown_Params:
mov ecx, ebx
call fcn.00401abc
xor esi, esi
test edi, edi
je 0x4ead15
push dword [ebp + esi*4 + 0x50]
mov ecx, ebx
call fcn.004e6cc5
inc esi
cmp esi, edi
jb 0x4ead05
push 0x589b34
mov ecx, ebx
call fcn.00401abc
xor esi, esi
test edi, edi
je 0x4ecab3
push 0x20
mov ecx, ebx
call fcn.00401a43
mov eax, dword [ebp + esi*4 + 0x50]
cmp eax, 0xfff00000
jbe 0x4ecaa2
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 0x4ecaaa
mov eax, dword [ebp + 0x24]
mov edi, dword [ebp + 0x5c]
mov esi, dword [ebp + 0x58]
cmp dword [ebp + 0x50], eax
jne 0x4eade6
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.004e89b4
test al, al
je 0x4eade6
test esi, esi
jne 0x4eae46
test edi, edi
jne 0x4eae46
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.0040272f
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.0040265b
test esi, esi
jne 0x4eae46
test edi, edi
jne 0x4eae46
cmp dword [ebp + 0x60], edi
jne 0x4eae46
cmp dword [ebp + 0x64], edi
jne 0x4eae46
mov eax, dword [ebp + 0x54]
test eax, eax
je 0x4eae46
cmp eax, dword [ebx + 0x30]
jae 0x4eae46
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.004e88e0
test al, al
je 0x4eae46
push str.GetCurrentAddress
mov ecx, ebx
call fcn.00401abc
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6d38
push 0x5892ac
mov ecx, ebx
call fcn.00401abc
push str.StrCpy
mov ecx, ebx
call fcn.00401abc
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6d38
push dword [ebp + 0x54]
mov ecx, ebx
call fcn.004e6cc5
push 2
lea eax, [ebp + 0x58]
push eax
mov ecx, ebx
call fcn.004e6c2c
jmp 0x4eacd3
lea ecx, [ebx + 0x1c]
call fcn.004e6ba4
push dword [ebp + 0x54]
mov esi, eax
mov ecx, ebx
push esi
mov dword [ebp + 0x14], esi
call fcn.004ecdd7
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 0x4eaef3
push str.SetOverwrite
mov ecx, ebx
call fcn.00401abc
push esi
push 5
push 0x5887c4
mov ecx, ebx
call fcn.004e7119
push 0x57ddd0
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.004ed105
mov ecx, dword [ebp + 0x68]
mov edx, dword [ebp + 0x10]
shr ecx, 3
mov dword [ebp + 0x68], ecx
cmp ecx, edx
je 0x4eafc2
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 0x4eaf2d
cmp esi, 5
je 0x4eaf28
cmp eax, 5
jne 0x4eaf45
or esi, 0xffffffff
jmp 0x4eaf3f
cmp edi, 0x15
jne 0x4eaf45
cmp esi, 2
je 0x4eaf3c
cmp eax, 2
jne 0x4eaf45
push 0xfffffffffffffffe
pop esi
cmp esi, edx
je 0x4eafbf
jmp 0x4eaf74
push str.AllowSkipFiles__Overwrite_:
mov ecx, ebx
call fcn.004e697e
push edi
mov ecx, ebx
call fcn.004e89dd
test esi, esi
je 0x4eaf71
push str.__SD
mov ecx, ebx
call fcn.00401abc
push esi
mov ecx, ebx
call fcn.004e6e5b
mov esi, dword [ebp + 0x10]
test esi, esi
jns 0x4eaf9c
push str.AllowSkipFiles
mov ecx, ebx
call fcn.00401abc
cmp esi, 0xffffffff
mov ecx, 0x57f4f0
mov eax, 0x57f4ec
cmovne eax, ecx
mov ecx, ebx
push eax
call fcn.00401abc
push 0x57ddd0
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.004ed105
mov ecx, dword [ebp + 0x68]
mov dword [ebp + 0x10], ecx
push 0x5895f0
mov ecx, ebx
call fcn.00401abc
push dword [ebp + 0x54]
mov ecx, ebx
call fcn.004e6cc5
push 0xa
push dword [ebp + 0x54]
mov ecx, ebx
call fcn.004e89b4
test al, al
je 0x4eacd3
mov ecx, dword [ebp + 0x48]
xor edx, edx
inc edx
push 0x1c
cmp ecx, edx
mov edx, dword [ebp + 0x44]
pop eax
jbe 0x4eb006
cmp dword [edx - 0x1c], 2
push 0x1a
pop esi
cmove eax, esi
cmp ecx, eax
jbe 0x4eacd3
imul eax, eax, 0x1c
mov esi, edx
sub esi, eax
cmp dword [esi], 0x19
jne 0x4eacd3
push 6
add esi, 4
lea edi, [ebp - 0x84]
pop ecx
rep movsd dword es:[edi], dword [esi]
cmp dword [ebp - 0x84], 0xe
jne 0x4eacd3
cmp dword [ebp - 0x7c], 0
jne 0x4eacd3
cmp dword [ebp - 0x78], 0
jne 0x4eacd3
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.004ecdd7
jmp 0x4eacd3
cmp dword [ebp + 0x48], 0
mov esi, dword [ebp + 0x54]
mov edx, dword [ebp + 0x50]
jbe 0x4eb0a4
mov eax, dword [ebp + 0x44]
cmp dword [eax - 0x1c], 0x14
jne 0x4eb0a4
cmp edx, dword [eax - 0x14]
jne 0x4eb0a4
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.004e6cc5
push 0x20
mov ecx, ebx
call fcn.00401a43
push esi
push 0x11
mov edx, 0x588640
mov ecx, ebx
call fcn.004e7920
jmp 0x4eacd3
mov esi, dword [ebp + 0x50]
test esi, esi
je 0x4eb1a9
push esi
mov ecx, ebx
call fcn.004e8924
test al, al
je 0x4eb1a9
mov edi, dword [ebp + 0x5c]
xor eax, eax
inc eax
mov byte [ebp + 0x6e], al
test edi, edi
je 0x4eb11d
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.004e87fa
cmp eax, 0x15
jne 0x4eb11d
mov eax, dword [ebp + 0x68]
mov ecx, ebx
push esi
add eax, edi
push eax
call fcn.004e71e2
mov byte [ebp + 0x6e], al
push esi
mov ecx, ebx
call fcn.004e6cc5
test edi, edi
je 0x4eb13d
push 0x5892ac
mov ecx, ebx
call fcn.00401abc
push edi
mov ecx, ebx
call fcn.004e6cc5
cmp byte [ebp + 0x6e], 0
jne 0x4eb14f
push str.alt_path_error
mov ecx, ebx
call fcn.004e699a
cmp dword [ebx + 0x58], 0x3e
ja 0x4eb166
push str.SKIP_possible_BadCmd
mov ecx, ebx
call fcn.004e699a
jmp 0x4eacd3
lea ecx, [ebx + 0x1c]
call fcn.004e6ba4
push dword [ebp + 0x50]
mov esi, eax
mov ecx, ebx
push esi
call fcn.004ecdd7
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 0x4eb1a0
cmp dword [esi + 0x24], 0xffffffff
je 0x4eb1a0
push edi
push esi
mov ecx, ebx
call fcn.004ecdd7
or dword [esi + 0x24], 0xffffffff
jmp 0x4eacd3
push str.bad_path
jmp 0x4eb15a
cmp byte [ebp + 0x4f], 0
mov edx, dword [ebp + 0x48]
je 0x4eb209
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax + 4]
dec eax
cmp edx, eax
je 0x4eb1d3
mov eax, dword [esi + edx*4 + 4]
test eax, eax
je 0x4eb209
xor ecx, ecx
inc ecx
cmp eax, ecx
je 0x4eb209
push str.FunctionEnd
mov ecx, ebx
call fcn.004e6e3f
mov eax, dword [ebp + 0x48]
inc eax
cmp eax, dword [ebp - 0x10]
jne 0x4eb1f4
push 0x5892c0
mov ecx, ebx
call fcn.004e6e3f
push 0x57ddd0
mov ecx, ebx
call fcn.00401abc
mov byte [ebp + 0x4f], 0
jmp 0x4eacd3
cmp byte [ebp + 0x6e], 0
jne 0x4eacd3
cmp byte [ebp + 0x6f], 0
je 0x4eb23f
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 0x4eb23f
mov ecx, ebx
call fcn.004ea1cd
inc esi
mov byte [ebp + 0x6f], 0
mov dword [ebp + 0x30], esi
jmp 0x4eacd3
push str.Return
mov ecx, ebx
call fcn.004ed120
push 0x57ddd0
jmp 0x4eaccc
cmp dword [ebp + 0x50], 0
mov ecx, ebx
jne 0x4eb267
push 0x589640
jmp 0x4eacce
push str.Goto
call fcn.00401abc
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6fa8
jmp 0x4eacd3
cmp dword [ebp + 0x50], 0
je 0x4eacd3
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6cc5
jmp 0x4eacd3
mov edi, dword [ebp + 0x48]
mov ecx, dword [ebp + 0x7c]
lea eax, [edi + 1]
cmp eax, dword [ecx + 4]
jae 0x4eb4a1
mov edx, dword [ebp + 0x44]
mov ecx, ebx
push dword [edx + 0x1c]
call fcn.004e79bb
cmp eax, 0x14
jne 0x4eb4a1
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.004e87fa
push 0x1a
pop ecx
cmp eax, ecx
jne 0x4eb4a1
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.004e79bb
cmp eax, 0xd
je 0x4eb307
cmp eax, 6
jne 0x4eb4a1
mov ecx, dword [ebp + 0x7c]
lea eax, [edi + 3]
mov dword [ebp + 0x68], eax
cmp eax, dword [ecx + 4]
jae 0x4eb4a1
mov edi, dword [ebp + 0x44]
mov esi, eax
add edi, 0x60
push dword [edi - 0xc]
mov ecx, ebx
call fcn.004e79bb
cmp eax, 0x1f
jne 0x4eb349
cmp dword [edi - 4], 0
jne 0x4eb349
cmp dword [edi], 0
jne 0x4eb349
push 0x1c
pop eax
add edi, eax
inc esi
mov eax, dword [ebp + 0x7c]
cmp esi, dword [eax + 4]
jb 0x4eb321
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 0x4eb4a1
sub eax, edi
mov ecx, ebx
imul edi, eax, 0x1c
add edi, dword [ebp + 0x44]
push dword [edi]
call fcn.004e79bb
cmp eax, 0x2c
jne 0x4eb4a1
mov eax, dword [ebp + 0x44]
mov ecx, ebx
push dword [eax + 0x24]
push dword [edi + 4]
call fcn.004e71e2
test al, al
je 0x4eb4a1
cmp dword [edi + 0xc], 0
jne 0x4eb4a1
lea ecx, [ebp - 0x20]
call fcn.0040238d
push dword [ebp + 0x14]
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 6
push eax
mov ecx, ebx
call fcn.004ecce0
mov ecx, dword [ebp - 0x1c]
push 4
pop eax
cmp ecx, eax
jb 0x4eb3e9
add ecx, 0xfffffffc
mov edx, str..dll
add ecx, dword [ebp - 0x20]
call fcn.00403e25
test al, al
je 0x4eb3e9
mov eax, dword [ebp - 0x1c]
lea ecx, [eax - 4]
cmp ecx, eax
jae 0x4eb3e9
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x1c], ecx
mov byte [eax + ecx], 0
push 0x589654
lea ecx, [ebp - 0x20]
call fcn.00402a41
lea ecx, [ebp - 0x60]
call fcn.0040238d
push dword [edi + 8]
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 7
push eax
mov ecx, ebx
call fcn.004ecce0
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp - 0x20]
call fcn.00402a13
lea eax, [ebp - 0x20]
mov ecx, ebx
push eax
call fcn.004e707c
xor eax, eax
inc eax
cmp dword [edi + 0x10], eax
jne 0x4eb43b
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 0x4eb471
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.004e6cc5
push 0x1c
pop eax
sub esi, eax
sub edi, 1
jne 0x4eb45b
mov esi, dword [ebp + 0x28]
mov ecx, ebx
call fcn.004e8afb
push 0x5892a4
mov ecx, ebx
call fcn.00401abc
mov eax, dword [ebp + 0x68]
push dword [ebp - 0x60]
inc eax
mov dword [ebp + 0x38], eax
call fcn.0056651e
push dword [ebp - 0x20]
mov byte [ebp - 4], 3
call fcn.0056651e
pop ecx
pop ecx
mov eax, dword [ebp + 0x44]
mov ecx, ebx
push dword [eax + 0x1c]
call fcn.004e79bb
mov edi, dword [ebp + 0x50]
cmp eax, 0xd
jne 0x4eb4fd
mov eax, dword [ebp + 0x44]
cmp dword [eax + 0x20], 0xd
jne 0x4eb4fd
cmp dword [eax + 0x28], 0
je 0x4eb4fd
test edi, edi
jle 0x4eb4fd
test byte [esi + edi*4 - 4], 0x80
je 0x4eb4fd
push str.InitPluginsDir
mov ecx, ebx
call fcn.00401abc
push 0x57ddd0
mov ecx, ebx
call fcn.00401abc
push 0x5892a4
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 0x4eb51f
or eax, 0xffffffff
mov ecx, ebx
sub eax, edi
push eax
call fcn.004e716d
jmp 0x4eacd3
jne 0x4eb52f
push 0x30
mov ecx, ebx
call fcn.00401a43
jmp 0x4eacd3
xor eax, eax
dec edi
inc eax
mov ecx, ebx
cmp dword [ebp + 0x54], eax
jne 0x4eb54e
push 0x3a
call fcn.00401a43
push edi
mov ecx, ebx
call fcn.004e6ff5
jmp 0x4eacd3
push edi
push esi
call fcn.004e6f37
jmp 0x4eacd3
cmp dword [ebp + 0x50], 8
jne 0x4eb570
cmp dword [ebp + 0x54], 0
jne 0x4eb570
push str._show
jmp 0x4eaccc
cmp dword [ebp + 0x54], 8
jne 0x4eb586
cmp dword [ebp + 0x50], 0
jne 0x4eb586
push str._hide
jmp 0x4eaccc
xor esi, esi
push 0x20
mov ecx, ebx
call fcn.00401a43
push dword [ebp + esi*4 + 0x50]
mov ecx, ebx
call fcn.004e70e7
inc esi
cmp esi, 2
jl 0x4eb588
jmp 0x4eacd3
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6cc5
lea eax, [ebp + 0x54]
push eax
mov ecx, ebx
call fcn.004e6fd1
jmp 0x4eacd3
lea ecx, [ebp - 0x40]
call fcn.0040238d
push dword [ebp + 0x54]
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 8
push eax
mov ecx, ebx
call fcn.004ecce0
mov esi, dword [ebp + 0x50]
mov edi, dword [ebp + 0x58]
cmp esi, 2
jne 0x4eb61e
test edi, edi
jne 0x4eb61e
xor eax, eax
inc eax
cmp dword [ebp - 0x3c], eax
jne 0x4eb5ff
mov eax, dword [ebp - 0x40]
cmp byte [eax], 0x30
mov eax, str.ClearErrors
je 0x4eb604
mov eax, str.SetErrors
push eax
mov ecx, ebx
call fcn.00401abc
push dword [ebp - 0x40]
mov byte [ebp - 4], 3
call fcn.0056651e
pop ecx
jmp 0x4eacd3
push 0x5896a4
mov ecx, ebx
call fcn.00401abc
push esi
mov ecx, ebx
call fcn.004e6f24
test edi, edi
je 0x4eb63d
push str._lastused
jmp 0x4eb605
mov ecx, dword [ebp - 0x40]
lea edx, [ebp + 0x40]
call fcn.004ed0cb
test al, al
je 0x4eb713
sub esi, 0
je 0x4eb6ed
sub esi, 1
je 0x4eb6db
sub esi, 3
je 0x4eb6ed
push 4
pop ecx
sub esi, ecx
je 0x4eb6c9
sub esi, ecx
je 0x4eb6ac
sub esi, 1
jne 0x4eb713
mov eax, dword [ebp + 0x40]
test eax, eax
jne 0x4eb689
mov esi, str.both
jmp 0x4eb704
cmp eax, 2
jne 0x4eb695
mov esi, str.textonly
jmp 0x4eb704
cmp eax, ecx
jne 0x4eb6a0
mov esi, str.listonly
jmp 0x4eb704
cmp eax, 6
jne 0x4eb713
mov esi, str.none
jmp 0x4eb704
cmp dword [ebp + 0x40], 0
jne 0x4eb6b9
mov esi, 0x5896e0
jmp 0x4eb704
cmp dword [ebp + 0x40], 0x100
jne 0x4eb713
mov esi, 0x5891c0
jmp 0x4eb704
cmp dword [ebp + 0x40], 2
jae 0x4eb713
mov esi, str.normal
mov eax, str.silent
jmp 0x4eb6fd
cmp dword [ebp + 0x40], 2
jae 0x4eb713
mov esi, str.current
mov eax, 0x5896cc
jmp 0x4eb6fd
cmp dword [ebp + 0x40], 2
jae 0x4eb713
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 0x4eb605
lea eax, [ebp - 0x40]
mov ecx, ebx
push eax
call fcn.004ed0b2
jmp 0x4eb60c
push dword [ebp + 0x58]
mov ecx, ebx
call fcn.004e6f24
lea eax, [ebp + 0x50]
jmp 0x4eb5b4
push dword [ebp + 0x54]
mov ecx, ebx
call fcn.004e6f24
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6d38
jmp 0x4eacd3
cmp dword [ebp + 0x58], 0
je 0x4eb760
push str.__REBOOTOK
mov ecx, ebx
call fcn.00401abc
xor esi, esi
push dword [ebp + esi*4 + 0x50]
mov ecx, ebx
call fcn.004e6cc5
inc esi
cmp esi, 2
jb 0x4eb762
cmp dword [ebp + 0x5c], 0
je 0x4eacd3
push 0x5892ac
mov ecx, ebx
call fcn.00401abc
push dword [ebp + 0x5c]
jmp 0x4eb28d
cmp dword [ebp + 0x58], 0
jne 0x4eb7a3
push str.__SHORT
mov ecx, ebx
call fcn.00401abc
push dword [ebp + 0x54]
mov ecx, ebx
call fcn.004e6d38
jmp case.0x4eabbb.6
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6d38
push dword [ebp + 0x54]
jmp 0x4eb28d
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6d38
lea ecx, [ebp - 0xc8]
call fcn.0040238d
push dword [ebp + 0x54]
lea eax, [ebp - 0xc8]
mov byte [ebp - 4], 9
push eax
mov ecx, ebx
call fcn.004ecce0
push str._TEMP
push dword [ebp - 0xc8]
call sub.msvcrt.dll_strcmp
pop ecx
pop ecx
test eax, eax
je 0x4eb812
lea eax, [ebp - 0xc8]
mov ecx, ebx
push eax
call fcn.004ed0b2
push dword [ebp - 0xc8]
jmp 0x4eb60f
push 4
pop eax
test byte [ebp + 0x54], al
je case.0x4eabbb.6
push str.__REBOOTOK
mov ecx, ebx
call fcn.00401abc
jmp case.0x4eabbb.6
mov esi, dword [ebp + 0x50]
mov ecx, ebx
push esi
call fcn.004e89dd
push dword [ebp + 0x54]
mov ecx, ebx
call fcn.004e6cc5
shr esi, 0x15
test esi, esi
je 0x4eb86a
push str.__SD
mov ecx, ebx
call fcn.00401abc
push esi
mov ecx, ebx
call fcn.004e6e5b
push 2
pop esi
mov eax, dword [ebp + esi*4 + 0x50]
test eax, eax
je 0x4eb888
push eax
mov ecx, ebx
call fcn.004e6e5b
push dword [ebp + esi*4 + 0x54]
mov ecx, ebx
call fcn.004e6f8f
add esi, 2
cmp esi, 6
jl 0x4eb86d
jmp 0x4eacd3
test byte [ebp + 0x54], 2
je case.0x4eabbb.21
push 0x58971c
mov ecx, ebx
call fcn.00401abc
jmp case.0x4eabbb.21
cmp dword [ebp + 0x60], 0
je 0x4eb8bb
push 0x53
mov ecx, ebx
call fcn.00401a43
xor esi, esi
push dword [ebp + esi*4 + 0x50]
mov ecx, ebx
call fcn.004e6cc5
inc esi
cmp esi, 2
jb 0x4eb8bd
lea eax, [ebp + 0x58]
jmp 0x4eb5b4
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.004e6d38
lea ecx, [ebp - 0x54]
call fcn.0040238d
push dword [ebp + 0x54]
lea eax, [ebp - 0x54]
mov byte [ebp - 4], 0xa
push eax
mov ecx, ebx
call fcn.004ecce0
test esi, esi
je 0x4eb941
mov ecx, dword [ebp - 0x50]
cmp ecx, 2
jb 0x4eb941
mov edx, dword [ebp - 0x54]
cmp byte [edx], 0x25
jne 0x4eb941
cmp byte [ecx + edx - 1], 0x25
jne 0x4eb941
dec ecx
mov dword [ebp - 0x50], ecx
push 0
mov byte [edx + ecx], 0
lea ecx, [ebp - 0x54]
call fcn.00402ea0
lea eax, [ebp - 0x54]
mov ecx, ebx
push eax
call fcn.004ed0b2
push dword [ebp - 0x54]
jmp 0x4eb60f
push 0x589740
mov ecx, ebx
call fcn.00401abc
mov esi, dword [ebp + 0x64]
test esi, 0x8000
je 0x4eb977
push 0x5891c0
mov ecx, ebx
call fcn.00401abc
push 0x589744
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 0x4eb9a4
push 0x55
mov ecx, ebx
call fcn.00401a43
xor esi, esi
push dword [ebp + esi*4 + 0x50]
mov ecx, ebx
call fcn.004e6cc5
inc esi
cmp esi, 2
jb 0x4eb9a6
push dword [ebp + 0x58]
mov ecx, ebx
call fcn.004e6f8f
cmp dword [ebp + 0x5c], 0
jne 0x4eb9d1
cmp dword [ebp + 0x60], 0
je 0x4eacd3
lea eax, [ebp + 0x5c]
jmp 0x4eb5b4
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6d38
mov esi, dword [ebp + 0x5c]
cmp esi, 0xe
jae 0x4eb9f3
mov al, byte [esi + 0x589748]
jmp 0x4eb9f5
mov al, 0x3f
mov byte [ebp + 0x20], al
cmp esi, 8
jb 0x4eba05
mov byte [ebp + 0x18], al
cmp esi, 0xa
jne 0x4eba09
mov byte [ebp + 0x18], 0
push dword [ebp + 0x54]
mov ecx, ebx
call fcn.004e6cc5
cmp esi, 7
je 0x4eba3d
cmp byte [ebp + 0x20], 0x5e
jne 0x4eba3d
push str.0xFFFFFFFF
push dword [ebp + 0x58]
mov ecx, ebx
call fcn.004e88e0
test al, al
je 0x4eba3d
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 0x4eacd3
cmp esi, 0xd
jne 0x4eba68
push dword [ebp + 0x20]
mov ecx, ebx
call fcn.00401a43
cmp byte [ebp + 0x18], 0
je 0x4eba78
push dword [ebp + 0x18]
mov ecx, ebx
call fcn.00401a43
push dword [ebp + 0x58]
jmp 0x4eb28d
cmp dword [ebp + 0x5c], 0
mov ecx, ebx
mov eax, str.Int64Fmt
jne 0x4eba92
mov eax, str.IntFmt
push eax
call fcn.00401abc
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6d38
lea eax, [ebp + 0x54]
push 2
push eax
mov ecx, ebx
call fcn.004e6d51
jmp 0x4eacd3
mov edi, dword [ebp + 0x58]
test edi, edi
je 0x4ebadf
push str.Exch
mov ecx, ebx
call fcn.00401abc
xor eax, eax
inc eax
cmp edi, eax
je 0x4eacd3
push edi
mov ecx, ebx
call fcn.004e6d1f
jmp 0x4eacd3
cmp dword [ebp + 0x54], 0
je 0x4ebaf6
push 0x589788
mov ecx, ebx
call fcn.00401abc
jmp case.0x4eabbb.54
mov edi, dword [ebp + 0x48]
xor eax, eax
lea ecx, [esi + edi*4]
cmp dword [ecx + eax*4 + 4], 0
jne 0x4ebb68
inc eax
cmp eax, 2
jb 0x4ebafe
mov eax, dword [ebp + 0x44]
cmp dword [eax + 0x1c], 0x1f
jne 0x4ebb68
xor ecx, ecx
inc ecx
cmp dword [eax + 0x28], ecx
jne 0x4ebb68
cmp dword [eax + 0x38], 0x1f
jne 0x4ebb68
cmp dword [eax + 0x40], 0
je 0x4ebb68
push dword [eax + 0x3c]
mov ecx, ebx
push dword [ebp + 0x50]
call fcn.004e89b4
test al, al
je 0x4ebb68
push str.Exch
mov ecx, ebx
call fcn.00401abc
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6cc5
mov ecx, ebx
call fcn.004e8afb
push 0x5892a4
mov ecx, ebx
call fcn.00401abc
lea eax, [edi + 3]
mov dword [ebp + 0x38], eax
push str.Push
jmp 0x4eb82e
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6d38
push dword [ebp + 0x54]
mov ecx, ebx
call fcn.004e6cc5
push 3
jmp 0x4eae68
push dword [ebp + 0x54]
mov ecx, ebx
call fcn.004e6cc5
lea ecx, [ebp - 0xe0]
call fcn.0040238d
push dword [ebp + 0x58]
lea eax, [ebp - 0xe0]
mov byte [ebp - 4], 0xb
push eax
mov ecx, ebx
call fcn.004ecce0
mov ecx, dword [ebp - 0xe0]
lea edx, [ebp + 0x34]
call fcn.004ed0cb
test al, al
je 0x4ebc0f
cmp dword [ebp + 0x34], 0xc
je 0x4ebbeb
push 0x10
pop eax
cmp dword [ebp + 0x34], eax
je 0x4ebbe4
cmp dword [ebp + 0x34], 0x30
jne 0x4ebc0f
mov esi, str.SETFONT
jmp 0x4ebbf0
mov esi, str.CLOSE
jmp 0x4ebbf0
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 0x4ebc1d
lea eax, [ebp - 0xe0]
mov ecx, ebx
push eax
call fcn.004ed0b2
mov edi, dword [ebp + 0x64]
xor esi, esi
lea ecx, [ebp - 0xd4]
call fcn.0040238d
xor eax, eax
mov byte [ebp - 4], 0xc
inc eax
mov ecx, esi
shl eax, cl
test edi, eax
je 0x4ebc4c
push str.STR:
lea ecx, [ebp - 0xd4]
call fcn.00402a41
push dword [ebp + esi*4 + 0x5c]
lea eax, [ebp - 0xd4]
mov ecx, ebx
push eax
call fcn.004ecce0
lea eax, [ebp - 0xd4]
mov ecx, ebx
push eax
call fcn.004ed0b2
push dword [ebp - 0xd4]
mov byte [ebp - 4], 0xb
call fcn.0056651e
inc esi
pop ecx
cmp esi, 2
jb 0x4ebc22
cmp dword [ebp + 0x50], 0
jl 0x4ebc92
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6d38
shr edi, 2
test edi, edi
je 0x4ebcad
push str.__TIMEOUT
mov ecx, ebx
call fcn.00401abc
push edi
mov ecx, ebx
call fcn.004e7149
push dword [ebp - 0xe0]
jmp 0x4eb60f
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6cc5
mov ecx, dword [ebx + 0x34]
mov esi, dword [ebx + 0x88]
cmp ecx, esi
jb 0x4ebdec
mov edx, dword [ebp + 0x54]
sub ecx, esi
cmp ecx, edx
jb 0x4ebdec
mov al, byte [ebx + 0x29]
push 0x18
mov dword [ebp + 0x68], eax
cmp byte [ebp + 0x68], 0
pop eax
push 0x1c
pop edi
cmovne eax, edi
sub ecx, edx
cmp ecx, eax
jb 0x4ebdec
push dword [ebp + 0x68]
lea eax, [edx + esi]
add eax, dword [ebx + 0x14]
lea ecx, [ebp - 0x88]
push eax
call fcn.004e9f1b
mov esi, dword [ebp - 0x74]
and esi, 8
jne 0x4ebd20
test byte [ebp - 0x74], 2
je 0x4ebd2c
push str.__BRANDING
mov ecx, ebx
call fcn.00401abc
lea ecx, [ebp - 0xf8]
call fcn.0040238d
xor ecx, ecx
mov byte [ebp - 4], 0xd
xor al, al
inc ecx
mov dword [ebp + 0x68], eax
cmp dword [ebp - 0x78], ecx
jne 0x4ebd60
push str._transparent
lea ecx, [ebp - 0xf8]
call fcn.00402a41
mov eax, dword [ebp + 0x68]
xor ecx, ecx
inc ecx
jmp 0x4ebd77
test byte [ebp - 0x74], 0x10
je 0x4ebd77
test esi, esi
jne 0x4ebd77
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 0x4ebd8a
cmp dword [ebp - 0xf4], esi
jne 0x4ebd8a
test al, al
je 0x4ebdb8
push 0x20
mov ecx, ebx
call fcn.00401a43
test byte [ebp - 0x74], 2
jne 0x4ebdac
test esi, esi
je 0x4ebdac
push dword [ebp - 0x88]
mov ecx, ebx
call fcn.004e6eef
jmp 0x4ebdb8
push 0x5892c4
mov ecx, ebx
call fcn.00401abc
push dword [ebp - 0xf8]
mov ecx, ebx
call fcn.00401abc
cmp byte [ebp + 0x68], 0
je 0x4ebde1
push 0x20
mov ecx, ebx
call fcn.00401a43
push dword [ebp - 0x84]
mov ecx, ebx
call fcn.004e6eef
push dword [ebp - 0xf8]
jmp 0x4eb60f
push str.bad_offset
jmp 0x4eb15a
push str.__IMGID
mov ecx, ebx
call fcn.00401abc
push dword [ebp + 0x54]
mov ecx, ebx
call fcn.004e7149
xor eax, eax
inc eax
cmp dword [ebp + 0x58], eax
jne case.0x4eabbb.6
push str.__RESIZETOFIT
jmp 0x4eb82e
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6d38
push dword [ebp + 0x54]
mov ecx, ebx
call fcn.004e6cc5
push 2
lea eax, [ebp + 0x58]
mov ecx, ebx
push eax
call fcn.004e6c2c
xor eax, eax
inc eax
test byte [ebp + 0x60], al
je 0x4ebe57
push str.__ITALIC
mov ecx, ebx
call fcn.00401abc
test byte [ebp + 0x60], 2
je 0x4ebe69
push str.__UNDERLINE
mov ecx, ebx
call fcn.00401abc
push 4
pop edx
test byte [ebp + 0x60], dl
je 0x4eca9a
push str.__STRIKE
jmp 0x4eaccc
lea ecx, [ebp - 0xec]
call fcn.0040238d
lea ecx, [ebp + 4]
mov byte [ebp - 4], 0xe
call fcn.0040238d
push dword [ebp + 0x50]
lea eax, [ebp - 0xec]
mov byte [ebp - 4], 0xf
push eax
mov ecx, ebx
call fcn.004ecce0
push dword [ebp + 0x54]
lea eax, [ebp + 4]
mov ecx, ebx
push eax
call fcn.004ecce0
cmp dword [ebp + 0x5c], 0
je 0x4ebec9
push 0x589830
jmp 0x4ebfd2
mov ecx, dword [ebp + 4]
lea edx, [ebp - 0x98]
mov byte [ebp + 0x6e], 0
call fcn.004ed0cb
mov esi, dword [ebp - 0x98]
test al, al
je 0x4ebf45
cmp esi, 0xc
jae 0x4ebf45
mov eax, dword [ebp + 4]
lea ecx, [ebp + 4]
and dword [ebp + 8], 0
push 0x589840
mov byte [eax], 0
call fcn.00402a41
push 0x589288
lea ecx, [ebp + 4]
call fcn.00402a41
push dword [esi*4 + 0x588728]
lea ecx, [ebp + 4]
call fcn.00402a41
mov ecx, dword [ebp + 8]
cmp dword [ebp + 0xc], ecx
jne 0x4ebf30
lea ecx, [ebp + 4]
call fcn.00403121
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.004e89b4
cmp byte [ebp + 0x6e], 0
je 0x4ebfcd
cmp dword [ebp + 0x58], 0
je 0x4ebf9a
test esi, esi
jne 0x4ebf9a
test al, al
je 0x4ebf9a
push str.HideWindow
mov ecx, ebx
call fcn.00401abc
push dword [ebp + 4]
call fcn.0056651e
push dword [ebp - 0xec]
mov byte [ebp - 4], 3
call fcn.0056651e
pop ecx
jmp 0x4eb618
cmp esi, 5
jne 0x4ebfcd
test al, al
je 0x4ebfcd
mov ecx, dword [ebp + 0x7c]
mov eax, dword [ebp + 0x48]
inc eax
cmp eax, dword [ecx + 4]
jae 0x4ebfcd
mov eax, dword [ebp + 0x44]
mov ecx, ebx
push dword [eax + 0x1c]
call fcn.004e79bb
cmp eax, 8
jne 0x4ebfcd
push 0x589850
mov ecx, ebx
call fcn.00401abc
push 0x589858
mov ecx, ebx
call fcn.00401abc
lea eax, [ebp - 0xec]
mov ecx, ebx
push eax
call fcn.004ed0b2
lea eax, [ebp + 4]
mov ecx, ebx
push eax
call fcn.004ed0b2
jmp 0x4ebf7d
xor esi, esi
push dword [ebp + esi*4 + 0x50]
mov ecx, ebx
call fcn.004e6cc5
inc esi
cmp esi, 2
jb 0x4ebff6
cmp dword [ebp + 0x58], 0
jne 0x4ec015
xor eax, eax
inc eax
cmp dword [ebp + 0x5c], eax
je 0x4ec03a
push dword [ebp + 0x58]
mov ecx, ebx
call fcn.004e6cc5
xor eax, eax
inc eax
cmp dword [ebp + 0x5c], eax
je 0x4ec03a
push 0x20
mov ecx, ebx
call fcn.00401a43
push dword [ebp + 0x5c]
mov ecx, ebx
call fcn.004e70e7
cmp dword [ebp + 0x64], 0
je 0x4eacd3
push 0x589864
mov ecx, ebx
call fcn.00401abc
push dword [ebp + 0x64]
jmp 0x4eb28d
mov esi, dword [ebp + 0x58]
test esi, esi
je 0x4ec06b
push str.Wait
mov ecx, ebx
call fcn.00401abc
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6cc5
test esi, esi
je 0x4eacd3
cmp dword [ebp + 0x54], 0
jl 0x4eacd3
push dword [ebp + 0x54]
jmp 0x4eb742
cmp ecx, 0x2b
jne 0x4ec0a6
cmp dword [ebp + 0x5c], 2
jne 0x4ec0a6
push str.__ProductVersion
mov ecx, ebx
call fcn.00401abc
push dword [ebp + 0x58]
mov ecx, ebx
call fcn.004e6cc5
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6d38
jmp 0x4ec087
lea ecx, [ebp - 0xa4]
call fcn.0040238d
push 0x10
pop eax
push dword [ebp + 0x54]
mov byte [ebp - 4], al
mov ecx, ebx
lea eax, [ebp - 0xa4]
push eax
call fcn.004ecce0
cmp dword [ebp + 0x58], 0
jne 0x4ec110
push str.CallInstDLL
mov ecx, ebx
call fcn.00401abc
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6cc5
xor eax, eax
inc eax
cmp dword [ebp + 0x5c], eax
jne 0x4ec170
push str.__NOUNLOAD
mov ecx, ebx
call fcn.00401abc
jmp 0x4ec170
push str.DllUnregisterServer
push dword [ebp - 0xa4]
call sub.msvcrt.dll_strcmp
pop ecx
pop ecx
mov ecx, ebx
test eax, eax
jne 0x4ec138
push str.UnRegDLL
call fcn.00401abc
mov byte [ebp], 0
jmp 0x4ec160
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.004e6cc5
cmp byte [ebp], 0
je 0x4ec17e
lea eax, [ebp - 0xa4]
mov ecx, ebx
push eax
call fcn.004ed0b2
push dword [ebp - 0xa4]
jmp 0x4eb60f
push 6
pop edi
lea eax, [ebp + 0x64]
cmp dword [eax], 0
jne 0x4ec19d
dec edi
sub eax, 4
cmp edi, 2
ja 0x4ec18f
mov eax, dword [ebp + 0x60]
mov dword [ebp + 0x68], eax
test eax, 0x8000
je 0x4ec1b6
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.004e6d51
push 4
pop edx
cmp edi, edx
jbe 0x4eca9a
mov eax, dword [ebp + 0x68]
mov ecx, ebx
push 0x20
movzx esi, al
call fcn.00401a43
mov ecx, ebx
test esi, esi
je 0x4ec1f4
push esi
call fcn.004e7149
jmp 0x4ec1fe
push 0x5892c4
call fcn.00401abc
mov esi, dword [ebp + 0x68]
shr esi, 8
test esi, esi
jne 0x4ec211
cmp edi, 6
jb 0x4eacd3
push 0x20
mov ecx, ebx
and esi, 0x7f
call fcn.00401a43
cmp esi, 7
jne 0x4ec269
push 2
pop esi
push esi
mov ecx, ebx
call fcn.004e70e7
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 0x4ec27b
test cl, cl
jne 0x4ec27b
cmp edi, 6
jb 0x4eacd3
push 0x20
mov ecx, ebx
call fcn.00401a43
push 0x5892c4
mov ecx, ebx
call fcn.00401abc
jmp 0x4ec324
test esi, esi
jne 0x4ec225
push 0x5892c4
mov ecx, ebx
call fcn.00401abc
jmp 0x4ec22d
push 0x20
mov ecx, ebx
call fcn.00401a43
mov eax, dword [ebp + 0x68]
xor ecx, ecx
inc ecx
test cl, al
je 0x4ec29d
push str.SHIFT
mov ecx, ebx
call fcn.00401abc
mov eax, dword [ebp + 0x68]
test al, 2
je 0x4ec2b0
push str.CONTROL
mov ecx, ebx
call fcn.00401abc
mov eax, dword [ebp + 0x68]
push 4
pop ecx
test cl, al
je 0x4ec2c6
push str.ALT
mov ecx, ebx
call fcn.00401abc
mov eax, dword [ebp + 0x68]
test al, 8
je 0x4ec2d6
push str.EXT
mov ecx, ebx
call fcn.00401abc
cmp esi, 0x70
jb 0x4ec2f2
cmp esi, 0x87
ja 0x4ec310
push 0x46
mov ecx, ebx
call fcn.00401a43
lea eax, [esi - 0x6f]
push eax
jmp 0x4ec31d
cmp esi, 0x41
jb 0x4ec2fc
cmp esi, 0x5a
jbe 0x4ec306
cmp esi, 0x30
jb 0x4ec310
cmp esi, 0x39
ja 0x4ec310
push esi
mov ecx, ebx
call fcn.00401a43
jmp 0x4ec324
push str.Char_
mov ecx, ebx
call fcn.00401abc
push esi
mov ecx, ebx
call fcn.004e7149
cmp dword [ebp + 0x64], 0
je 0x4eacd3
jmp 0x4ec050
push 4
pop eax
test byte [ebp + 0x58], al
je 0x4ec347
push str.__SILENT
mov ecx, ebx
call fcn.00401abc
test byte [ebp + 0x58], 0x80
je 0x4ec359
push str.__FILESONLY
mov ecx, ebx
call fcn.00401abc
xor esi, esi
push dword [ebp + esi*4 + 0x50]
mov ecx, ebx
call fcn.004e6cc5
inc esi
cmp esi, 2
jb 0x4ec35b
cmp dword [ebp + 0x5c], 0
je 0x4eacd3
push 0x589864
jmp 0x4eb782
cmp dword [ebp + 0x50], 0xbadf00d
je 0x4ec393
push str.___Corrupted____
jmp 0x4eaccc
mov esi, dword [ebp + 0x48]
mov ecx, dword [ebp + 0x7c]
lea eax, [esi + 1]
cmp eax, dword [ecx + 4]
jae 0x4eacd3
mov eax, dword [ebp + 0x44]
mov ecx, ebx
push dword [eax + 0x1c]
call fcn.004e79bb
mov ecx, dword [ebp + 0x70]
push 4
pop edx
cmp eax, edx
jne 0x4eacd9
lea eax, [esi + 2]
mov dword [ebp + 0x38], eax
jmp 0x4eacd9
xor esi, esi
mov ecx, ebx
cmp dword [ebp + 0x50], esi
jne 0x4ec3e0
push str.FlushINI
call fcn.00401abc
jmp 0x4ec41b
cmp dword [ebp + 0x60], esi
je 0x4ec3f4
push str.WriteINIStr
call fcn.00401abc
push 3
pop esi
jmp 0x4ec41b
push str.DeleteINI
call fcn.00401abc
cmp dword [ebp + 0x54], esi
mov ecx, 0x58995c
mov eax, 0x57f208
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.004e6cc5
push esi
lea eax, [ebp + 0x50]
mov ecx, ebx
push eax
call fcn.004e6d51
push 3
pop eax
sub eax, esi
push eax
lea eax, [ebp + 0x50]
lea eax, [eax + esi*4]
jmp 0x4eae6b
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6d38
push dword [ebp + 0x5c]
mov ecx, ebx
call fcn.004e6cc5
jmp 0x4ebaa2
cmp dword [ebp + 0x60], 0
mov ecx, ebx
jne 0x4ec46b
mov eax, str.Value
push eax
jmp 0x4ec482
push 0x589968
call fcn.00401abc
test byte [ebp + 0x60], 2
je 0x4ec487
push str.__ifempty
mov ecx, ebx
call fcn.00401abc
push dword [ebp + 0x54]
mov ecx, ebx
call fcn.004e6d79
push dword [ebp + 0x58]
mov ecx, ebx
call fcn.004e6cc5
cmp dword [ebp + 0x5c], 0
je 0x4eacd3
jmp 0x4eb789
mov edi, dword [ebp + 0x60]
xor esi, esi
mov eax, edi
sub eax, 1
je 0x4ec4ed
sub eax, 1
je 0x4ec4e6
sub eax, 1
je 0x4ec4df
sub eax, 1
je 0x4ec4d8
push 0x3f
mov ecx, ebx
call fcn.00401a43
push edi
mov ecx, ebx
call fcn.004e7149
jmp 0x4ec4f2
mov esi, str.DWORD
jmp 0x4ec4f2
mov esi, 0x589984
jmp 0x4ec4f2
mov esi, str.ExpandStr
jmp 0x4ec4f2
mov esi, 0x58995c
xor eax, eax
inc eax
cmp edi, eax
jne 0x4ec504
cmp dword [ebp + 0x64], 2
jne 0x4ec516
mov esi, str.ExpandStr
cmp edi, 3
jne 0x4ec516
cmp dword [ebp + 0x64], 7
jne 0x4ec516
mov esi, str.MultiStr
jmp 0x4ec51a
test esi, esi
je 0x4ec522
push esi
mov ecx, ebx
call fcn.00401abc
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6d79
push 2
lea eax, [ebp + 0x54]
mov ecx, ebx
push eax
call fcn.004e6d51
mov ecx, ebx
cmp edi, 3
je 0x4ec548
push dword [ebp + 0x5c]
jmp 0x4eb28f
push 0x20
call fcn.00401a43
mov ecx, dword [ebx + 0x98]
mov esi, dword [ebp + 0x5c]
push 4
pop eax
cmp ecx, eax
jb 0x4ec5f5
mov edx, dword [ebx + 0x90]
lea eax, [ecx - 4]
cmp edx, eax
ja 0x4ec5f5
sub ecx, edx
lea eax, [ecx - 4]
cmp esi, eax
ja 0x4ec5f5
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 0x4ec5f5
xor ecx, ecx
mov dword [ebp + 0x68], ecx
test eax, eax
je 0x4eca9a
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 0x4ec5a6
jmp 0x4eacd3
push str.data_
mov ecx, ebx
call fcn.00401abc
push esi
mov ecx, ebx
call fcn.004e7149
push str._...__
mov ecx, ebx
call fcn.00401abc
push str.________Unsupported
jmp 0x4eaccc
xor ecx, ecx
mov eax, str.DWORD
inc ecx
cmp dword [ebp + 0x60], ecx
mov ecx, 0x58995c
cmovne eax, ecx
push eax
mov ecx, ebx
call fcn.00401abc
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6d38
push dword [ebp + 0x54]
mov ecx, ebx
call fcn.004e6d79
lea eax, [ebp + 0x58]
jmp 0x4ebaa5
cmp dword [ebp + 0x60], 0
mov eax, 0x589968
mov ecx, str.Value
cmove eax, ecx
jmp 0x4ec632
cmp dword [ebp + 0x58], 2
mov edi, dword [ebp + 0x50]
mov esi, dword [ebp + 0x54]
jne 0x4ec6af
cmp esi, 0x40000000
jne 0x4ec6af
mov ecx, dword [ebp + 0x7c]
mov eax, dword [ebp + 0x48]
inc eax
cmp eax, dword [ecx + 4]
jae 0x4ec6af
mov eax, dword [ebp + 0x44]
cmp dword [eax + 0x1c], 0x36
jne 0x4ec6af
cmp dword [eax + 0x20], edi
jne 0x4ec6af
lea ecx, [ebx + 0x1c]
call fcn.004e6ba4
push dword [ebp + 0x5c]
xor ecx, ecx
inc ecx
mov byte [eax], cl
mov ecx, ebx
push eax
call fcn.004ecdd7
push edi
mov ecx, ebx
call fcn.004e6d38
push dword [ebp + 0x5c]
mov ecx, ebx
call fcn.004e6cc5
mov edi, dword [ebp + 0x58]
test esi, esi
jne 0x4ec6d0
test edi, edi
je 0x4eacd3
cmp edi, 3
jne 0x4ec6e3
cmp esi, 0x80000000
jne 0x4ec71a
mov byte [ebp + 0x3c], 0x72
jmp 0x4ec709
cmp edi, 2
jne 0x4ec6f6
cmp esi, 0x40000000
jne 0x4ec71a
mov byte [ebp + 0x3c], 0x77
jmp 0x4ec709
push 4
pop eax
cmp edi, eax
jne 0x4ec71a
cmp esi, 0xc0000000
jne 0x4ec71a
mov byte [ebp + 0x3c], 0x61
push 0x20
mov ecx, ebx
call fcn.00401a43
push dword [ebp + 0x3c]
jmp 0x4eb523
test esi, esi
jns 0x4ec72a
push str._GENERIC_READ
mov ecx, ebx
call fcn.00401abc
test esi, 0x40000000
je 0x4ec73e
push str._GENERIC_WRITE
mov ecx, ebx
call fcn.00401abc
test esi, 0x20000000
je 0x4ec752
push str._GENERIC_EXECUTE
mov ecx, ebx
call fcn.00401abc
test esi, 0x10000000
je 0x4ec766
push str._GENERIC_ALL
mov ecx, ebx
call fcn.00401abc
mov eax, edi
xor esi, esi
sub eax, 1
je 0x4ec79f
sub eax, 1
je 0x4ec798
sub eax, 1
je 0x4ec791
sub eax, 1
je 0x4ec78a
sub eax, 1
jne 0x4ec7a4
mov esi, str.TRUNCATE_EXISTING
jmp 0x4ec7a4
mov esi, str.OPEN_ALWAYS
jmp 0x4ec7a4
mov esi, str.OPEN_EXISTING
jmp 0x4ec7a4
mov esi, str.CREATE_ALWAYS
jmp 0x4ec7a4
mov esi, str.CREATE_NEW
push 0x20
mov ecx, ebx
call fcn.00401a43
mov ecx, ebx
test esi, esi
je 0x4ec7b9
push esi
jmp 0x4eacce
push edi
call fcn.004e7149
jmp 0x4eacd3
mov esi, dword [ebp + 0x58]
cmp ecx, 0x44
jne 0x4ec7de
test esi, esi
mov eax, str.UTF16LE
mov ecx, str.Word
cmovne eax, ecx
push eax
jmp 0x4ec7e7
test esi, esi
je 0x4ec7f6
push str.Byte
mov ecx, ebx
call fcn.00401abc
test esi, esi
jne case.0x4eabbb.18
cmp dword [ebp + 0x5c], 0
je case.0x4eabbb.18
push str.__BOM
mov ecx, ebx
call fcn.00401abc
jmp case.0x4eabbb.18
mov esi, dword [ebp + 0x5c]
cmp ecx, 0x44
jne 0x4ec830
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 0x4ec840
push str.Byte
mov ecx, ebx
call fcn.00401abc
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6d38
push dword [ebp + 0x54]
mov ecx, ebx
call fcn.004e6d38
lea ecx, [ebp - 0x6c]
call fcn.0040238d
push dword [ebp + 0x58]
lea eax, [ebp - 0x6c]
mov byte [ebp - 4], 0x11
push eax
mov ecx, ebx
call fcn.004ecce0
mov ecx, dword [ebp - 0x6c]
lea edx, [ebp + 0x1c]
call fcn.004ed0cb
test al, al
je 0x4ec89e
xor eax, eax
inc eax
cmp dword [ebp + 0x1c], eax
jne 0x4ec891
test esi, esi
je 0x4ec89e
push dword [ebp - 0x6c]
jmp 0x4eb60f
cmp dword [ebp + 0x1c], 0x3ff
jne 0x4ec89e
test esi, esi
je 0x4ec889
lea eax, [ebp - 0x6c]
mov ecx, ebx
push eax
call fcn.004ed0b2
jmp 0x4ec889
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6d38
push dword [ebp + 0x58]
mov ecx, ebx
call fcn.004e6cc5
mov esi, dword [ebp + 0x5c]
xor eax, eax
inc eax
cmp esi, eax
jne 0x4ec8d5
push str._CUR
mov ecx, ebx
call fcn.00401abc
cmp esi, 2
jne 0x4ec8e6
push str._END
mov ecx, ebx
call fcn.00401abc
cmp dword [ebp + 0x54], 0
jl 0x4eacd3
test esi, esi
jne 0x4ec087
push str._SET
mov ecx, ebx
call fcn.00401abc
jmp 0x4ec087
push dword [ebp + 0x54]
mov ecx, ebx
call fcn.004e6d38
jmp case.0x4eabbb.54
push dword [ebp + 0x54]
mov ecx, ebx
call fcn.004e6d38
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6d38
jmp 0x4eba78
cmp dword [ebp + 0x50], 0
mov ecx, ebx
je 0x4ec95a
push str.Set
call fcn.00401abc
cmp dword [ebp + 0x54], 0
mov eax, 0x57f4f0
mov ecx, 0x57f4ec
cmovne eax, ecx
push eax
jmp 0x4eaccc
push str.Text
call fcn.00401abc
jmp 0x4eb7bc
mov edi, dword [ebp + 0x58]
mov ecx, ebx
test edi, edi
js 0x4ec993
push 0x58887c
call fcn.00401abc
push edi
mov ecx, ebx
call fcn.004e70d4
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6cc5
jmp 0x4ec087
push 0x5896a4
call fcn.00401abc
or esi, 0xffffffff
mov ecx, ebx
sub esi, edi
push esi
call fcn.004e70d4
push dword [ebp + 0x50]
mov ecx, ebx
call fcn.004e6cc5
push 4
pop ecx
push 0x10
mov eax, ecx
test esi, esi
pop ecx
cmove eax, ecx
push dword [ebp + eax + 0x50]
jmp 0x4eb28d
mov edi, dword [ebp + 0x58]
xor esi, esi
cmp dword [ebp + 0x5c], esi
jne 0x4ec9e9
test edi, edi
jne 0x4ec9df
mov eax, str.InstTypeGetText
jmp 0x4ec9f9
push 2
mov eax, str.InstTypeSetText
pop esi
jmp 0x4ec9fe
test edi, edi
jne 0x4ec9f4
mov eax, str.GetCurInstType
jmp 0x4ec9fe
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.004e6d51
test edi, edi
jne 0x4eacd3
jmp 0x4ec087
xor eax, eax
inc eax
cmp dword [ebx + 0x50], eax
jne 0x4eca76
cmp dword [ebp + 0x5c], 0
mov ecx, ebx
jne 0x4eca41
push str.GetKnownFolderPath
call fcn.00401abc
push dword [ebp + 0x54]
jmp 0x4ec925
cmp dword [ebp + 0x5c], eax
jne 0x4eca6c
push str.ReadMemory
call fcn.00401abc
push dword [ebp + 0x54]
mov ecx, ebx
call fcn.004e6d38
push dword [ebp + 0x58]
mov ecx, ebx
call fcn.004e6cc5
push dword [ebp + 0x60]
jmp 0x4eb28d
push str.GetOsInfo
jmp 0x4eacce
push str.GetLabelAddr
jmp 0x4eaccc
cmp dword [ebp + 0x50], 0
mov eax, 0x589b0c
mov ecx, str._off
jmp 0x4ec951
xor ecx, ecx
jmp 0x4eacd6
mov ecx, dword [ebp + 0x70]
jmp 0x4eacd9
push eax
mov ecx, ebx
call fcn.004e7149
inc esi
cmp esi, edi
jb 0x4ead2b
mov ecx, ebx
call fcn.004e8afb
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 0x4ea9bd
mov al, byte [ebp + 0x6f]
mov edi, dword [ebp + 0x30]
mov esi, dword [ebp + 0x2c]
test al, al
je 0x4ecb22
cmp edi, dword [ebx + 0x84]
jae 0x4ecb85
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 0x4ecb1f
mov ecx, ebx
call fcn.004ea1cd
mov edx, dword [ebp + 0x48]
xor al, al
inc edi
mov byte [ebp + 0x6f], al
mov dword [ebp + 0x30], edi
jmp 0x4ecb22
mov esi, dword [ebp + 0x2c]
mov al, dl
jmp 0x4ecb22
mov al, byte [ebp + 0x6f]
cmp edi, dword [ebx + 0x84]
jae 0x4ecb85
imul edi, edi, 0x18
add edi, esi
mov esi, dword [ebp + 0x30]
test al, al
je 0x4ecb5b
mov eax, dword [edi + 0xc]
add eax, dword [edi + 8]
cmp eax, edx
je 0x4ecb4c
push str.SECTION_ERROR
mov ecx, ebx
call fcn.004e69c2
mov ecx, ebx
call fcn.004ea1cd
xor al, al
inc esi
add edi, 0x18
jmp 0x4ecb74
push esi
push edi
mov ecx, ebx
call fcn.004e9fbd
test al, al
je 0x4ecb71
mov al, byte [ebp + 0x6f]
inc esi
add edi, 0x18
jmp 0x4ecb77
xor eax, eax
inc eax
mov byte [ebp + 0x6f], al
mov edx, dword [ebp + 0x48]
cmp esi, dword [ebx + 0x84]
jb 0x4ecb32
mov esi, dword [ebp + 0x2c]
push dword [ebp - 0xbc]
call fcn.0056651e
push dword [ebp - 0xb0]
call fcn.0056651e
push esi
call fcn.0056651e
push dword [ebp + 0x28]
call fcn.0056651e
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