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

Disassembly:
mov eax, 0x186c
call fcn.004e6b50
mov eax, dword [0x519bc0]
xor eax, esp
mov dword [esp + 0x1868], eax
mov eax, dword [esp + 0x1880]
push ebp
mov ebp, dword [esp + 0x1880]
push esi
push edi
push str.Profiles_d
mov dword [esp + 0x10], eax
call fcn.0049c5b0
cmp dword [esp + 0x1884], 0xffffffff
mov edi, eax
jne 0x4ae125
xor esi, esi
mov dword [esp + 0x1884], edi
test edi, edi
jle 0x4ae125
jmp 0x4ae0a0
push esi
lea ecx, [esp + 0x1d8]
push str.Profiles_d
push ecx
mov edx, 0x50
call fcn.004a63e0
add esp, 0xc
push 0x200
push 0x501a20
lea edx, [esp + 0x47c]
push edx
push 0x507ef8
lea eax, [esp + 0x1e4]
push eax
call fcn.0049c530
mov ecx, ebp
lea eax, [esp + 0x474]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4ae10e
test dx, dx
je 0x4ae10a
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4ae10e
add eax, 4
add ecx, 4
test dx, dx
jne 0x4ae0e8
xor eax, eax
jmp 0x4ae113
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4ae11e
inc esi
cmp esi, edi
jl 0x4ae0a0
jmp 0x4ae125
mov dword [esp + 0x1884], esi
mov eax, dword [esp + 0xc]
test eax, eax
je 0x4ae13f
push 0x50
push eax
lea ecx, [esp + 0xd8]
push ecx
call fcn.004694b0
jmp 0x4ae161
mov edx, dword [esp + 0x1884]
push edx
lea eax, [esp + 0xd4]
push str.Profiles_d
push eax
mov edx, 0x50
call fcn.004a63e0
add esp, 0xc
push ebp
push 0x507ef8
lea ecx, [esp + 0xd8]
push ecx
call fcn.0049c4c0
cmp byte [esp + 0x1880], 0
je 0x4ae1c4
xor esi, esi
test edi, edi
jle 0x4ae1c4
jmp 0x4ae190
push esi
lea edx, [esp + 0x1d8]
push str.Profiles_d
push edx
mov edx, 0x50
call fcn.004a63e0
add esp, 0xc
push 0
push 0x507ee8
lea eax, [esp + 0x1dc]
push eax
call fcn.0049c4e0
inc esi
cmp esi, edi
jl 0x4ae190
movzx ecx, byte [esp + 0x1880]
push ecx
push 0x507ee8
lea edx, [esp + 0xd8]
push edx
call fcn.0049c4e0
push str.ArcName
lea eax, [esp + 0xd4]
push eax
call fcn.0049c100
push str.FileNames
lea ecx, [esp + 0xd4]
push ecx
call fcn.0049c100
push 0
push str.ImmExec
lea edx, [esp + 0xd8]
push edx
call fcn.0049c4e0
test ebx, ebx
je 0x4ae335
mov esi, dword [sym.imp.USER32.dll_IsDlgButtonChecked]
push 0x6b
push ebx
call esi
push eax
push str.ImmExec
lea eax, [esp + 0xd8]
push eax
call fcn.0049c4e0
push 0x6d
push ebx
call esi
push eax
push str.AddToMenu
lea ecx, [esp + 0xd8]
push ecx
call fcn.0049c4e0
push 0x66
push ebx
call esi
test eax, eax
je 0x4ae28e
push 0x800
lea edx, [esp + 0x878]
push edx
push 0x67
push ebx
call dword [sym.imp.USER32.dll_GetDlgItemTextW]
lea eax, [esp + 0x874]
push eax
push str.ArcName
lea ecx, [esp + 0xd8]
push ecx
call fcn.0049c4c0
push 0x68
push ebx
call esi
test eax, eax
je 0x4ae335
push 0x69
push ebx
call dword [sym.imp.USER32.dll_GetDlgItem]
mov ebp, eax
push ebp
call dword [sym.imp.USER32.dll_GetWindowTextLengthW]
mov esi, eax
add esi, 0xa
xor ecx, ecx
mov eax, esi
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004e68bd
add esp, 4
push esi
mov edi, eax
push edi
push ebp
call dword [sym.imp.USER32.dll_GetWindowTextW]
push edi
push str.FileNames
lea eax, [esp + 0xd8]
push eax
call fcn.0049c4c0
push edi
call fcn.004e6904
add esp, 4
cmp byte [esp + 0x187c], 0
jne 0x4aebb6
push 0x800
lea ecx, [esp + 0x878]
push ecx
mov ecx, 0x549cb8
call fcn.00490030
lea edx, [esp + 0x874]
push edx
push str.CurDir
lea eax, [esp + 0xd8]
push eax
call fcn.0049c4c0
jmp 0x4ae343
cmp byte [esp + 0x187c], 0
jne 0x4aebb6
push 0x55bc58
call fcn.004a3db0
mov esi, eax
push esi
push str.ExclNames
lea ecx, [esp + 0xd8]
push ecx
call fcn.0049c4c0
push esi
call fcn.004e7061
add esp, 4
push 0x55bd6c
call fcn.004a3db0
mov esi, eax
push esi
push str.StoreNames
lea edx, [esp + 0xd8]
push edx
call fcn.0049c4c0
push esi
call fcn.004e7061
add esp, 4
xor eax, eax
cmp dword [0x557ba8], eax
lea ecx, [esp + 0xd0]
sete al
push eax
push str.UseRAR
push ecx
call fcn.0049c4e0
movzx edx, byte [0x555987]
push edx
push 0x508690
lea eax, [esp + 0xd8]
push eax
call fcn.0049c4e0
push 0x5507f8
push str.SFXModule
lea ecx, [esp + 0xd8]
push ecx
call fcn.0049c4c0
push 0x502c9c
lea edx, [esp + 0xd4]
push edx
call fcn.0049c100
push 0x557bb2
push str.SFXIcon
lea eax, [esp + 0xd8]
push eax
call fcn.0049c4c0
push 0x558bb2
push str.SFXLogo
lea ecx, [esp + 0xd8]
push ecx
call fcn.0049c4c0
movzx edx, byte [0x559bb2]
push edx
push str.SFXElevate
lea eax, [esp + 0xd8]
push eax
call fcn.0049c4e0
push 0x5527fe
push str.CmtFile
lea ecx, [esp + 0xd8]
push ecx
call fcn.0049c4c0
cmp word [0x5527fe], 0
je 0x4ae464
mov eax, 0x501a20
jmp 0x4ae470
mov edx, dword [0x56ce34]
push edx
call fcn.00468fe0
mov ecx, eax
lea esi, [ecx + 2]
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x4ae475
sub ecx, esi
sar ecx, 1
lea ecx, [ecx + ecx + 2]
push ecx
push eax
push str.CmtDataWide
lea edx, [esp + 0xdc]
push edx
call fcn.0049c500
mov eax, dword [0x555950]
mov ecx, dword [0x555954]
cmp eax, 0x7fffffff
jne 0x4ae4d9
cmp ecx, 0x7fffffff
jne 0x4ae4d9
xor eax, eax
jmp 0x4ae4c0
movzx ecx, word [eax + 0x508790]
mov word [esp + eax + 0x170], cx
add eax, 2
test cx, cx
jne 0x4ae4c0
jmp 0x4ae4ea
push 0x32
lea edx, [esp + 0x174]
push edx
push ecx
push eax
call fcn.00469570
lea eax, [esp + 0x170]
push eax
push str.VolumeSize
lea ecx, [esp + 0xd8]
push ecx
call fcn.0049c4c0
mov edx, dword [0x559bc0]
push edx
push str.VolSizeMod
lea eax, [esp + 0xd8]
push eax
call fcn.0049c4e0
movzx ecx, byte [0x555aca]
push ecx
push str.VolPause
lea edx, [esp + 0xd8]
push edx
call fcn.0049c4e0
movzx eax, byte [0x55598c]
push eax
push str.OldVolNames
lea ecx, [esp + 0xd8]
push ecx
call fcn.0049c4e0
mov edx, dword [0x55592c]
push edx
push str.RecVolNumber
lea eax, [esp + 0xd8]
push eax
call fcn.0049c4e0
movzx ecx, byte [0x555940]
push ecx
push 0x506efc
lea edx, [esp + 0xd8]
push edx
call fcn.0049c4e0
movzx eax, byte [0x55593f]
push eax
push str.Fresh
lea ecx, [esp + 0xd8]
push ecx
call fcn.0049c4e0
movzx edx, byte [0x555aa2]
push edx
push str.SyncFiles
lea eax, [esp + 0xd8]
push eax
call fcn.0049c4e0
mov ecx, dword [0x55591c]
push ecx
push str.Overwrite
lea edx, [esp + 0xd8]
push edx
call fcn.0049c4e0
movzx eax, byte [0x555986]
push eax
push str.Move
lea ecx, [esp + 0xd8]
push ecx
call fcn.0049c4e0
movzx edx, byte [0x55598a]
push edx
push str.ArcRecBin
lea eax, [esp + 0xd8]
push eax
call fcn.0049c4e0
movzx ecx, byte [0x555989]
push ecx
push str.ArcWipe
lea edx, [esp + 0xd8]
push edx
call fcn.0049c4e0
movzx eax, byte [0x559bbd]
push eax
push str.WipeIfPassword
lea ecx, [esp + 0xd8]
push ecx
call fcn.0049c4e0
mov edx, dword [0x555934]
push edx
push str.Solid
lea eax, [esp + 0xd8]
push eax
call fcn.0049c4e0
movzx ecx, byte [0x555ac9]
push ecx
push str.Test
lea edx, [esp + 0xd8]
push edx
call fcn.0049c4e0
movzx eax, byte [0x56ce4f]
push eax
push str.RecEnabled
lea ecx, [esp + 0xd8]
push ecx
call fcn.0049c4e0
mov edx, dword [0x56ce50]
push edx
push str.RecSize
lea eax, [esp + 0xd8]
push eax
call fcn.0049c4e0
movzx ecx, byte [0x555988]
push ecx
push str.EraseDest
lea edx, [esp + 0xd8]
push edx
call fcn.0049c4e0
movzx eax, byte [0x55593d]
push eax
push str.AddArcOnly
lea ecx, [esp + 0xd8]
push ecx
call fcn.0049c4e0
movzx edx, byte [0x55593c]
push edx
push str.ClearArc
lea eax, [esp + 0xd8]
push eax
call fcn.0049c4e0
movzx ecx, byte [0x555ac8]
push ecx
push 0x5040f8
lea edx, [esp + 0xd8]
push edx
call fcn.0049c4e0
mov eax, dword [0x555920]
push eax
push str.Method
lea ecx, [esp + 0xd8]
push ecx
call fcn.0049c4e0
mov edi, 1
cmp dword [0x557ba8], edi
je 0x4ae75e
mov edx, dword [0x54f7f4]
push edx
push str.DictSizeLZ
lea eax, [esp + 0xd8]
push eax
call fcn.0049c4e0
mov ecx, dword [0x557bac]
push ecx
push str.DictSize
lea edx, [esp + 0xd8]
push edx
call fcn.0049c4e0
movzx eax, byte [0x559bb3]
push eax
push 0x5083a4
lea ecx, [esp + 0xd8]
push ecx
call fcn.0049c4e0
movzx edx, byte [0x559bb4]
push edx
push str.WaitForOther
lea eax, [esp + 0xd8]
push eax
call fcn.0049c4e0
movzx ecx, byte [0x556b91]
push ecx
push str.Shutdown
lea edx, [esp + 0xd8]
push edx
call fcn.0049c4e0
push 0x80
lea eax, [esp + 0x378]
push eax
mov ecx, 0x554810
call fcn.00466940
push 0x80
lea ecx, [esp + 0x278]
push ecx
lea edx, [esp + 0x37c]
push edx
call fcn.0046c740
lea eax, [esp + 0x374]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4ae7e7
sub eax, edx
sar eax, 1
lea ecx, [eax + eax + 2]
xor eax, eax
test ecx, ecx
jbe 0x4ae812
mov dl, al
add dl, 0x49
xor byte [esp + eax + 0x274], dl
add eax, edi
cmp eax, ecx
jb 0x4ae800
push ecx
lea eax, [esp + 0x278]
push eax
push str.PasswordWide
lea ecx, [esp + 0xdc]
push ecx
call fcn.0049c500
push 0x100
lea edx, [esp + 0x378]
push edx
call fcn.00466920
push 0x100
lea eax, [esp + 0x278]
push eax
call fcn.00466920
movzx ecx, byte [0x554912]
push ecx
push str.EncryptHeaders
lea edx, [esp + 0xd8]
push edx
call fcn.0049c4e0
movzx eax, byte [0x555985]
push eax
push str.OpenShared
lea ecx, [esp + 0xd8]
push ecx
call fcn.0049c4e0
movzx edx, byte [0x555978]
push edx
push str.ProcessOwners
lea eax, [esp + 0xd8]
push eax
call fcn.0049c4e0
movzx ecx, byte [0x555aa4]
push ecx
push str.SaveStreams
lea edx, [esp + 0xd8]
push edx
call fcn.0049c4e0
movzx eax, byte [0x555979]
push eax
push str.SaveSymLinks
lea ecx, [esp + 0xd8]
push ecx
call fcn.0049c4e0
movzx edx, byte [0x55597a]
push edx
push str.SaveHardLinks
lea eax, [esp + 0xd8]
push eax
call fcn.0049c4e0
movzx ecx, byte [0x5559a0]
push ecx
push str.GenerateArcName
lea edx, [esp + 0xd8]
push edx
call fcn.0049c4e0
mov eax, dword [0x556b8c]
push eax
push str.VersionControl
lea ecx, [esp + 0xd8]
push ecx
call fcn.0049c4e0
xor edx, edx
mov esi, 3
cmp dword [0x555924], esi
lea eax, [esp + 0xd0]
sete dl
push edx
push str.BLAKE2
push eax
call fcn.0049c4e0
xor ecx, ecx
cmp dword [0x555990], edi
lea edx, [esp + 0xd0]
sete cl
push ecx
push str.FileCopies
push edx
call fcn.0049c4e0
mov eax, dword [0x5517f8]
push eax
push str.QuickOpen
lea ecx, [esp + 0xd8]
push ecx
call fcn.0049c4e0
push 0x5559a2
push str.GenerateMask
lea edx, [esp + 0xd8]
push edx
call fcn.0049c4c0
mov eax, dword [0x56ce3c]
push eax
push str.FileTimeMode
lea ecx, [esp + 0xd8]
push ecx
call fcn.0049c4e0
mov edx, dword [0x56ce40]
push edx
push str.FileDays
lea eax, [esp + 0xd8]
push eax
call fcn.0049c4e0
mov ecx, dword [0x56ce44]
push ecx
push str.FileHours
lea edx, [esp + 0xd8]
push edx
call fcn.0049c4e0
mov eax, dword [0x56ce48]
push eax
push str.FileMinutes
lea ecx, [esp + 0xd8]
push ecx
call fcn.0049c4e0
mov ecx, 0x555aa8
call fcn.0046af00
push eax
push str.FileTimeBefore
lea edx, [esp + 0xd8]
push edx
call fcn.0049c4e0
mov ecx, 0x555ab0
call fcn.0046af00
push eax
push str.FileTimeAfter
lea eax, [esp + 0xd8]
push eax
call fcn.0049c4e0
xor ecx, ecx
cmp dword [0x555970], edi
lea edx, [esp + 0xd0]
sete cl
push ecx
push str.ArcTimeOriginal
push edx
call fcn.0049c4e0
xor eax, eax
cmp dword [0x555970], 2
lea ecx, [esp + 0xd0]
sete al
push eax
push str.ArcTimeLatest
push ecx
call fcn.0049c4e0
mov edx, dword [0x556b94]
push edx
push str.mtime
lea eax, [esp + 0xd8]
push eax
call fcn.0049c4e0
mov ecx, dword [0x556b98]
push ecx
push str.ctime
lea edx, [esp + 0xd8]
push edx
call fcn.0049c4e0
mov eax, dword [0x556b9c]
push eax
push str.atime
lea ecx, [esp + 0xd8]
push ecx
call fcn.0049c4e0
xor edx, edx
cmp dword [0x555944], esi
lea eax, [esp + 0xd0]
sete dl
push edx
push str.PathsAbs
push eax
call fcn.0049c4e0
xor ecx, ecx
cmp dword [0x555944], edi
lea edx, [esp + 0xd0]
sete cl
push ecx
push str.PathsNone
push edx
call fcn.0049c4e0
xor eax, eax
cmp dword [0x555944], 4
lea ecx, [esp + 0xd0]
sete al
push eax
push str.PathsAbsDrive
push ecx
call fcn.0049c4e0
movzx edx, byte [0x559bcd]
push edx
push str.SeparateArc
lea eax, [esp + 0xd8]
push eax
call fcn.0049c4e0
push 0x555b8c
push str.EmailArcTo
lea ecx, [esp + 0xd8]
push ecx
call fcn.0049c4c0
push 0xc0
lea edx, [esp + 0x14]
push 0
push edx
call fcn.004e7df0
add esp, 0xc
xor eax, eax
jmp 0x4aeb60
mov ecx, dword [eax + 0x518860]
mov edx, dword [eax + 0x518864]
lea ecx, [ecx + ecx*2]
mov esi, dword [ecx*4 + 0x555acc]
lea ecx, [ecx*4 + 0x555acc]
lea edx, [edx + edx*2]
lea edx, [esp + edx*4 + 0x10]
mov dword [edx], esi
mov esi, dword [ecx + 4]
mov ecx, dword [ecx + 8]
add eax, 8
mov dword [edx + 4], esi
mov dword [edx + 8], ecx
cmp eax, 0x40
jb 0x4aeb60
push 0xc0
lea edx, [esp + 0x14]
push edx
push str.PackDetails
lea eax, [esp + 0xdc]
push eax
call fcn.0049c500
mov ecx, dword [esp + 0x1874]
pop edi
pop esi
pop ebp
xor ecx, esp
call fcn.004e6b3a
add esp, 0x186c
ret 0x14