Function at 0x4c0aa0
Capabilities:
Encode data using xor
Get graphical window text

Disassembly:
mov eax, 0x186c
call fcn.004ebbf0
mov eax, dword [0x528af4]
xor eax, esp
mov dword [esp + 0x1868], eax
mov eax, dword [esp + 0x1884]
push ebx
mov ebx, dword [esp + 0x1874]
push ebp
mov ebp, dword [esp + 0x1888]
push esi
push edi
push str.Profiles_d
mov dword [esp + 0x14], eax
call fcn.0049fa80
mov edi, eax
mov eax, dword [esp + 0x188c]
cmp eax, 0xffffffff
jne 0x4c0b7f
xor esi, esi
mov eax, edi
test edi, edi
jle 0x4c0b7f
lea ecx, [ecx]
push esi
push str.Profiles_d
lea eax, [esp + 0x1e0]
push 0x50
push eax
call fcn.004028e0
add esp, 0x10
lea eax, [esp + 0x478]
push 0x200
push 0x50b8c4
push eax
push str.Name
lea eax, [esp + 0x1e8]
push eax
call fcn.0049fec0
mov eax, ebp
lea ecx, [esp + 0x478]
mov dx, word [ecx]
cmp dx, word [eax]
jne 0x4c0b6b
test dx, dx
je 0x4c0b67
mov dx, word [ecx + 2]
cmp dx, word [eax + 2]
jne 0x4c0b6b
add ecx, 4
add eax, 4
test dx, dx
jne 0x4c0b45
xor eax, eax
jmp 0x4c0b70
sbb eax, eax
or eax, 1
test eax, eax
je 0x4c0b7d
inc esi
cmp esi, edi
jl 0x4c0b00
mov eax, edi
jmp 0x4c0b7f
mov eax, esi
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x4c0b99
push 0x50
push ecx
lea eax, [esp + 0xdc]
push eax
call fcn.0048e710
jmp 0x4c0bb1
push eax
push str.Profiles_d
lea eax, [esp + 0xdc]
push 0x50
push eax
call fcn.004028e0
add esp, 0x10
push ebp
push str.Name
lea eax, [esp + 0xdc]
push eax
call fcn.004a08d0
mov al, byte [esp + 0x1888]
test al, al
je 0x4c0c18
xor esi, esi
test edi, edi
jle 0x4c0c18
jmp 0x4c0be0
push esi
push str.Profiles_d
lea eax, [esp + 0x1e0]
push 0x50
push eax
call fcn.004028e0
add esp, 0x10
lea eax, [esp + 0x1d8]
push 0
push str.Default
push eax
call fcn.004a08f0
inc esi
cmp esi, edi
jl 0x4c0be0
mov al, byte [esp + 0x1888]
movzx eax, al
push eax
push str.Default
lea eax, [esp + 0xdc]
push eax
call fcn.004a08f0
push str.ArcName
lea eax, [esp + 0xd8]
push eax
call fcn.0049f910
push str.FileNames
lea eax, [esp + 0xd8]
push eax
call fcn.0049f910
push 0
push str.ImmExec
lea eax, [esp + 0xdc]
push eax
call fcn.004a08f0
test ebx, ebx
je 0x4c0d82
mov esi, dword [sym.imp.USER32.dll_IsDlgButtonChecked]
push 0x6b
push ebx
call esi
push eax
push str.ImmExec
lea eax, [esp + 0xdc]
push eax
call fcn.004a08f0
push 0x6d
push ebx
call esi
push eax
push str.AddToMenu
lea eax, [esp + 0xdc]
push eax
call fcn.004a08f0
push 0x66
push ebx
call esi
test eax, eax
je 0x4c0cdd
push 0x800
lea eax, [esp + 0x87c]
push eax
push 0x67
push ebx
call dword [sym.imp.USER32.dll_GetDlgItemTextW]
lea eax, [esp + 0x878]
push eax
push str.ArcName
lea eax, [esp + 0xdc]
push eax
call fcn.004a08d0
push 0x68
push ebx
call esi
test eax, eax
je 0x4c0d82
push 0x69
push ebx
call dword [sym.imp.USER32.dll_GetDlgItem]
mov ebx, eax
push ebx
call dword [sym.imp.USER32.dll_GetWindowTextLengthW]
xor ecx, ecx
mov edx, 2
lea edi, [eax + 0xa]
mov eax, edi
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004ebd1f
add esp, 4
mov esi, eax
push edi
push esi
push ebx
call dword [sym.imp.USER32.dll_GetWindowTextW]
push esi
push str.FileNames
lea eax, [esp + 0xdc]
push eax
call fcn.004a08d0
push esi
call fcn.004ebd28
add esp, 4
cmp byte [esp + 0x1884], 0
jne 0x4c15fa
push 0x800
lea eax, [esp + 0x87c]
mov ecx, 0x55d4d8
push eax
call fcn.0043f660
lea eax, [esp + 0x878]
push eax
push str.CurDir
lea eax, [esp + 0xdc]
push eax
call fcn.004a08d0
jmp 0x4c0d90
cmp byte [esp + 0x1884], 0
jne 0x4c15fa
push 0x5502f8
call fcn.004a7e90
mov esi, eax
lea eax, [esp + 0xd4]
push esi
push str.ExclNames
push eax
call fcn.004a08d0
push esi
call fcn.004f252e
add esp, 4
push 0x55040c
call fcn.004a7e90
mov esi, eax
lea eax, [esp + 0xd4]
push esi
push str.StoreNames
push eax
call fcn.004a08d0
push esi
call fcn.004f252e
xor eax, eax
add esp, 4
cmp dword [0x54c248], eax
sete al
push eax
push str.UseRAR
lea eax, [esp + 0xdc]
push eax
call fcn.004a08f0
movzx eax, byte [0x54a028]
push eax
push 0x512634
lea eax, [esp + 0xdc]
push eax
call fcn.004a08f0
push 0x544e98
push str.SFXModule
lea eax, [esp + 0xdc]
push eax
call fcn.004a08d0
push 0x50f7f4
lea eax, [esp + 0xd8]
push eax
call fcn.0049f910
push 0x54c252
push str.SFXIcon
lea eax, [esp + 0xdc]
push eax
call fcn.004a08d0
push 0x54d252
push str.SFXLogo
lea eax, [esp + 0xdc]
push eax
call fcn.004a08d0
movzx eax, byte [0x54e252]
push eax
push str.SFXElevate
lea eax, [esp + 0xdc]
push eax
call fcn.004a08f0
push 0x546e9e
push str.CmtFile
lea eax, [esp + 0xdc]
push eax
call fcn.004a08d0
cmp word [0x546e9e], 0
je 0x4c0eb1
mov edx, 0x50b8c4
jmp 0x4c0ebe
push dword [0x58e834]
call fcn.0048e370
mov edx, eax
mov ecx, edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4c0ec3
sub ecx, esi
sar ecx, 1
lea eax, [ecx*2 + 2]
push eax
push edx
push str.CmtDataWide
lea eax, [esp + 0xe0]
push eax
call fcn.004a0910
mov ecx, dword [0x549ff0]
mov eax, dword [0x549ff4]
cmp ecx, 0x7fffffff
jne 0x4c0f2f
cmp eax, 0x7fffffff
jne 0x4c0f2f
mov eax, dword [str.Auto]
mov dword [esp + 0x174], eax
mov eax, dword [0x512ba4]
mov dword [esp + 0x178], eax
mov ax, word [0x512ba8]
mov word [esp + 0x17c], ax
jmp 0x4c0f40
push 0x32
lea edx, [esp + 0x178]
push edx
push eax
push ecx
call fcn.0048e4f0
lea eax, [esp + 0x174]
push eax
push str.VolumeSize
lea eax, [esp + 0xdc]
push eax
call fcn.004a08d0
push dword [0x54e260]
lea eax, [esp + 0xd8]
push str.VolSizeMod
push eax
call fcn.004a08f0
movzx eax, byte [0x54a16a]
push eax
push str.VolPause
lea eax, [esp + 0xdc]
push eax
call fcn.004a08f0
movzx eax, byte [0x54a02d]
push eax
push str.OldVolNames
lea eax, [esp + 0xdc]
push eax
call fcn.004a08f0
push dword [0x549fcc]
lea eax, [esp + 0xd8]
push str.RecVolNumber
push eax
call fcn.004a08f0
movzx eax, byte [0x549fe0]
push eax
push str.Update
lea eax, [esp + 0xdc]
push eax
call fcn.004a08f0
movzx eax, byte [0x549fdf]
push eax
push str.Fresh
lea eax, [esp + 0xdc]
push eax
call fcn.004a08f0
movzx eax, byte [0x54a142]
push eax
push str.SyncFiles
lea eax, [esp + 0xdc]
push eax
call fcn.004a08f0
push dword [0x549fbc]
lea eax, [esp + 0xd8]
push str.Overwrite
push eax
call fcn.004a08f0
movzx eax, byte [0x54a026]
push eax
push str.Move
lea eax, [esp + 0xdc]
push eax
call fcn.004a08f0
movzx eax, byte [0x54a02b]
push eax
push str.ArcRecBin
lea eax, [esp + 0xdc]
push eax
call fcn.004a08f0
movzx eax, byte [0x54a02a]
push eax
push str.ArcWipe
lea eax, [esp + 0xdc]
push eax
call fcn.004a08f0
movzx eax, byte [0x54e25d]
push eax
push str.WipeIfPassword
lea eax, [esp + 0xdc]
push eax
call fcn.004a08f0
push dword [0x549fd4]
lea eax, [esp + 0xd8]
push str.Solid
push eax
call fcn.004a08f0
movzx eax, byte [0x54a169]
push eax
push str.Test
lea eax, [esp + 0xdc]
push eax
call fcn.004a08f0
movzx eax, byte [0x58e84f]
push eax
push str.RecEnabled
lea eax, [esp + 0xdc]
push eax
call fcn.004a08f0
push dword [0x58e850]
lea eax, [esp + 0xd8]
push str.RecSize
push eax
call fcn.004a08f0
movzx eax, byte [0x54a029]
push eax
push str.EraseDest
lea eax, [esp + 0xdc]
push eax
call fcn.004a08f0
movzx eax, byte [0x549fdd]
push eax
push str.AddArcOnly
lea eax, [esp + 0xdc]
push eax
call fcn.004a08f0
movzx eax, byte [0x549fdc]
push eax
push str.ClearArc
lea eax, [esp + 0xdc]
push eax
call fcn.004a08f0
movzx eax, byte [0x54a168]
push eax
push str.Lock
lea eax, [esp + 0xdc]
push eax
call fcn.004a08f0
push dword [0x549fc0]
lea eax, [esp + 0xd8]
push str.Method
push eax
call fcn.004a08f0
cmp dword [0x54c248], 1
je 0x4c11a9
push dword [0x543e94]
lea eax, [esp + 0xd8]
push str.DictSizeLZ
push eax
call fcn.004a08f0
push dword [0x54c24c]
lea eax, [esp + 0xd8]
push str.DictSize
push eax
call fcn.004a08f0
movzx eax, byte [0x54e253]
push eax
push str.Background
lea eax, [esp + 0xdc]
push eax
call fcn.004a08f0
movzx eax, byte [0x54e254]
push eax
push str.WaitForOther
lea eax, [esp + 0xdc]
push eax
call fcn.004a08f0
movzx eax, byte [0x54b231]
push eax
push str.Shutdown
lea eax, [esp + 0xdc]
push eax
call fcn.004a08f0
push 0x80
lea eax, [esp + 0x37c]
mov ecx, 0x548eb0
push eax
call fcn.0048bab0
push 0x80
lea eax, [esp + 0x27c]
push eax
lea eax, [esp + 0x380]
push eax
call fcn.00491760
lea ecx, [esp + 0x378]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4c1232
sub ecx, edx
sar ecx, 1
lea edx, [ecx*2 + 2]
xor ecx, ecx
test edx, edx
je 0x4c125f
mov edi, edi
lea eax, [ecx + 0x49]
xor byte [esp + ecx + 0x278], al
inc ecx
cmp ecx, edx
jb 0x4c1250
push edx
lea eax, [esp + 0x27c]
push eax
push str.PasswordWide
lea eax, [esp + 0xe0]
push eax
call fcn.004a0910
push 0x100
lea eax, [esp + 0x37c]
push eax
call fcn.0048bcb0
push 0x100
lea eax, [esp + 0x27c]
push eax
call fcn.0048bcb0
movzx eax, byte [0x548fb2]
push eax
push str.EncryptHeaders
lea eax, [esp + 0xdc]
push eax
call fcn.004a08f0
movzx eax, byte [0x54a025]
push eax
push str.OpenShared
lea eax, [esp + 0xdc]
push eax
call fcn.004a08f0
movzx eax, byte [0x54a018]
push eax
push str.ProcessOwners
lea eax, [esp + 0xdc]
push eax
call fcn.004a08f0
movzx eax, byte [0x54a144]
push eax
push str.SaveStreams
lea eax, [esp + 0xdc]
push eax
call fcn.004a08f0
movzx eax, byte [0x54a019]
push eax
push str.SaveSymLinks
lea eax, [esp + 0xdc]
push eax
call fcn.004a08f0
movzx eax, byte [0x54a01a]
push eax
push str.SaveHardLinks
lea eax, [esp + 0xdc]
push eax
call fcn.004a08f0
movzx eax, byte [0x54a040]
push eax
push str.GenerateArcName
lea eax, [esp + 0xdc]
push eax
call fcn.004a08f0
push dword [0x54b22c]
lea eax, [esp + 0xd8]
push str.VersionControl
push eax
call fcn.004a08f0
xor eax, eax
cmp dword [0x549fc4], 3
sete al
push eax
push 0x51299c
lea eax, [esp + 0xdc]
push eax
call fcn.004a08f0
xor eax, eax
cmp dword [0x54a030], 1
sete al
push eax
push str.FileCopies
lea eax, [esp + 0xdc]
push eax
call fcn.004a08f0
push dword [0x545e98]
lea eax, [esp + 0xd8]
push str.QuickOpen
push eax
call fcn.004a08f0
push 0x54a042
push str.GenerateMask
lea eax, [esp + 0xdc]
push eax
call fcn.004a08d0
push dword [0x58e83c]
lea eax, [esp + 0xd8]
push str.FileTimeMode
push eax
call fcn.004a08f0
push dword [0x58e840]
lea eax, [esp + 0xd8]
push str.FileDays
push eax
call fcn.004a08f0
push dword [0x58e844]
lea eax, [esp + 0xd8]
push str.FileHours
push eax
call fcn.004a08f0
push dword [0x58e848]
lea eax, [esp + 0xd8]
push str.FileMinutes
push eax
call fcn.004a08f0
mov ecx, 0x54a148
call fcn.0048f9d0
push eax
push str.FileTimeBefore
lea eax, [esp + 0xdc]
push eax
call fcn.004a08f0
mov ecx, 0x54a150
call fcn.0048f9d0
push eax
push str.FileTimeAfter
lea eax, [esp + 0xdc]
push eax
call fcn.004a08f0
xor eax, eax
cmp dword [0x54a010], 1
sete al
push eax
push str.ArcTimeOriginal
lea eax, [esp + 0xdc]
push eax
call fcn.004a08f0
xor eax, eax
cmp dword [0x54a010], 2
sete al
push eax
push str.ArcTimeLatest
lea eax, [esp + 0xdc]
push eax
call fcn.004a08f0
push dword [0x54b234]
lea eax, [esp + 0xd8]
push str.mtime
push eax
call fcn.004a08f0
push dword [0x54b238]
lea eax, [esp + 0xd8]
push str.ctime
push eax
call fcn.004a08f0
push dword [0x54b23c]
lea eax, [esp + 0xd8]
push str.atime
push eax
call fcn.004a08f0
xor eax, eax
cmp dword [0x549fe4], 3
sete al
push eax
push str.PathsAbs
lea eax, [esp + 0xdc]
push eax
call fcn.004a08f0
xor eax, eax
cmp dword [0x549fe4], 1
sete al
push eax
push str.PathsNone
lea eax, [esp + 0xdc]
push eax
call fcn.004a08f0
xor eax, eax
cmp dword [0x549fe4], 4
sete al
push eax
push str.PathsAbsDrive
lea eax, [esp + 0xdc]
push eax
call fcn.004a08f0
movzx eax, byte [0x54e26d]
push eax
push str.SeparateArc
lea eax, [esp + 0xdc]
push eax
call fcn.004a08f0
push 0x54a22c
push str.EmailArcTo
lea eax, [esp + 0xdc]
push eax
call fcn.004a08d0
push 0xc0
lea eax, [esp + 0x18]
push 0
push eax
call fcn.004ee100
add esp, 0xc
xor esi, esi
lea ecx, [ecx]
mov eax, dword [esi + 0x527740]
lea ecx, [esp + 0x14]
lea edx, [eax + eax*2]
mov eax, dword [esi + 0x527744]
add esi, 8
lea eax, [eax + eax*2]
lea ecx, [ecx + eax*4]
mov eax, dword [edx*4 + 0x54a16c]
mov dword [ecx], eax
mov eax, dword [edx*4 + 0x54a170]
mov dword [ecx + 4], eax
mov eax, dword [edx*4 + 0x54a174]
mov dword [ecx + 8], eax
cmp esi, 0x40
jb 0x4c15a0
push 0xc0
lea eax, [esp + 0x18]
push eax
push str.PackDetails
lea eax, [esp + 0xe0]
push eax
call fcn.004a0910
mov ecx, dword [esp + 0x1878]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004ebbd8
add esp, 0x186c
ret 0x18