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

Disassembly:
sub esp, 0xaac
mov eax, dword [0x4cc3b0]
xor eax, esp
mov dword [esp + 0xaa8], eax
mov eax, dword [esp + 0xac0]
push ebp
mov ebp, dword [esp + 0xac0]
push esi
push edi
push str.Profiles_d
mov dword [esp + 0x10], eax
call fcn.0045bb00
cmp dword [esp + 0xac4], 0xffffffff
mov edi, eax
jne 0x4802f5
xor esi, esi
mov dword [esp + 0xac4], edi
test edi, edi
jle 0x4802f5
jmp 0x480270
push esi
lea ecx, [esp + 0x118]
push str.Profiles_d
push ecx
mov edx, 0x50
call fcn.0049c880
add esp, 0xc
push 0x200
push 0x4bad38
lea edx, [esp + 0x2bc]
push edx
push 0x4bf59c
lea eax, [esp + 0x124]
push eax
call fcn.0045ba30
mov ecx, ebp
lea eax, [esp + 0x2b4]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4802de
test dx, dx
je 0x4802da
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4802de
add eax, 4
add ecx, 4
test dx, dx
jne 0x4802b8
xor eax, eax
jmp 0x4802e3
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4802ee
inc esi
cmp esi, edi
jl 0x480270
jmp 0x4802f5
mov dword [esp + 0xac4], esi
mov eax, dword [esp + 0xc]
test eax, eax
je 0x48030c
push 0x50
push eax
lea ecx, [esp + 0x18]
push ecx
call fcn.0046ac00
jmp 0x48032b
mov edx, dword [esp + 0xac4]
push edx
lea eax, [esp + 0x14]
push str.Profiles_d
push eax
mov edx, 0x50
call fcn.0049c880
add esp, 0xc
push ebp
push 0x4bf59c
lea ecx, [esp + 0x18]
push ecx
call fcn.0045b960
cmp byte [esp + 0xac0], 0
je 0x480384
xor esi, esi
test edi, edi
jle 0x480384
jmp 0x480350
push esi
lea edx, [esp + 0x118]
push str.Profiles_d
push edx
mov edx, 0x50
call fcn.0049c880
add esp, 0xc
push 0
push 0x4bf58c
lea eax, [esp + 0x11c]
push eax
call fcn.0045b980
inc esi
cmp esi, edi
jl 0x480350
movzx ecx, byte [esp + 0xac0]
push ecx
push 0x4bf58c
lea edx, [esp + 0x18]
push edx
call fcn.0045b980
push str.ArcName
lea eax, [esp + 0x14]
push eax
call fcn.0045b600
push str.FileNames
lea ecx, [esp + 0x14]
push ecx
call fcn.0045b600
push 0
push str.ImmExec
lea edx, [esp + 0x18]
push edx
call fcn.0045b980
test ebx, ebx
je 0x4804d5
mov esi, dword [sym.imp.USER32.dll_IsDlgButtonChecked]
push 0x6b
push ebx
call esi
push eax
push str.ImmExec
lea eax, [esp + 0x18]
push eax
call fcn.0045b980
push 0x6d
push ebx
call esi
push eax
push str.AddToMenu
lea ecx, [esp + 0x18]
push ecx
call fcn.0045b980
push 0x66
push ebx
call esi
test eax, eax
je 0x480439
push 0x400
lea edx, [esp + 0x2b8]
push edx
push 0x67
push ebx
call dword [sym.imp.USER32.dll_GetDlgItemTextW]
lea eax, [esp + 0x2b4]
push eax
push str.ArcName
lea ecx, [esp + 0x18]
push ecx
call fcn.0045b960
push 0x68
push ebx
call esi
test eax, eax
je 0x4804d5
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.004a59a4
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 + 0x18]
push eax
call fcn.0045b960
push edi
call fcn.004a57f5
add esp, 4
cmp byte [esp + 0xabc], 0
jne 0x480b23
push 0x400
lea ecx, [esp + 0x2b8]
push ecx
call fcn.00485da0
lea edx, [esp + 0x2b4]
push edx
push str.CurDir
lea eax, [esp + 0x18]
push eax
call fcn.0045b960
jmp 0x4804e3
cmp byte [esp + 0xabc], 0
jne 0x480b23
mov ecx, dword [0x4f9880]
push ecx
call fcn.0046b790
mov esi, eax
push esi
call fcn.0046a8a0
push eax
push str.ExclNames
lea edx, [esp + 0x18]
push edx
call fcn.0045b960
push esi
call fcn.004a57f5
mov eax, dword [0x4f988c]
add esp, 4
push eax
call fcn.0046b790
mov esi, eax
push esi
call fcn.0046a8a0
push eax
push str.StoreNames
lea ecx, [esp + 0x18]
push ecx
call fcn.0045b960
push esi
call fcn.004a57f5
add esp, 4
xor edx, edx
cmp dword [0x4f701c], edx
lea eax, [esp + 0x10]
sete dl
push edx
push str.UseRAR
push eax
call fcn.0045b980
push 0x4f34e0
push str.SFXModule
lea ecx, [esp + 0x18]
push ecx
call fcn.0045b960
push 0x4bafd8
lea edx, [esp + 0x14]
push edx
call fcn.0045b600
push 0x4f7022
push str.SFXIcon
lea eax, [esp + 0x18]
push eax
call fcn.0045b960
push 0x4f7822
push str.SFXLogo
lea ecx, [esp + 0x18]
push ecx
call fcn.0045b960
movzx edx, byte [0x4f8022]
push edx
push 0x4be490
lea eax, [esp + 0x18]
push eax
call fcn.0045b980
push 0x4f4ce0
push str.CmtFile
lea ecx, [esp + 0x18]
push ecx
call fcn.0045b960
cmp word [0x4f4ce0], 0
je 0x4805de
mov eax, 0x4bad38
jmp 0x4805ea
mov edx, dword [0x50d788]
push edx
call fcn.0046a8a0
mov ecx, eax
lea esi, [ecx + 2]
nop
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x4805f0
sub ecx, esi
sar ecx, 1
lea ecx, [ecx + ecx + 2]
push ecx
push eax
push str.CmtDataWide
lea edx, [esp + 0x1c]
push edx
call fcn.0045b9e0
mov eax, dword [0x4f6620]
mov ecx, dword [0x4f6624]
cmp eax, 0x7fffffff
jne 0x480649
cmp ecx, 0x7fffffff
jne 0x480649
xor eax, eax
movzx ecx, word [eax + 0x4bfaf8]
mov word [esp + eax + 0xb0], cx
add eax, 2
test cx, cx
jne 0x480630
jmp 0x480658
lea edx, [esp + 0xb0]
push edx
push ecx
push eax
call fcn.0046ac90
lea eax, [esp + 0xb0]
push eax
push str.VolumeSize
lea ecx, [esp + 0x18]
push ecx
call fcn.0045b960
movzx edx, byte [0x4f673b]
push edx
push str.VolPause
lea eax, [esp + 0x18]
push eax
call fcn.0045b980
movzx ecx, byte [0x4f6738]
push ecx
push str.OldVolNames
lea edx, [esp + 0x18]
push edx
call fcn.0045b980
mov eax, dword [0x4f6600]
push eax
push str.RecVolNumber
lea ecx, [esp + 0x18]
push ecx
call fcn.0045b980
movzx edx, byte [0x4f6615]
push edx
push 0x4be69c
lea eax, [esp + 0x18]
push eax
call fcn.0045b980
movzx ecx, byte [0x4f6614]
push ecx
push str.Fresh
lea edx, [esp + 0x18]
push edx
call fcn.0045b980
movzx eax, byte [0x4f66d7]
push eax
push str.SyncFiles
lea ecx, [esp + 0x18]
push ecx
call fcn.0045b980
mov edx, dword [0x4f65f4]
push edx
push str.Overwrite
lea eax, [esp + 0x18]
push eax
call fcn.0045b980
movzx ecx, byte [0x4f6652]
push ecx
push str.Move
lea edx, [esp + 0x18]
push edx
call fcn.0045b980
movzx eax, byte [0x4f6655]
push eax
push str.ArcRecBin
lea ecx, [esp + 0x18]
push ecx
call fcn.0045b980
movzx edx, byte [0x4f6654]
push edx
push str.ArcWipe
lea eax, [esp + 0x18]
push eax
call fcn.0045b980
mov ecx, dword [0x4f6608]
push ecx
push str.Solid
lea edx, [esp + 0x18]
push edx
call fcn.0045b980
movzx eax, byte [0x4f6612]
push eax
push 0x4bf8f4
lea ecx, [esp + 0x18]
push ecx
call fcn.0045b980
movzx edx, byte [0x4f673a]
push edx
push str.Test
lea eax, [esp + 0x18]
push eax
call fcn.0045b980
mov ecx, dword [0x4f65fc]
push ecx
push str.Recovery
lea edx, [esp + 0x18]
push edx
call fcn.0045b980
movzx eax, byte [0x4f6653]
push eax
push str.EraseDest
lea ecx, [esp + 0x18]
push ecx
call fcn.0045b980
movzx edx, byte [0x4f6611]
push edx
push str.AddArcOnly
lea eax, [esp + 0x18]
push eax
call fcn.0045b980
movzx ecx, byte [0x4f6610]
push ecx
push str.ClearArc
lea edx, [esp + 0x18]
push edx
call fcn.0045b980
movzx eax, byte [0x4f6739]
push eax
push 0x4bb4c0
lea ecx, [esp + 0x18]
push ecx
call fcn.0045b980
mov edx, dword [0x4f65f8]
push edx
push str.Method
lea eax, [esp + 0x18]
push eax
call fcn.0045b980
mov ecx, dword [0x4f2cdc]
push ecx
push str.DictSizeLZ
lea edx, [esp + 0x18]
push edx
call fcn.0045b980
movzx eax, byte [0x4f8023]
push eax
push 0x4bf7d8
lea ecx, [esp + 0x18]
push ecx
call fcn.0045b980
movzx edx, byte [0x4f8024]
push edx
push str.WaitForOther
lea eax, [esp + 0x18]
push eax
call fcn.0045b980
movzx ecx, byte [0x4f6c02]
push ecx
push str.Shutdown
lea edx, [esp + 0x18]
push edx
call fcn.0045b980
push 0x80
lea eax, [esp + 0x1b8]
push eax
push 0x4f60e8
call fcn.004732d0
mov eax, 0x4f60e8
lea edx, [eax + 2]
jmp 0x4808a0
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4808a0
sub eax, edx
sar eax, 1
lea ecx, [eax + eax + 2]
xor eax, eax
test ecx, ecx
jbe 0x4808d1
lea esp, [esp]
mov dl, al
add dl, 0x49
xor byte [esp + eax + 0x1b4], dl
inc eax
cmp eax, ecx
jb 0x4808c0
push ecx
lea eax, [esp + 0x1b8]
push eax
push str.PasswordWide
lea ecx, [esp + 0x1c]
push ecx
call fcn.0045b9e0
movzx edx, byte [0x4f61e8]
push edx
push str.EncryptHeaders
lea eax, [esp + 0x18]
push eax
call fcn.0045b980
movzx ecx, byte [0x4f6651]
push ecx
push str.OpenShared
lea edx, [esp + 0x18]
push edx
call fcn.0045b980
movzx eax, byte [0x4f6644]
push eax
push str.ProcessOwners
lea ecx, [esp + 0x18]
push ecx
call fcn.0045b980
movzx edx, byte [0x4f66d9]
push edx
push str.SaveStreams
lea eax, [esp + 0x18]
push eax
call fcn.0045b980
movzx ecx, byte [0x4f6656]
push ecx
push str.GenerateArcName
lea edx, [esp + 0x18]
push edx
call fcn.0045b980
mov eax, dword [0x4f6bfc]
push eax
push str.VersionControl
lea ecx, [esp + 0x18]
push ecx
call fcn.0045b980
push 0x4f6657
push str.GenerateMask
lea edx, [esp + 0x18]
push edx
call fcn.0045be80
mov eax, dword [0x50d790]
push eax
push str.FileTimeMode
lea ecx, [esp + 0x18]
push ecx
call fcn.0045b980
mov edx, dword [0x50d794]
push edx
push str.FileDays
lea eax, [esp + 0x18]
push eax
call fcn.0045b980
mov ecx, dword [0x50d798]
push ecx
push str.FileHours
lea edx, [esp + 0x18]
push edx
call fcn.0045b980
mov eax, dword [0x50d79c]
push eax
push str.FileMinutes
lea ecx, [esp + 0x18]
push ecx
call fcn.0045b980
mov ecx, 0x4f66dc
call fcn.0046da30
push eax
push str.FileTimeBefore
lea edx, [esp + 0x18]
push edx
call fcn.0045b980
mov ecx, 0x4f6700
call fcn.0046da30
push eax
push str.FileTimeAfter
lea eax, [esp + 0x18]
push eax
call fcn.0045b980
xor ecx, ecx
mov esi, 1
cmp dword [0x4f663c], esi
lea edx, [esp + 0x10]
sete cl
push ecx
push str.ArcTimeOriginal
push edx
call fcn.0045b980
xor eax, eax
cmp dword [0x4f663c], 2
lea ecx, [esp + 0x10]
sete al
push eax
push str.ArcTimeLatest
push ecx
call fcn.0045b980
mov edx, dword [0x4f6c04]
push edx
push str.mtime
lea eax, [esp + 0x18]
push eax
call fcn.0045b980
mov ecx, dword [0x4f6c08]
push ecx
push str.ctime
lea edx, [esp + 0x18]
push edx
call fcn.0045b980
mov eax, dword [0x4f6c0c]
push eax
push str.atime
lea ecx, [esp + 0x18]
push ecx
call fcn.0045b980
xor edx, edx
cmp dword [0x4f6618], 3
lea eax, [esp + 0x10]
sete dl
push edx
push str.PathsAbs
push eax
call fcn.0045b980
xor ecx, ecx
cmp dword [0x4f6618], esi
lea edx, [esp + 0x10]
sete cl
push ecx
push str.PathsNone
push edx
call fcn.0045b980
xor eax, eax
cmp dword [0x4f6618], 4
lea ecx, [esp + 0x10]
sete al
push eax
push str.PathsAbsDrive
push ecx
call fcn.0045b980
movzx edx, byte [0x50d7a2]
push edx
push str.SeparateArc
lea eax, [esp + 0x18]
push eax
call fcn.0045b980
push 0x4f67fc
push str.EmailArcTo
lea ecx, [esp + 0x18]
push ecx
call fcn.0045be80
push 0xc0
push 0x4f673c
push str.PackDetails
lea edx, [esp + 0x1c]
push edx
call fcn.0045b9e0
mov ecx, dword [esp + 0xab4]
pop edi
pop esi
pop ebp
xor ecx, esp
call fcn.004a4bb3
add esp, 0xaac
ret 0x14