Function at 0x42f8e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x55c8e0
mov eax, dword fs:[0]
push eax
sub esp, 0x40
push ebx
push esi
push edi
mov eax, dword [0x5b5be8]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, dword [ebp + 0xc]
mov ecx, dword [ebx + 4]
mov eax, dword [ebx]
mov edi, ecx
sub edi, eax
mov dword [ebp - 0x1c], edi
je 0x42fc9f
cmp edi, 1
jne 0x42f948
mov esi, dword [ebp + 0x10]
mov eax, edi
call fcn.004098d0
mov eax, dword [ebx]
mov dl, byte [eax]
mov ecx, dword [esi]
mov byte [ecx], dl
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, edi
mov dword [ebp - 0x20], ebx
cmp eax, ecx
je 0x42f964
movzx edx, byte [eax]
imul edx, edx, 0x10003
inc eax
add ebx, edx
cmp eax, ecx
jne 0x42f951
mov dword [ebp - 0x20], ebx
mov esi, dword [ebp + 0x10]
lea eax, [edi + 8]
call fcn.004098d0
xor edx, edx
mov eax, ebx
div edi
mov eax, ebx
and eax, 0xfff0
inc eax
mov dword [ebp - 0x28], edx
xor edx, edx
div edi
shr edx, 1
sub edx, 2
mov dword [ebp - 0x14], edx
cmp edx, 1
jg 0x42f9b0
cmp edi, 4
ja 0x42f99b
lea eax, [edi - 1]
jmp 0x42f9ad
cmp edi, 0x10
ja 0x42f9a8
lea ecx, [edi - 2]
mov dword [ebp - 0x14], ecx
jmp 0x42f9b0
mov eax, edi
shr eax, 1
dec eax
mov dword [ebp - 0x14], eax
xor esi, esi
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x30], esi
mov dword [ebp - 4], esi
xor ebx, ebx
mov ecx, edi
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x40], esi
mov byte [ebp - 4], 1
mov dword [ebp - 0x18], 2
cmp edi, 2
jle 0x42fa71
nop
mov ebx, dword [ebp - 0x18]
xor edx, edx
mov eax, edi
div ebx
mov dword [ebp - 0x24], eax
test edx, edx
jne 0x42fa62
lea edx, [ebp - 0x18]
cmp edx, esi
jae 0x42fa28
mov eax, dword [ebp - 0x38]
mov ecx, edx
cmp eax, ecx
ja 0x42fa28
mov ebx, edx
sub ebx, eax
sar ebx, 2
cmp esi, dword [ebp - 0x30]
jne 0x42fa1a
lea eax, [ebp - 0x38]
call fcn.0041f230
mov esi, dword [ebp - 0x34]
mov eax, dword [ebp - 0x38]
test esi, esi
je 0x42fa23
mov edx, dword [eax + ebx*4]
mov dword [esi], edx
mov ebx, dword [ebp - 0x18]
jmp 0x42fa3e
cmp esi, dword [ebp - 0x30]
jne 0x42fa38
lea eax, [ebp - 0x38]
call fcn.0041f230
mov esi, dword [ebp - 0x34]
test esi, esi
je 0x42fa3e
mov dword [esi], ebx
mov ecx, dword [ebp - 0x24]
add esi, 4
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x24], ecx
cmp ebx, ecx
je 0x42fa62
lea eax, [ebp - 0x24]
lea edi, [ebp - 0x48]
call fcn.0041f1d0
mov ecx, dword [ebp - 0x24]
mov edi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x18]
inc ebx
mov dword [ebp - 0x18], ebx
cmp ebx, ecx
jl 0x42f9e0
mov ebx, dword [ebp - 0x44]
sub esi, dword [ebp - 0x38]
mov eax, ebx
sub eax, dword [ebp - 0x48]
sar esi, 2
sar eax, 2
add eax, esi
push eax
lea esi, [ebp - 0x38]
call fcn.0041ef80
mov eax, dword [ebp - 0x48]
mov esi, dword [ebp - 0x34]
cmp ebx, eax
je 0x42fb90
mov edx, dword [ebp - 0x30]
lea eax, [ebx - 4]
mov ebx, dword [ebp - 0x38]
mov dword [ebp - 0x18], eax
cmp eax, esi
jae 0x42fb13
cmp ebx, eax
ja 0x42fb13
mov edi, eax
sub edi, ebx
sar edi, 2
cmp esi, edx
jne 0x42fb05
mov eax, esi
sub eax, ebx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x42fb86
mov ecx, edx
sub ecx, ebx
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x42fb02
mov edx, ecx
shr edx, 1
mov esi, 0x3fffffff
sub esi, edx
cmp esi, ecx
jae 0x42fae8
xor ecx, ecx
jmp 0x42faea
add ecx, edx
cmp ecx, eax
jae 0x42faf0
mov ecx, eax
push ecx
lea esi, [ebp - 0x38]
call fcn.0041ef80
mov edx, dword [ebp - 0x30]
mov esi, dword [ebp - 0x34]
mov ebx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x18]
test esi, esi
je 0x42fb0e
mov ecx, dword [ebx + edi*4]
mov dword [esi], ecx
mov edi, dword [ebp - 0x1c]
jmp 0x42fb69
cmp esi, edx
jne 0x42fb61
mov eax, esi
sub eax, ebx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x42fb86
mov ecx, edx
sub ecx, ebx
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x42fb5e
mov edx, ecx
shr edx, 1
mov esi, 0x3fffffff
sub esi, edx
cmp esi, ecx
jae 0x42fb44
xor ecx, ecx
jmp 0x42fb46
add ecx, edx
cmp ecx, eax
jae 0x42fb4c
mov ecx, eax
push ecx
lea esi, [ebp - 0x38]
call fcn.0041ef80
mov edx, dword [ebp - 0x30]
mov esi, dword [ebp - 0x34]
mov ebx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x18]
test esi, esi
je 0x42fb69
mov ecx, dword [eax]
mov dword [esi], ecx
sub eax, 4
add esi, 4
lea ecx, [eax + 4]
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x18], eax
cmp ecx, dword [ebp - 0x48]
jne 0x42faa4
mov eax, dword [ebp - 0x48]
jmp 0x42fb93
push str.vector_T__too_long
call fcn.0054f674
mov ebx, dword [ebp - 0x38]
test eax, eax
je 0x42fba0
push eax
call fcn.004310e1
add esp, 4
cmp dword [ebp - 0x14], 1
jle 0x42fbd3
mov ecx, ebx
cmp ebx, esi
je 0x42fbd3
lea esp, [esp]
mov eax, dword [ebp - 0x14]
cdq
idiv dword [ecx]
test edx, edx
je 0x42fbc3
add ecx, 4
cmp ecx, esi
jne 0x42fbb0
jmp 0x42fbd3
cmp ecx, esi
je 0x42fbd3
mov eax, dword [ebp - 0x14]
dec eax
mov dword [ebp - 0x14], eax
cmp eax, 1
jg 0x42fba6
test ebx, ebx
je 0x42fbe0
push ebx
call fcn.004310e1
add esp, 4
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
mov bl, byte [eax]
mov cl, byte [ebp - 0x20]
mov edx, dword [ebp + 0x10]
mov edx, dword [edx]
mov eax, dword [ebp - 0x28]
xor cl, bl
mov byte [eax + edx], cl
add eax, dword [ebp - 0x14]
xor edx, edx
div edi
mov ecx, 1
mov esi, edx
cmp edi, ecx
jbe 0x42fc3f
mov edx, dword [ebp + 0xc]
mov edi, dword [edx]
mov edi, edi
mov al, byte [edi + ecx]
mov edx, dword [ebp + 0x10]
mov edx, dword [edx]
sub al, bl
xor al, byte [ebp - 0x20]
inc ecx
mov byte [esi + edx], al
mov eax, dword [ebp + 0xc]
mov edi, dword [eax]
mov eax, dword [ebp - 0x14]
lea eax, [eax + esi]
xor edx, edx
div dword [ebp - 0x1c]
mov bl, byte [edi + ecx - 1]
mov esi, edx
cmp ecx, dword [ebp - 0x1c]
jb 0x42fc10
mov edi, dword [ebp - 0x1c]
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x20]
mov esi, dword [ebp + 0x10]
mov ebx, dword [esi]
mov edx, ecx
shr edx, 0x18
xor dl, al
mov byte [edi + ebx], dl
mov ebx, dword [esi]
mov edx, ecx
shr edx, 0x10
xor dl, al
mov byte [ebx + edi + 1], dl
mov ebx, dword [esi]
mov edx, ecx
shr edx, 8
xor dl, al
mov byte [ebx + edi + 2], dl
mov dl, al
xor dl, cl
mov ecx, dword [esi]
mov byte [ecx + edi + 3], dl
mov ecx, dword [esi]
mov edx, eax
shr edx, 0x18
mov byte [ecx + edi + 4], dl
mov ecx, dword [esi]
mov edx, eax
shr edx, 0x10
mov byte [ecx + edi + 5], dl
mov ecx, dword [esi]
mov edx, eax
shr edx, 8
mov byte [ecx + edi + 6], dl
mov edx, dword [esi]
mov byte [edx + edi + 7], al
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret