Function at 0x40bd63
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
push ebx
push 0x14
mov ebx, ecx
mov ecx, dword [ebp + 8]
push str.info
mov byte [ebp - 1], 0
call fcn.00401c1a
test eax, eax
jne 0x40bd8a
xor al, al
jmp 0x40c843
cmp byte [ebp + 0xc], 0
push esi
push edi
push 5
pop ecx
je 0x40bda1
lea edi, [ebx + 0x15c]
mov esi, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x40bdb3
mov edi, eax
lea esi, [ebx + 0x15c]
xor eax, eax
repe cmpsd dword [esi], dword es:[edi]
je 0x40bdb3
mov byte [ebp - 1], 1
mov edi, dword [ebp + 8]
xor esi, esi
push esi
push esi
push str.path
mov ecx, edi
call fcn.004018ba
mov dword [ebp - 0x10], eax
cmp eax, esi
jne 0x40bdd5
mov eax, 0x4652b0
mov dword [ebp - 0x10], eax
mov ecx, eax
call fcn.004350be
cmp byte [ebp + 0xc], 0
mov ecx, dword [ebx]
mov dword [ebp - 0x10], eax
push eax
je 0x40bdef
call fcn.0041781e
jmp 0x40bdf4
call fcn.00417a91
lea ecx, [ebp - 0x10]
call fcn.0042d71a
push esi
push esi
push str.uploaded
mov ecx, edi
call fcn.00401c5d
push esi
push esi
push str.downloaded
mov ecx, edi
mov dword [ebx + 0xcc], eax
mov dword [ebx + 0xd0], edx
call fcn.00401c5d
push esi
push esi
push str.corrupt
mov ecx, edi
mov dword [ebx + 0xd4], eax
mov dword [ebx + 0xd8], edx
call fcn.00401c5d
push esi
push str.trackermode
mov ecx, edi
mov dword [ebx + 0xdc], eax
mov dword [ebx + 0xe0], edx
call fcn.00401c3f
push esi
push str.moved
mov ecx, edi
mov byte [ebx + 0x42], al
call fcn.00401c3f
cmp eax, esi
setne al
add al, al
xor al, byte [ebx + 0x3e]
push 1
and al, 2
xor byte [ebx + 0x3e], al
push str.prio2
mov ecx, edi
call fcn.00401c3f
push esi
push str.cached
mov ecx, edi
mov byte [ebx + 0x43], al
call fcn.00401c3f
mov cl, byte [ebx + 0x3e]
cmp eax, esi
setne al
shl al, 7
and cl, 0x7f
or al, cl
mov byte [ebx + 0x3e], al
movzx eax, al
shr eax, 7
push eax
push str.scrambled
mov ecx, edi
call fcn.00401c3f
cmp eax, esi
setne al
shl al, 3
xor al, byte [ebx + 0x3f]
push 1
and al, 8
xor byte [ebx + 0x3f], al
push str.visible
mov ecx, edi
call fcn.00401c3f
cmp eax, esi
setne al
xor al, byte [ebx + 0x3f]
push esi
push esi
and al, 1
xor byte [ebx + 0x3f], al
push str.caption
mov ecx, edi
call fcn.004018ba
cmp eax, esi
je 0x40bf03
mov ecx, dword [ebx]
add ecx, 0x1c
mov edx, eax
call fcn.0042d1d5
push esi
push str.feed_url
mov ecx, edi
call fcn.00401c03
cmp eax, esi
je 0x40bf21
mov ecx, eax
call fcn.0043508c
mov dword [ebx + 0x1c0], eax
push esi
push str.download_url
mov ecx, edi
call fcn.00401c03
cmp eax, esi
je 0x40bf3f
mov ecx, eax
call fcn.0043508c
mov dword [ebx + 0x1bc], eax
push esi
push esi
push str.rss_name
mov ecx, edi
call fcn.004018ba
cmp eax, esi
je 0x40bf5e
mov ecx, eax
call fcn.004350be
mov dword [ebx + 0x1c4], eax
push esi
push str.season
mov ecx, edi
call fcn.00401c3f
push esi
push str.episode
mov ecx, edi
mov dword [ebx + 0x1c8], eax
call fcn.00401c3f
push esi
push str.episode_to
mov ecx, edi
mov dword [ebx + 0x1cc], eax
call fcn.00401c3f
push esi
push str.quality
mov ecx, edi
mov dword [ebx + 0x1d0], eax
call fcn.00401c3f
push esi
push str.codec
mov ecx, edi
mov dword [ebx + 0x1d4], eax
call fcn.00401c3f
push esi
push str.upspeed
mov ecx, edi
mov dword [ebx + 0x1d8], eax
call fcn.00401c3f
mov dword [ebx + 0x17c], eax
mov eax, dword [ebx + 0x178]
push esi
push str.downspeed
mov ecx, edi
mov dword [ebx + 0x180], eax
call fcn.00401c3f
push esi
push str.runtime
mov ecx, edi
mov dword [ebx + 0x178], eax
mov dword [ebx + 0x180], eax
call fcn.00401c3f
push esi
push 0x461a8c
mov ecx, edi
mov dword [ebx + 0x170], eax
call fcn.00401c3f
mov dword [ebx + 0x1e4], eax
movzx eax, byte [ebx + 0x41]
and eax, 8
push eax
push 0x461ae8
mov ecx, edi
call fcn.00401c3f
mov cl, byte [ebx + 0x41]
and cl, 0xf7
or al, cl
push 1
push 0x461aec
mov ecx, edi
mov byte [ebx + 0x41], al
call fcn.00401c3f
mov cl, byte [ebx + 0x41]
and cl, 0xa
or al, cl
push esi
push str.seedtime
mov ecx, edi
mov byte [ebx + 0x41], al
call fcn.00401c3f
push esi
push 0x461b0c
mov ecx, edi
mov dword [ebx + 0x174], eax
call fcn.00401c3f
cmp eax, esi
setne al
shl al, 5
xor al, byte [ebx + 0x3e]
and al, 0x20
xor byte [ebx + 0x3e], al
push esi
push str.superseed_cur_piece
mov ecx, edi
call fcn.00401c3f
push 0xffffffffffffffff
push str.order
mov ecx, edi
mov dword [ebx + 0x128], eax
call fcn.00401c3f
mov dword [ebx + 0x4c], eax
push dword [0x47a1a4]
mov ecx, edi
push str.wanted_seedtime
call fcn.00401c3f
mov dword [ebx + 0x1dc], eax
push dword [0x47a1a0]
mov ecx, edi
push str.wanted_ratio
call fcn.00401c3f
push esi
push str.override_seedsettings
mov ecx, edi
mov dword [ebx + 0x1e0], eax
call fcn.00401c3f
shl al, 6
xor al, byte [ebx + 0x3e]
push esi
and al, 0x40
xor byte [ebx + 0x3e], al
push str.added_on
mov ecx, edi
call fcn.00401c3f
cmp eax, esi
je 0x40c106
mov dword [ebx + 0x140], eax
push esi
push str.completed_on
mov ecx, edi
call fcn.00401c3f
push esi
push str.last_active
mov ecx, edi
mov dword [ebx + 0x144], eax
call fcn.00401c3f
push esi
push esi
push str.waste
mov ecx, edi
mov dword [ebx + 0x148], eax
call fcn.00401c5d
push esi
push str.hashfails
mov ecx, edi
mov dword [ebx + 0x12c], eax
mov dword [ebx + 0x130], edx
call fcn.00401c3f
push str.use_utp
mov ecx, edi
mov dword [ebx + 0x138], eax
call fcn.0040188d
test eax, eax
je 0x40c183
push esi
push str.use_utp
mov ecx, edi
call fcn.00401c3f
cmp eax, esi
setne al
xor al, byte [ebx + 0x40]
and al, 1
xor byte [ebx + 0x40], al
push esi
push esi
push 0x461a00
mov ecx, edi
call fcn.004018ba
lea ecx, [ebx + 0x254]
mov edx, eax
call fcn.0042d243
push esi
push esi
push str.run_program
mov ecx, edi
call fcn.004018ba
lea ecx, [ebx + 0x260]
mov edx, eax
call fcn.0042d243
lea eax, [ebp - 0x20]
push eax
push 0x4619a8
mov ecx, edi
call fcn.00401c03
cmp eax, esi
je 0x40c1e2
push dword [ebp - 0x20]
mov ecx, dword [ebx]
push eax
call fcn.00416c60
test al, al
jne 0x40c1e2
and byte [ebx + 0x38], 0xf7
jmp 0x40c202
cmp byte [ebp - 1], 0
je 0x40c202
lea ecx, [ebx + 0x250]
mov edx, str.Torrent_file_changed
call fcn.0042d1d5
mov al, byte [ebx + 0x38]
and al, 0xf7
or al, 0x10
mov byte [ebx + 0x38], al
mov eax, dword [ebx]
push dword [eax + 8]
mov ecx, edi
push str.prio
mov dword [ebp + 8], eax
call fcn.00401c1a
mov dword [ebp - 0x1c], eax
cmp eax, esi
je 0x40c272
mov eax, dword [ebp + 8]
mov dword [ebp - 8], esi
cmp dword [eax + 8], esi
je 0x40c272
mov dword [ebp - 0xc], esi
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x1c]
add eax, ecx
mov dword [ebp - 0x18], eax
movzx eax, byte [eax]
shr eax, 2
and eax, 3
push eax
push ecx
mov ecx, ebx
call fcn.00403545
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0xc]
mov eax, dword [ecx]
add dword [ebp - 0xc], 0x24
lea eax, [eax + edx + 0x1d]
mov edx, dword [ebp - 0x18]
mov dl, byte [edx]
shr dl, 5
xor dl, byte [eax]
and dl, 4
xor byte [eax], dl
inc dword [ebp - 8]
mov eax, dword [ebp - 8]
cmp eax, dword [ecx + 8]
jne 0x40c22b
push str.targets
mov ecx, edi
call fcn.00401beb
mov dword [ebp - 0x14], eax
cmp eax, esi
je 0x40c2f3
mov dword [ebp - 8], esi
cmp dword [eax + 4], esi
jbe 0x40c2f3
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 8]
cmp ecx, dword [eax + 8]
jae 0x40c2f3
push ecx
mov ecx, dword [ebp - 0x14]
call fcn.00401808
mov dword [ebp - 0xc], eax
cmp eax, esi
je 0x40c2e5
cmp dword [eax + 4], 2
jne 0x40c2e5
push esi
push esi
mov ecx, eax
call fcn.00401871
mov ecx, dword [ebp + 8]
cmp eax, dword [ecx + 8]
jae 0x40c2e5
imul eax, eax, 0x24
add eax, dword [ecx]
mov ecx, dword [ebp - 0xc]
push esi
push esi
push 1
mov dword [ebp - 0x1c], eax
call fcn.00401835
mov ecx, eax
call fcn.004350be
mov ecx, dword [ebx]
push eax
push dword [ebp - 0x1c]
call fcn.00417838
inc dword [ebp - 8]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 8]
cmp ecx, dword [eax + 4]
jb 0x40c28d
test byte [ebx + 0x41], 2
jne 0x40c415
push esi
push 0x4619c0
mov ecx, edi
call fcn.00401c3f
lea eax, [ebp + 8]
push eax
push str.peers
mov ecx, edi
mov dword [ebp + 8], esi
call fcn.00401c03
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 8]
push 6
xor edx, edx
pop ecx
div ecx
cmp edx, esi
jne 0x40c390
mov dword [ebp + 8], eax
mov dword [ebp - 0xc], esi
cmp eax, esi
jbe 0x40c390
mov eax, dword [ebp - 0x14]
movzx ecx, word [eax + 4]
push ecx
push dword [eax]
lea ecx, [ebp - 0x38]
call fcn.0042c9fc
lea ecx, [ebp - 0x38]
call fcn.00405ccd
test al, al
jne 0x40c381
mov eax, 0xffff
cmp word [ebp - 0x28], ax
jne 0x40c367
xor eax, eax
mov word [ebp - 0x28], ax
push esi
push 0x42284d
lea eax, [ebp - 0x38]
push eax
push esi
push esi
mov ecx, ebx
call fcn.00406c6a
add dword [eax + 0x46], 0xfffff8f8
inc dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
add dword [ebp - 0x14], 6
cmp eax, dword [ebp + 8]
jb 0x40c338
lea eax, [ebp + 8]
push eax
push str.peers6
mov ecx, edi
mov dword [ebp + 8], esi
call fcn.00401c03
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 8]
push 0x12
xor edx, edx
pop ecx
div ecx
cmp edx, esi
jne 0x40c415
mov dword [ebp + 8], eax
mov dword [ebp - 0xc], esi
cmp eax, esi
jbe 0x40c415
mov eax, dword [ebp - 0x14]
movzx ecx, word [eax + 0x10]
push ecx
push eax
lea ecx, [ebp - 0x38]
call fcn.0042ca31
lea ecx, [ebp - 0x38]
call fcn.00405ccd
test al, al
jne 0x40c406
mov eax, 0xffff
cmp word [ebp - 0x28], ax
jne 0x40c3ec
xor eax, eax
mov word [ebp - 0x28], ax
push esi
push 0x42284d
lea eax, [ebp - 0x38]
push eax
push esi
push esi
mov ecx, ebx
call fcn.00406c6a
add dword [eax + 0x46], 0xfffff8f8
inc dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
add dword [ebp - 0x14], 0x12
cmp eax, dword [ebp + 8]
jb 0x40c3be
mov eax, dword [ebx + 0xc]
add eax, 7
shr eax, 3
push eax
push str.have
mov ecx, edi
call fcn.00401c1a
mov dword [ebp - 0x1c], eax
cmp eax, esi
je 0x40c520
xor ecx, ecx
cmp dword [ebx + 0xc], esi
jmp 0x40c499
mov edx, dword [ebp - 0x1c]
mov eax, ecx
shr eax, 3
mov dl, byte [eax + edx]
and ecx, 7
shr dl, cl
mov dword [ebp - 0x18], ecx
test dl, 1
je 0x40c492
mov ecx, dword [ebx + 0x20]
push dword [ebp + 8]
add ecx, eax
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x18]
mov dl, 1
shl dl, cl
mov ecx, dword [ebp - 0x14]
or byte [ecx], dl
mov ecx, dword [ebx + 0x24]
add ecx, eax
not dl
and byte [ecx], dl
mov ecx, dword [ebx + 0x28]
add eax, ecx
and byte [eax], dl
mov ecx, dword [ebx]
inc dword [ebx + 0x10]
call fcn.00416b9d
add dword [ebx + 0xe4], eax
adc dword [ebx + 0xe8], esi
mov ecx, dword [ebp + 8]
inc ecx
cmp ecx, dword [ebx + 0xc]
mov dword [ebp + 8], ecx
jne 0x40c43d
push esi
push str.valid
mov ecx, edi
call fcn.00401c3f
test eax, eax
je 0x40c4b5
or byte [ebx + 0x38], 8
jmp 0x40c520
mov eax, dword [ebx]
cmp dword [eax + 0x48], esi
jne 0x40c520
mov eax, dword [eax + 8]
mov dword [ebp - 0xc], eax
add eax, 7
shr eax, 3
push eax
push str.resume_valid
mov ecx, edi
mov dword [ebp - 0x1c], eax
call fcn.00401c1a
cmp eax, esi
je 0x40c520
or byte [ebx + 0x38], 8
mov cl, byte [ebx + 0x38]
xor ecx, ecx
cmp dword [ebp - 0xc], esi
jmp 0x40c503
mov edx, ecx
shr edx, 3
mov dl, byte [edx + eax]
and cl, 7
shr dl, cl
test dl, 1
je 0x40c50a
mov ecx, dword [ebp - 0x14]
inc ecx
cmp ecx, dword [ebp - 0xc]
mov dword [ebp - 0x14], ecx
jne 0x40c4ea
jmp 0x40c520
mov cl, byte [ebx + 0x38]
mov edx, dword [ebp - 0x1c]
and cl, 0xf7
mov byte [ebx + 0x38], cl
mov ecx, eax
call fcn.0042d0ca
mov dword [ebx + 0x2c], eax
push 0x4619e8
mov ecx, edi
call fcn.00401beb
mov dword [ebp + 8], eax
cmp eax, esi
je 0x40c580
jmp 0x40c541
mov eax, dword [ebx + 0x7c]
push dword [eax]
mov ecx, ebx
call fcn.0040471b
cmp dword [ebx + 0x84], esi
jne 0x40c535
mov eax, dword [ebp + 8]
mov dword [ebp - 8], esi
cmp dword [eax + 4], esi
je 0x40c580
mov ecx, dword [ebp + 8]
push esi
push esi
push dword [ebp - 8]
call fcn.00401835
cmp eax, esi
je 0x40c71c
push esi
push eax
mov ecx, ebx
call fcn.0040768c
inc dword [ebp - 8]
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 8]
cmp ecx, dword [eax + 4]
jne 0x40c554
push str.webseeds
mov ecx, edi
call fcn.00401beb
mov dword [ebp + 8], eax
cmp eax, esi
je 0x40c653
test byte [ebx + 0x3e], 0x80
jne 0x40c653
mov ecx, ebx
call fcn.00415fe8
mov dword [ebp - 0xc], esi
cmp dword [ebx + 0x90], esi
jbe 0x40c5d2
mov eax, dword [ebx + 0x88]
mov ecx, dword [ebp - 0xc]
mov ecx, dword [eax + ecx*4]
call fcn.0043492c
inc dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebx + 0x90]
jb 0x40c5b3
mov ecx, dword [ebx + 0x88]
call fcn.0043492c
lea eax, [ebx + 0x88]
mov dword [eax], esi
mov dword [eax + 8], esi
mov dword [eax + 4], esi
mov eax, dword [ebp + 8]
mov dword [ebp - 0xc], esi
cmp dword [eax + 4], esi
je 0x40c64f
mov ecx, dword [ebp + 8]
push esi
push esi
push dword [ebp - 0xc]
call fcn.00401835
cmp eax, esi
je 0x40c641
mov ecx, eax
call fcn.0042d282
mov dword [ebp - 0x1c], eax
mov eax, dword [ebx + 0x90]
cmp eax, dword [ebx + 0x8c]
jb 0x40c62a
lea ecx, [ebx + 0x88]
call fcn.0040fd2b
lea eax, [ebx + 0x88]
mov ecx, dword [eax + 8]
lea edx, [ecx + 1]
mov dword [eax + 8], edx
mov eax, dword [eax]
mov edx, dword [ebp - 0x1c]
mov dword [eax + ecx*4], edx
inc dword [ebp - 0xc]
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
cmp ecx, dword [eax + 4]
jne 0x40c5f6
and byte [ebx + 0x3f], 0xfd
push dword [ebx + 0x18]
mov ecx, edi
push str.blocksize
call fcn.00401c3f
push str.blocks
mov ecx, edi
mov dword [ebx + 0x18], eax
call fcn.00401beb
mov dword [ebp - 0x18], eax
mov dword [ebp - 8], esi
cmp eax, esi
je 0x40c7d0
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x18]
cmp eax, dword [ecx + 4]
je 0x40c7d0
lea eax, [ebp - 0x14]
push eax
push dword [ebp - 8]
mov dword [ebp - 0x14], esi
call fcn.0040181e
cmp dword [ebp - 0x14], 4
mov dword [ebp - 0x1c], eax
jbe 0x40c7c8
mov eax, dword [eax]
cmp eax, dword [ebx + 0xc]
jae 0x40c7c8
mov edx, dword [ebx + 0x20]
mov ecx, eax
shr ecx, 3
mov dl, byte [ecx + edx]
mov dword [ebp + 8], eax
and dword [ebp + 8], 7
mov dword [ebp - 0x24], ecx
mov cl, byte [ebp + 8]
shr dl, cl
test dl, 1
jne 0x40c7c8
push eax
mov ecx, ebx
call fcn.0040665d
mov ecx, dword [ebp - 0x24]
mov byte [eax + 0x20], 3
mov dword [ebp - 0xc], eax
mov eax, dword [ebx + 0x28]
lea edx, [eax + ecx]
mov ecx, dword [ebp + 8]
mov al, 1
shl al, cl
not al
and byte [edx], al
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 4]
lea ecx, [eax + 7]
shr ecx, 3
add ecx, 4
cmp dword [ebp - 0x14], ecx
jne 0x40c7c8
xor ecx, ecx
cmp eax, esi
jmp 0x40c7c3
push dword [ebp - 8]
mov ecx, dword [ebp + 8]
call fcn.00401808
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], esi
mov dword [ebp - 0xc], esi
cmp eax, esi
je 0x40c572
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
cmp ecx, dword [eax + 4]
je 0x40c572
push esi
push esi
push ecx
mov ecx, eax
call fcn.00401835
cmp eax, esi
je 0x40c763
push dword [ebp - 0x18]
mov ecx, ebx
push eax
call fcn.0040768c
mov dword [ebp - 0x18], eax
inc dword [ebp - 0xc]
jmp 0x40c738
mov edx, dword [ebp - 0x1c]
mov eax, ecx
shr eax, 3
mov al, byte [eax + edx + 4]
and cl, 7
shr al, cl
test al, 1
je 0x40c7b9
mov eax, dword [ebp - 0xc]
cmp dword [eax + 0xc], 1
je 0x40c7b9
mov edx, dword [eax + 0x24]
mov ecx, dword [ebp + 8]
mov dword [edx + ecx*4], 0x482188
mov edx, dword [eax + 0x1c]
mov byte [ecx + edx], 9
dec dword [eax + 0xc]
dec dword [eax + 8]
dec dword [eax + 0x14]
push ecx
push dword [eax]
mov ecx, ebx
call fcn.00402837
add dword [ebx + 0xe4], eax
adc dword [ebx + 0xe8], esi
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0xc]
inc ecx
cmp ecx, dword [eax + 4]
mov dword [ebp + 8], ecx
jne 0x40c768
inc dword [ebp - 8]
jmp 0x40c67f
cmp byte [ebp + 0xc], 0
jne 0x40c83f
push esi
push str.started
mov ecx, edi
call fcn.00401c3f
test byte [ebx + 0x3e], 0x80
mov edi, eax
je 0x40c7f3
push esi
mov ecx, ebx
call fcn.0040a780
mov al, byte [ebx + 0x38]
test al, 0x10
jne 0x40c836
cmp edi, 1
jne 0x40c80e
test byte [ebx + 0x3e], 0x80
mov ecx, ebx
jne 0x40c815
call fcn.0040bc3b
jmp 0x40c83f
cmp edi, 2
jne 0x40c81c
mov ecx, ebx
call fcn.0040bcda
jmp 0x40c83f
cmp edi, 3
jne 0x40c836
or al, 0x10
lea ecx, [ebx + 0x250]
mov edx, str.Invalid_download_state__try_resuming
mov byte [ebx + 0x38], al
call fcn.0042d1d5
push 1
mov ecx, ebx
call fcn.0040a170
pop edi
mov al, 1
pop esi
pop ebx
leave
ret 8