Function at 0x47f580
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x135c
call fcn.004a53e0
mov eax, dword [0x4cc3b0]
xor eax, esp
mov dword [esp + 0x1358], eax
mov eax, dword [esp + 0x1368]
push ebx
xor ebx, ebx
push esi
cmp eax, ebx
je 0x47f5b6
push 0x50
push eax
lea eax, [esp + 0x14]
push eax
call fcn.0046ac00
jmp 0x47f5d5
mov ecx, dword [esp + 0x1368]
push ecx
lea edx, [esp + 0x10]
push str.Profiles_d
push edx
mov edx, 0x50
call fcn.0049c880
add esp, 0xc
push 0x400
push 0x4bad38
lea eax, [esp + 0x368]
push eax
push str.ArcName
lea ecx, [esp + 0x1c]
push ecx
call fcn.0045ba30
cmp word [esp + 0x360], bx
je 0x47f627
xor eax, eax
jmp 0x47f610
movzx ecx, word [esp + eax + 0x360]
mov word [eax + 0x4f907c], cx
add eax, 2
cmp cx, bx
jne 0x47f610
push edi
cmp byte [esp + 0x1370], bl
je 0x47f739
push str.FileNames
lea edx, [esp + 0x14]
push edx
call fcn.0045bab0
cmp eax, ebx
jle 0x47f6d7
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.004a59a4
add esp, 4
push edi
push 0x4bad38
mov esi, eax
push esi
push str.FileNames
lea eax, [esp + 0x20]
push eax
call fcn.0045ba30
mov ecx, dword [0x4f987c]
push ebx
push ebx
push ecx
push esi
call fcn.0046b590
push esi
call fcn.004a57f5
add esp, 4
push 0x400
push 0x4bad38
lea edx, [esp + 0xb6c]
push edx
push str.CurDir
lea eax, [esp + 0x20]
push eax
call fcn.0045ba30
lea ecx, [esp + 0xb64]
push ecx
call fcn.00485d80
mov byte [0x50d7a3], 1
mov byte [0x4f8034], 1
push str.ExclNames
lea edx, [esp + 0x14]
push edx
call fcn.0045bab0
cmp eax, ebx
jle 0x47f739
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.004a59a4
add esp, 4
push edi
push 0x4bad38
mov esi, eax
push esi
push str.ExclNames
lea eax, [esp + 0x20]
push eax
call fcn.0045ba30
mov ecx, dword [0x4f9880]
push ebx
push ebx
push ecx
push esi
call fcn.0046b590
push esi
call fcn.004a57f5
add esp, 4
push str.StoreNames
lea edx, [esp + 0x14]
push edx
call fcn.0045bab0
cmp eax, 0x200
jg 0x47f754
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.004a59a4
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.0045ba30
mov ecx, dword [0x4f988c]
push ebx
push ebx
push ecx
push esi
call fcn.0046b590
push esi
call fcn.004a57f5
add esp, 4
push ebx
push 0x4bf58c
lea edx, [esp + 0x18]
push edx
call fcn.0045ba60
push 1
test eax, eax
push str.UseRAR
lea eax, [esp + 0x18]
push eax
setne byte [esp + 0x1b]
call fcn.0045ba60
push 0x400
push 0x4bad38
neg eax
push 0x4f34e0
sbb eax, eax
push str.SFXModule
lea ecx, [esp + 0x20]
inc eax
push ecx
mov dword [0x4f701c], eax
call fcn.0045ba30
cmp word [0x4f34e0], bx
jne 0x47f821
push ebx
push 0x4bafd8
lea edx, [esp + 0x18]
push edx
call fcn.0045ba60
neg eax
sbb eax, eax
and eax, 0x2a
mov word [0x4f34e0], ax
xor eax, eax
mov word [0x4f34e2], ax
push 0x400
push 0x4bad38
push 0x4f7022
push str.SFXIcon
lea ecx, [esp + 0x20]
push ecx
call fcn.0045ba30
cmp word [0x4f7022], bx
jne 0x47f866
push 0x400
push 0x4bad38
push 0x4f7022
push str.SFXIcon
push str.SFXDefault
call fcn.0045ba30
push 0x400
push 0x4bad38
push 0x4f7822
push str.SFXLogo
lea edx, [esp + 0x20]
push edx
call fcn.0045ba30
cmp word [0x4f7822], bx
jne 0x47f8ab
push 0x400
push 0x4bad38
push 0x4f7822
push str.SFXLogo
push str.SFXDefault
call fcn.0045ba30
push ebx
push 0x4be490
lea eax, [esp + 0x18]
push eax
call fcn.0045ba60
test eax, eax
setne al
mov byte [0x4f8022], al
cmp al, bl
jne 0x47f8e4
push ebx
push 0x4be490
push str.SFXDefault
call fcn.0045ba60
test eax, eax
setne cl
mov byte [0x4f8022], cl
push 0x4badc8
push 0x4f907c
call fcn.00451fd0
movzx edx, al
xor eax, eax
cmp word [0x4f34e0], bx
setne al
cmp edx, eax
jne 0x47f920
push 1
push ebx
push 1
push ebx
push ebx
push 0x4f907c
mov ecx, 0x4f0dd0
call fcn.00416cb0
test al, al
je 0x47f93f
cmp word [0x4f34e0], bx
mov ecx, dword [0x4f701c]
setne dl
movzx eax, dl
push ecx
push eax
push 0x4f907c
call fcn.0047f1e0
push 0x400
push 0x4bad38
push 0x4f4ce0
push str.CmtFile
lea ecx, [esp + 0x20]
push ecx
call fcn.0045ba30
push 0x20000
call fcn.004a59a4
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x47fa6c
push 0x20000
push ebx
push esi
push str.CmtDataWide
lea edx, [esp + 0x20]
push edx
call fcn.0045ba80
cmp word [esi], bx
jne 0x47f9e8
push 0x10000
push 0x4bad38
push esi
push str.CmtTextWide
lea eax, [esp + 0x20]
push eax
call fcn.0045ba30
cmp word [esi], bx
jne 0x47f9e8
push 0x10000
call fcn.004a59a4
add esp, 4
push 0x10000
push ebx
mov edi, eax
push edi
push str.CmtTextData
lea ecx, [esp + 0x20]
push ecx
call fcn.0045ba80
push 0x10000
push esi
push edi
call fcn.00473290
push edi
call fcn.004a57f5
add esp, 4
xor edx, edx
mov word [esi + 0x1fffe], dx
mov eax, dword [0x50d788]
push eax
cmp word [esi], bx
je 0x47fa55
call fcn.004a57f5
mov eax, esi
add esp, 4
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x47fa10
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.004a59a4
add esp, 4
mov dword [0x50d788], 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 0x47fa42
jmp 0x47fa63
call fcn.004a57f5
add esp, 4
mov dword [0x50d788], ebx
push esi
call fcn.004a57f5
add esp, 4
push 0x32
push 0x4bad38
lea ecx, [esp + 0x208]
push ecx
push str.VolumeSize
lea edx, [esp + 0x20]
push edx
call fcn.0045ba30
mov ax, word [esp + 0x200]
cmp ax, bx
jne 0x47faaa
push ebx
push str.VolSize
lea eax, [esp + 0x18]
push eax
call fcn.0045ba60
cdq
jmp 0x47fad6
xor ecx, ecx
cmp ax, 0x41
sete cl
push ecx
call fcn.004738a0
test eax, eax
je 0x47fac9
mov eax, 0x7fffffff
mov dword [0x4f6624], eax
jmp 0x47fadc
lea edx, [esp + 0x200]
push edx
call fcn.0046ad30
mov dword [0x4f6624], edx
push ebx
mov dword [0x4f6620], eax
push str.VolPause
lea eax, [esp + 0x18]
push eax
call fcn.0045ba60
push ebx
test eax, eax
push str.OldVolNames
lea edx, [esp + 0x18]
setne cl
push edx
mov byte [0x4f673b], cl
call fcn.0045ba60
push ebx
test eax, eax
push str.RecVolNumber
lea ecx, [esp + 0x18]
setne al
push ecx
mov byte [0x4f6738], al
call fcn.0045ba60
push ebx
push 0x4be69c
lea edx, [esp + 0x18]
push edx
mov dword [0x4f6600], eax
call fcn.0045ba60
push ebx
test eax, eax
push str.Fresh
lea ecx, [esp + 0x18]
setne al
push ecx
mov byte [0x4f6615], al
call fcn.0045ba60
push ebx
test eax, eax
push str.SyncFiles
lea eax, [esp + 0x18]
setne dl
push eax
mov byte [0x4f6614], dl
call fcn.0045ba60
push ebx
test eax, eax
push str.Overwrite
lea edx, [esp + 0x18]
setne cl
push edx
mov byte [0x4f66d7], cl
call fcn.0045ba60
push ebx
mov dword [0x4f65f4], eax
push str.Move
lea eax, [esp + 0x18]
push eax
call fcn.0045ba60
push ebx
test eax, eax
push str.ArcRecBin
lea edx, [esp + 0x18]
setne cl
push edx
mov byte [0x4f6652], cl
call fcn.0045ba60
push ebx
test eax, eax
push str.ArcWipe
lea ecx, [esp + 0x18]
setne al
push ecx
mov byte [0x4f6655], al
call fcn.0045ba60
test eax, eax
push 1
setne dl
push str.Solid
lea eax, [esp + 0x18]
mov byte [0x4f6654], dl
push eax
call fcn.0045ba60
push 1
push 0x4bf8f4
lea ecx, [esp + 0x18]
push ecx
mov dword [0x4f6608], eax
call fcn.0045ba60
push ebx
test eax, eax
push str.Test
lea eax, [esp + 0x18]
setne dl
push eax
mov byte [0x4f6612], dl
call fcn.0045ba60
push ebx
test eax, eax
push str.Recovery
lea edx, [esp + 0x18]
setne cl
push edx
mov byte [0x4f673a], cl
call fcn.0045ba60
push ebx
mov dword [0x4f65fc], eax
push str.EraseDest
lea eax, [esp + 0x18]
push eax
call fcn.0045ba60
push ebx
test eax, eax
push str.AddArcOnly
lea edx, [esp + 0x18]
setne cl
push edx
mov byte [0x4f6653], cl
call fcn.0045ba60
push ebx
test eax, eax
push str.ClearArc
lea ecx, [esp + 0x18]
setne al
push ecx
mov byte [0x4f6611], al
call fcn.0045ba60
push ebx
test eax, eax
push 0x4bb4c0
lea eax, [esp + 0x18]
setne dl
push eax
mov byte [0x4f6610], dl
call fcn.0045ba60
mov edi, 3
push edi
test eax, eax
push str.Method
lea edx, [esp + 0x18]
setne cl
push edx
mov byte [0x4f6739], cl
call fcn.0045ba60
mov dword [0x4f65f8], eax
call fcn.0047cc80
push eax
push str.DictSizeLZ
lea eax, [esp + 0x18]
push eax
call fcn.0045ba60
push pe_nt_image_headers32
lea edx, [esp + 0xb4]
xor ecx, ecx
push ebx
push edx
mov dword [0x4f2cdc], eax
mov word [esp + 0x270], cx
call fcn.004a5410
add esp, 0xc
push pe_nt_image_headers32
push ebx
lea eax, [esp + 0xb8]
push eax
push str.PasswordWide
lea ecx, [esp + 0x20]
push ecx
call fcn.0045ba80
cmp eax, ebx
jne 0x47fd7f
push pe_nt_image_headers32
push ebx
lea edx, [esp + 0xb8]
push edx
push str.Password
lea eax, [esp + 0x20]
push eax
mov byte [esp + 0xc4], bl
call fcn.0045ba80
xor ecx, ecx
cmp eax, ebx
jle 0x47fd63
lea esp, [esp]
mov dl, cl
add dl, 0x49
xor byte [esp + ecx + 0xb0], dl
je 0x47fd63
inc ecx
cmp ecx, eax
jl 0x47fd50
push 0x80
lea eax, [esp + 0x268]
push eax
lea ecx, [esp + 0xb8]
push ecx
call fcn.00473290
jmp 0x47fdbb
xor ecx, ecx
cmp eax, ebx
jle 0x47fda1
jmp 0x47fd90
mov dl, cl
add dl, 0x49
xor byte [esp + ecx + 0xb0], dl
inc ecx
cmp ecx, eax
jl 0x47fd90
push 0x80
lea eax, [esp + 0x268]
push eax
lea ecx, [esp + 0xb8]
push ecx
call fcn.00473310
cmp byte [esp + 0xf], bl
je 0x47fdd2
cmp word [0x4f60e8], bx
jne 0x47fe11
cmp byte [0x4f61e8], bl
jne 0x47fe11
xor eax, eax
jmp 0x47fde0
movzx ecx, word [esp + eax + 0x264]
mov word [eax + 0x4f60e8], cx
add eax, 2
cmp cx, bx
jne 0x47fde0
push ebx
push str.EncryptHeaders
lea edx, [esp + 0x18]
push edx
call fcn.0045ba60
test eax, eax
setne al
mov byte [0x4f61e8], al
push ebx
push str.OpenShared
lea ecx, [esp + 0x18]
push ecx
call fcn.0045ba60
push ebx
test eax, eax
push str.ProcessOwners
lea eax, [esp + 0x18]
setne dl
push eax
mov byte [0x4f6651], dl
call fcn.0045ba60
push 1
test eax, eax
push str.SaveStreams
lea edx, [esp + 0x18]
setne cl
push edx
mov byte [0x4f6644], cl
call fcn.0045ba60
push ebx
test eax, eax
push 0x4bf7d8
lea ecx, [esp + 0x18]
setne al
push ecx
mov byte [0x4f66d9], al
call fcn.0045ba60
push ebx
test eax, eax
push str.WaitForOther
lea eax, [esp + 0x18]
setne dl
push eax
mov byte [0x4f8023], dl
call fcn.0045ba60
push ebx
test eax, eax
push str.Shutdown
lea edx, [esp + 0x18]
setne cl
push edx
mov byte [0x4f8024], cl
call fcn.0045ba60
push ebx
test eax, eax
push str.GenerateArcName
lea ecx, [esp + 0x18]
setne al
push ecx
mov byte [0x4f6c02], al
call fcn.0045ba60
push ebx
test eax, eax
push str.VersionControl
lea eax, [esp + 0x18]
setne dl
push eax
mov byte [0x4f6656], dl
call fcn.0045ba60
push 0x80
push str.yyyymmddhhmmss
push 0x4f6657
push str.GenerateMask
lea ecx, [esp + 0x20]
push ecx
mov dword [0x4f6bfc], eax
call fcn.0045bef0
cmp byte [0x4f6657], bl
je 0x47ff3b
mov ecx, str.yyyymmddhhnnss
mov eax, 0x4f6657
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x47ff32
cmp dl, bl
je 0x47ff2e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x47ff32
add eax, 2
add ecx, 2
cmp dl, bl
jne 0x47ff12
xor eax, eax
jmp 0x47ff37
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x47ff75
mov edx, dword [str.yyyymmddhhmmss]
mov eax, dword [0x4bdd3c]
mov ecx, dword [0x4bdd40]
mov dword [0x4f6657], edx
mov dx, word [0x4bdd44]
mov dword [0x4f665b], eax
mov al, byte [0x4bdd46]
mov dword [0x4f665f], ecx
mov word [0x4f6663], dx
mov byte [0x4f6665], al
push ebx
push str.FileTimeMode
lea ecx, [esp + 0x18]
push ecx
call fcn.0045ba60
push ebx
push str.FileDays
lea edx, [esp + 0x18]
push edx
mov dword [0x50d790], eax
call fcn.0045ba60
push ebx
mov dword [0x50d794], eax
push str.FileHours
lea eax, [esp + 0x18]
push eax
call fcn.0045ba60
push ebx
push str.FileMinutes
lea ecx, [esp + 0x18]
push ecx
mov dword [0x50d798], eax
call fcn.0045ba60
mov ecx, dword [0x50d790]
mov dword [0x50d79c], eax
mov dword [0x4f66dc], ebx
mov dword [0x4f6700], ebx
cmp ecx, 1
je 0x47ffe5
cmp ecx, 2
jne 0x480038
mov edx, dword [0x50d798]
push eax
mov eax, dword [0x50d794]
push edx
push eax
lea ecx, [esp + 0x1bc]
push str._dd_dh_dm
push ecx
call fcn.004a4bc2
add esp, 0x14
cmp dword [0x50d790], 1
jne 0x480020
lea edx, [esp + 0x1b0]
push edx
mov ecx, 0x4f66dc
jmp 0x48002d
lea eax, [esp + 0x1b0]
push eax
mov ecx, 0x4f6700
call fcn.0046def0
mov ecx, dword [0x50d790]
mov esi, 4
cmp ecx, edi
je 0x480045
cmp ecx, esi
jne 0x480093
push ebx
push str.FileTimeBefore
lea ecx, [esp + 0x18]
push ecx
call fcn.0045ba60
cmp eax, ebx
je 0x48006c
cmp dword [0x50d790], edi
jne 0x48006c
push eax
mov ecx, 0x4f66dc
call fcn.0046da60
push ebx
push str.FileTimeAfter
lea edx, [esp + 0x18]
push edx
call fcn.0045ba60
cmp eax, ebx
je 0x480093
cmp dword [0x50d790], esi
jne 0x480093
push eax
mov ecx, 0x4f6700
call fcn.0046da60
push ebx
push str.ArcTimeOriginal
lea eax, [esp + 0x18]
push eax
mov dword [0x4f663c], ebx
call fcn.0045ba60
test eax, eax
je 0x4800b7
mov dword [0x4f663c], 1
push ebx
push str.ArcTimeLatest
lea ecx, [esp + 0x18]
push ecx
call fcn.0045ba60
test eax, eax
je 0x4800d5
mov dword [0x4f663c], 2
push esi
push str.mtime
lea edx, [esp + 0x18]
push edx
call fcn.0045ba60
push ebx
mov dword [0x4f6c04], eax
push str.ctime
lea eax, [esp + 0x18]
push eax
call fcn.0045ba60
push ebx
push str.atime
lea ecx, [esp + 0x18]
push ecx
mov dword [0x4f6c08], eax
call fcn.0045ba60
mov edx, dword [0x4f987c]
mov dword [0x4f6c0c], 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 [0x4f6618], eax
call fcn.0045ba60
test eax, eax
je 0x480143
mov dword [0x4f6618], edi
push ebx
push str.PathsNone
lea edx, [esp + 0x18]
push edx
call fcn.0045ba60
pop edi
test eax, eax
je 0x480162
mov dword [0x4f6618], 1
push ebx
push str.PathsAbsDrive
lea eax, [esp + 0x14]
push eax
call fcn.0045ba60
test eax, eax
je 0x48017c
mov dword [0x4f6618], esi
push ebx
push str.ImmExec
lea ecx, [esp + 0x14]
push ecx
call fcn.0045ba60
push ebx
test eax, eax
push str.SeparateArc
lea eax, [esp + 0x14]
setne dl
push eax
mov byte [0x50d7a0], dl
call fcn.0045ba60
push 0x400
push 0x4baa2e
push 0x4f67fc
test eax, eax
push str.EmailArcTo
lea edx, [esp + 0x1c]
setne cl
push edx
mov byte [0x50d7a2], cl
call fcn.0045bef0
push 0xc0
push ebx
push 0x4f673c
push str.PackDetails
lea eax, [esp + 0x1c]
push eax
call fcn.0045ba80
mov ecx, dword [esp + 0x1360]
pop esi
pop ebx
xor ecx, esp
call fcn.004a4bb3
add esp, 0x135c
ret 0xc