Function at 0x486240
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x135c
call fcn.004b1040
mov eax, dword [0x4da8f0]
xor eax, esp
mov dword [esp + 0x1358], eax
mov eax, dword [esp + 0x1368]
push ebx
xor ebx, ebx
push esi
cmp eax, ebx
je 0x486276
push 0x50
push eax
lea eax, [esp + 0x14]
push eax
call fcn.004709a0
jmp 0x486295
mov ecx, dword [esp + 0x1368]
push ecx
lea edx, [esp + 0x10]
push str.Profiles_d
push edx
mov edx, 0x50
call fcn.00483770
add esp, 0xc
push 0x400
push 0x4c79a8
lea eax, [esp + 0x368]
push eax
push str.ArcName
lea ecx, [esp + 0x1c]
push ecx
call fcn.00460eb0
cmp word [esp + 0x360], bx
je 0x4862e7
xor eax, eax
jmp 0x4862d0
movzx ecx, word [esp + eax + 0x360]
mov word [eax + 0x52aca2], cx
add eax, 2
cmp cx, bx
jne 0x4862d0
push edi
cmp byte [esp + 0x1370], bl
je 0x4863f9
push str.FileNames
lea edx, [esp + 0x14]
push edx
call fcn.00460f30
cmp eax, ebx
jle 0x486397
lea edi, [eax + eax + 0xa]
xor ecx, ecx
mov eax, edi
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004b09d7
add esp, 4
push edi
push 0x4c79a8
mov esi, eax
push esi
push str.FileNames
lea eax, [esp + 0x20]
push eax
call fcn.00460eb0
mov ecx, dword [0x52b4a4]
push ebx
push ebx
push ecx
push esi
call fcn.004714c0
push esi
call fcn.004b1895
add esp, 4
push 0x400
push 0x4c79a8
lea edx, [esp + 0xb6c]
push edx
push str.CurDir
lea eax, [esp + 0x20]
push eax
call fcn.00460eb0
lea ecx, [esp + 0xb64]
push ecx
call fcn.0048cf50
mov byte [0x53c517], 1
mov byte [0x529c54], 1
push str.ExclNames
lea edx, [esp + 0x14]
push edx
call fcn.00460f30
cmp eax, ebx
jle 0x4863f9
lea edi, [eax + eax + 0xa]
xor ecx, ecx
mov eax, edi
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004b09d7
add esp, 4
push edi
push 0x4c79a8
mov esi, eax
push esi
push str.ExclNames
lea eax, [esp + 0x20]
push eax
call fcn.00460eb0
mov ecx, dword [0x52b4a8]
push ebx
push ebx
push ecx
push esi
call fcn.004714c0
push esi
call fcn.004b1895
add esp, 4
push str.StoreNames
lea edx, [esp + 0x14]
push edx
call fcn.00460f30
cmp eax, 0x200
jg 0x486414
mov eax, 0x200
lea edi, [eax + eax + 0xa]
xor ecx, ecx
mov eax, edi
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004b09d7
add esp, 4
push edi
push str..rar_.zip_.cab_.7z_.ace_.arj_.bz2_.gz_.lha_.lzh_.taz_.tgz
mov esi, eax
push esi
push str.StoreNames
lea eax, [esp + 0x20]
push eax
call fcn.00460eb0
mov ecx, dword [0x52b4b4]
push ebx
push ebx
push ecx
push esi
call fcn.004714c0
push esi
call fcn.004b1895
add esp, 4
push ebx
push str.Default
lea edx, [esp + 0x18]
push edx
call fcn.00460ee0
push 1
test eax, eax
push str.UseRAR
lea eax, [esp + 0x18]
push eax
setne byte [esp + 0x1b]
call fcn.00460ee0
push 0x400
push 0x4c79a8
neg eax
push 0x5250f0
sbb eax, eax
push str.SFXModule
lea ecx, [esp + 0x20]
inc eax
push ecx
mov dword [0x528c34], eax
call fcn.00460eb0
cmp word [0x5250f0], bx
jne 0x4864e1
push ebx
push 0x4c8034
lea edx, [esp + 0x18]
push edx
call fcn.00460ee0
neg eax
sbb eax, eax
and eax, 0x2a
mov word [0x5250f0], ax
xor eax, eax
mov word [0x5250f2], ax
push 0x400
push 0x4c79a8
push 0x528c3a
push str.SFXIcon
lea ecx, [esp + 0x20]
push ecx
call fcn.00460eb0
push 0x400
push 0x4c79a8
push 0x52943a
push str.SFXLogo
lea edx, [esp + 0x20]
push edx
call fcn.00460eb0
push ebx
push str.SFXElevate
lea eax, [esp + 0x18]
push eax
call fcn.00460ee0
test eax, eax
push 0x4c7e10
setne cl
push 0x52aca2
mov byte [0x529c3a], cl
call fcn.00456c20
movzx edx, al
xor eax, eax
cmp word [0x5250f0], bx
setne al
cmp edx, eax
jne 0x486574
push 1
push ebx
push 1
push ebx
push ebx
push 0x52aca2
mov ecx, 0x5229e0
call fcn.00417420
test al, al
je 0x486598
cmp word [0x5250f0], bx
mov ecx, dword [0x528c34]
setne dl
push ecx
movzx eax, dl
push eax
push 0x400
push 0x52aca2
call fcn.00485f00
push 0x400
push 0x4c79a8
push 0x5268f2
push str.CmtFile
lea ecx, [esp + 0x20]
push ecx
call fcn.00460eb0
push 0x20000
call fcn.004b09d7
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x4866be
push 0x20000
push ebx
push esi
push str.CmtDataWide
lea edx, [esp + 0x20]
push edx
call fcn.00460f00
cmp word [esi], bx
jne 0x486641
push 0x10000
push 0x4c79a8
push esi
push str.CmtTextWide
lea eax, [esp + 0x20]
push eax
call fcn.00460eb0
cmp word [esi], bx
jne 0x486641
push 0x10000
call fcn.004b09d7
add esp, 4
push 0x10000
push ebx
mov edi, eax
push edi
push str.CmtTextData
lea ecx, [esp + 0x20]
push ecx
call fcn.00460f00
push 0x10000
push esi
push edi
call fcn.00477f50
push edi
call fcn.004b1895
add esp, 4
xor edx, edx
mov word [esi + 0x1fffe], dx
mov eax, dword [0x53c4fc]
push eax
cmp word [esi], bx
je 0x4866a7
call fcn.004b1895
mov eax, esi
add esp, 4
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x486662
sub eax, edx
sar eax, 1
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004b09d7
add esp, 4
mov dword [0x53c4fc], eax
mov ecx, esi
mov edx, eax
movzx eax, word [ecx]
mov word [edx], ax
add ecx, 2
add edx, 2
cmp ax, bx
jne 0x486694
jmp 0x4866b5
call fcn.004b1895
add esp, 4
mov dword [0x53c4fc], ebx
push esi
call fcn.004b1895
add esp, 4
push 0x32
push 0x4c79a8
lea ecx, [esp + 0x208]
push ecx
push str.VolumeSize
lea edx, [esp + 0x20]
push edx
call fcn.00460eb0
mov ax, word [esp + 0x200]
cmp ax, bx
jne 0x4866fc
push ebx
push str.VolSize
lea eax, [esp + 0x18]
push eax
call fcn.00460ee0
cdq
jmp 0x486728
xor ecx, ecx
cmp ax, 0x41
sete cl
push ecx
call fcn.004785b0
test eax, eax
je 0x48671b
mov eax, 0x7fffffff
mov dword [0x52823c], eax
jmp 0x48672e
lea edx, [esp + 0x200]
push edx
call fcn.00470b60
mov dword [0x52823c], edx
push 2
mov dword [0x528238], eax
push str.VolSizeMod
lea eax, [esp + 0x18]
push eax
call fcn.00460ee0
push ebx
push str.VolPause
lea ecx, [esp + 0x18]
push ecx
mov dword [0x529c48], eax
call fcn.00460ee0
push ebx
test eax, eax
push str.OldVolNames
lea eax, [esp + 0x18]
setne dl
push eax
mov byte [0x528353], dl
call fcn.00460ee0
push ebx
test eax, eax
push str.RecVolNumber
lea edx, [esp + 0x18]
setne cl
push edx
mov byte [0x528350], cl
call fcn.00460ee0
push ebx
mov dword [0x528214], eax
push str.Update
lea eax, [esp + 0x18]
push eax
call fcn.00460ee0
push ebx
test eax, eax
push str.Fresh
lea edx, [esp + 0x18]
setne cl
push edx
mov byte [0x528229], cl
call fcn.00460ee0
push ebx
test eax, eax
push str.SyncFiles
lea ecx, [esp + 0x18]
setne al
push ecx
mov byte [0x528228], al
call fcn.00460ee0
push ebx
test eax, eax
push str.Overwrite
lea eax, [esp + 0x18]
setne dl
push eax
mov byte [0x5282ef], dl
call fcn.00460ee0
push ebx
push str.Move
lea ecx, [esp + 0x18]
push ecx
mov dword [0x528208], eax
call fcn.00460ee0
push ebx
test eax, eax
push str.ArcRecBin
lea eax, [esp + 0x18]
setne dl
push eax
mov byte [0x52826a], dl
call fcn.00460ee0
push ebx
test eax, eax
push str.ArcWipe
lea edx, [esp + 0x18]
setne cl
push edx
mov byte [0x52826d], cl
call fcn.00460ee0
test eax, eax
push ebx
push str.WipeIfPassword
lea ecx, [esp + 0x18]
setne al
push ecx
mov byte [0x52826c], al
call fcn.00460ee0
push 1
test eax, eax
push str.Solid
lea eax, [esp + 0x18]
setne dl
push eax
mov byte [0x529c45], dl
call fcn.00460ee0
push 1
push 0x4cd1cc
lea ecx, [esp + 0x18]
push ecx
mov dword [0x52821c], eax
call fcn.00460ee0
push ebx
test eax, eax
push str.Test
lea eax, [esp + 0x18]
setne dl
push eax
mov byte [0x528226], dl
call fcn.00460ee0
push ebx
test eax, eax
push str.Recovery
lea edx, [esp + 0x18]
setne cl
push edx
mov byte [0x528352], cl
call fcn.00460ee0
push ebx
mov dword [0x528210], eax
push str.EraseDest
lea eax, [esp + 0x18]
push eax
call fcn.00460ee0
push ebx
test eax, eax
push str.AddArcOnly
lea edx, [esp + 0x18]
setne cl
push edx
mov byte [0x52826b], cl
call fcn.00460ee0
push ebx
test eax, eax
push str.ClearArc
lea ecx, [esp + 0x18]
setne al
push ecx
mov byte [0x528225], al
call fcn.00460ee0
push ebx
test eax, eax
push str.Lock
lea eax, [esp + 0x18]
setne dl
push eax
mov byte [0x528224], dl
call fcn.00460ee0
mov edi, 3
push edi
test eax, eax
push str.Method
lea edx, [esp + 0x18]
setne cl
push edx
mov byte [0x528351], cl
call fcn.00460ee0
mov dword [0x52820c], eax
call fcn.00483720
push eax
push str.DictSizeLZ
lea eax, [esp + 0x18]
push eax
call fcn.00460ee0
push 0x100
lea edx, [esp + 0xb4]
xor ecx, ecx
push ebx
push edx
mov dword [0x5248ec], eax
mov word [esp + 0x270], cx
call fcn.004b14b0
add esp, 0xc
push 0x100
push ebx
lea eax, [esp + 0xb8]
push eax
push str.PasswordWide
lea ecx, [esp + 0x20]
push ecx
call fcn.00460f00
cmp eax, ebx
jne 0x4869ff
push 0x100
push ebx
lea edx, [esp + 0xb8]
push edx
push str.Password
lea eax, [esp + 0x20]
push eax
mov byte [esp + 0xc4], bl
call fcn.00460f00
xor ecx, ecx
cmp eax, ebx
jle 0x4869e3
mov dl, cl
add dl, 0x49
xor byte [esp + ecx + 0xb0], dl
je 0x4869e3
inc ecx
cmp ecx, eax
jl 0x4869d0
push 0x80
lea eax, [esp + 0x268]
push eax
lea ecx, [esp + 0xb8]
push ecx
call fcn.00477f50
jmp 0x486a3b
xor ecx, ecx
cmp eax, ebx
jle 0x486a21
jmp 0x486a10
mov dl, cl
add dl, 0x49
xor byte [esp + ecx + 0xb0], dl
inc ecx
cmp ecx, eax
jl 0x486a10
push 0x80
lea eax, [esp + 0x268]
push eax
lea ecx, [esp + 0xb8]
push ecx
call fcn.00477fd0
cmp byte [esp + 0xf], bl
je 0x486a51
cmp byte [0x527dfc], bl
jne 0x486a7e
cmp byte [0x527dfe], bl
jne 0x486a7e
lea edx, [esp + 0x264]
push edx
mov ecx, 0x527cfc
call fcn.0046a700
push ebx
push str.EncryptHeaders
lea eax, [esp + 0x18]
push eax
call fcn.00460ee0
test eax, eax
setne cl
mov byte [0x527dfe], cl
push 0x100
lea edx, [esp + 0x268]
push edx
call fcn.0046a760
push 0x100
lea eax, [esp + 0xb4]
push eax
call fcn.0046a760
push ebx
push str.OpenShared
lea ecx, [esp + 0x18]
push ecx
call fcn.00460ee0
push ebx
test eax, eax
push str.ProcessOwners
lea eax, [esp + 0x18]
setne dl
push eax
mov byte [0x528269], dl
call fcn.00460ee0
push 1
test eax, eax
push str.SaveStreams
lea edx, [esp + 0x18]
setne cl
push edx
mov byte [0x52825c], cl
call fcn.00460ee0
push ebx
test eax, eax
push str.Background
lea ecx, [esp + 0x18]
setne al
push ecx
mov byte [0x5282f1], al
call fcn.00460ee0
push ebx
test eax, eax
push str.WaitForOther
lea eax, [esp + 0x18]
setne dl
push eax
mov byte [0x529c3b], dl
call fcn.00460ee0
push ebx
test eax, eax
push str.Shutdown
lea edx, [esp + 0x18]
setne cl
push edx
mov byte [0x529c3c], cl
call fcn.00460ee0
push ebx
test eax, eax
push str.GenerateArcName
lea ecx, [esp + 0x18]
setne al
push ecx
mov byte [0x52881a], al
call fcn.00460ee0
push ebx
test eax, eax
push str.VersionControl
lea eax, [esp + 0x18]
setne dl
push eax
mov byte [0x52826e], dl
call fcn.00460ee0
push 0x80
push str.yyyymmddhhmmss
push 0x52826f
push str.GenerateMask
lea ecx, [esp + 0x20]
push ecx
mov dword [0x528814], eax
call fcn.00461370
cmp byte [0x52826f], bl
je 0x486bcc
mov ecx, str.yyyymmddhhnnss
mov eax, 0x52826f
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x486bc3
cmp dl, bl
je 0x486bbf
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x486bc3
add eax, 2
add ecx, 2
cmp dl, bl
jne 0x486ba3
xor eax, eax
jmp 0x486bc8
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x486c06
mov edx, dword [str.yyyymmddhhmmss]
mov eax, dword [0x4cae2c]
mov ecx, dword [0x4cae30]
mov dword [0x52826f], edx
mov dx, word [0x4cae34]
mov dword [0x528273], eax
mov al, byte [0x4cae36]
mov dword [0x528277], ecx
mov word [0x52827b], dx
mov byte [0x52827d], al
push ebx
push str.FileTimeMode
lea ecx, [esp + 0x18]
push ecx
call fcn.00460ee0
push ebx
push str.FileDays
lea edx, [esp + 0x18]
push edx
mov dword [0x53c504], eax
call fcn.00460ee0
push ebx
mov dword [0x53c508], eax
push str.FileHours
lea eax, [esp + 0x18]
push eax
call fcn.00460ee0
push ebx
push str.FileMinutes
lea ecx, [esp + 0x18]
push ecx
mov dword [0x53c50c], eax
call fcn.00460ee0
mov ecx, dword [0x53c504]
mov dword [0x53c510], eax
mov dword [0x5282f4], ebx
mov dword [0x528318], ebx
cmp ecx, 1
je 0x486c76
cmp ecx, 2
jne 0x486cc9
mov edx, dword [0x53c50c]
push eax
mov eax, dword [0x53c508]
push edx
push eax
lea ecx, [esp + 0x1bc]
push str._dd_dh_dm
push ecx
call fcn.004b106b
add esp, 0x14
cmp dword [0x53c504], 1
jne 0x486cb1
lea edx, [esp + 0x1b0]
push edx
mov ecx, 0x5282f4
jmp 0x486cbe
lea eax, [esp + 0x1b0]
push eax
mov ecx, 0x528318
call fcn.00473eb0
mov ecx, dword [0x53c504]
mov esi, 4
cmp ecx, edi
je 0x486cd6
cmp ecx, esi
jne 0x486d24
push ebx
push str.FileTimeBefore
lea ecx, [esp + 0x18]
push ecx
call fcn.00460ee0
cmp eax, ebx
je 0x486cfd
cmp dword [0x53c504], edi
jne 0x486cfd
push eax
mov ecx, 0x5282f4
call fcn.00473a00
push ebx
push str.FileTimeAfter
lea edx, [esp + 0x18]
push edx
call fcn.00460ee0
cmp eax, ebx
je 0x486d24
cmp dword [0x53c504], esi
jne 0x486d24
push eax
mov ecx, 0x528318
call fcn.00473a00
push ebx
push str.ArcTimeOriginal
lea eax, [esp + 0x18]
push eax
mov dword [0x528254], ebx
call fcn.00460ee0
test eax, eax
je 0x486d48
mov dword [0x528254], 1
push ebx
push str.ArcTimeLatest
lea ecx, [esp + 0x18]
push ecx
call fcn.00460ee0
test eax, eax
je 0x486d66
mov dword [0x528254], 2
push esi
push str.mtime
lea edx, [esp + 0x18]
push edx
call fcn.00460ee0
push ebx
mov dword [0x52881c], eax
push str.ctime
lea eax, [esp + 0x18]
push eax
call fcn.00460ee0
push ebx
push str.atime
lea ecx, [esp + 0x18]
push ecx
mov dword [0x528820], eax
call fcn.00460ee0
mov edx, dword [0x52b4a4]
mov dword [0x528824], eax
mov eax, dword [edx + 0x20]
neg eax
push ebx
sbb eax, eax
push str.PathsAbs
lea ecx, [esp + 0x18]
and eax, 5
push ecx
mov dword [0x52822c], eax
call fcn.00460ee0
test eax, eax
je 0x486dd4
mov dword [0x52822c], edi
push ebx
push str.PathsNone
lea edx, [esp + 0x18]
push edx
call fcn.00460ee0
pop edi
test eax, eax
je 0x486df3
mov dword [0x52822c], 1
push ebx
push str.PathsAbsDrive
lea eax, [esp + 0x14]
push eax
call fcn.00460ee0
test eax, eax
je 0x486e0d
mov dword [0x52822c], esi
push ebx
push str.ImmExec
lea ecx, [esp + 0x14]
push ecx
call fcn.00460ee0
push ebx
test eax, eax
push str.SeparateArc
lea eax, [esp + 0x14]
setne dl
push eax
mov byte [0x53c514], dl
call fcn.00460ee0
push 0x400
push 0x4c7a6a
push 0x528414
test eax, eax
push str.EmailArcTo
lea edx, [esp + 0x1c]
setne cl
push edx
mov byte [0x53c516], cl
call fcn.00461370
push 0xc0
push ebx
push 0x528354
push str.PackDetails
lea eax, [esp + 0x1c]
push eax
call fcn.00460f00
mov ecx, dword [esp + 0x1360]
pop esi
pop ebx
xor ecx, esp
call fcn.004b102c
add esp, 0x135c
ret 0xc