Function at 0x42ef34
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffec
xor eax, eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x14], 2
cmp dword [0x560f68], 3
jg 0x42f1e4
call fcn.0042ecc6
jmp 0x42f240
mov edx, dword [0x560f48]
shl edx, 5
mov ecx, dword [0x560f50]
add ecx, 3
xor eax, eax
mov al, byte [ecx + 0x57d7b3]
xor edx, eax
and edx, 0x7fff
mov dword [0x560f48], edx
mov edx, dword [0x560f48]
movzx ecx, word [edx*2 + 0x59d7b4]
mov dword [ebp - 4], ecx
mov eax, dword [0x560f50]
and eax, 0x7fff
mov word [eax*2 + 0x58d7b4], cx
mov edx, dword [0x560f48]
mov ax, word [0x560f50]
mov word [edx*2 + 0x59d7b4], ax
mov edx, dword [ebp - 0x14]
mov dword [0x560f4c], edx
mov ecx, dword [0x560f54]
mov dword [ebp - 8], ecx
mov dword [ebp - 0x14], 2
cmp dword [ebp - 4], 0
je 0x42f035
mov eax, dword [0x560f4c]
cmp eax, dword [0x560f64]
jae 0x42f035
mov edx, dword [0x560f50]
sub edx, dword [ebp - 4]
cmp edx, 0x7efa
ja 0x42f035
push dword [ebp - 4]
call fcn.0042e98e
pop ecx
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [0x560f5c]
jbe 0x42f018
mov eax, dword [0x560f5c]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 3
jne 0x42f035
mov edx, dword [0x560f50]
sub edx, dword [0x560f54]
cmp edx, 0x1000
jbe 0x42f035
dec dword [ebp - 0x14]
cmp dword [0x560f4c], 3
jb 0x42f14a
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [0x560f4c]
ja 0x42f14a
mov eax, dword [0x560f4c]
sub eax, 3
push eax
mov edx, dword [0x560f50]
dec edx
sub edx, dword [ebp - 8]
push edx
call fcn.004333bf
add esp, 8
mov dword [ebp - 0xc], eax
mov ecx, dword [0x560f4c]
dec ecx
sub dword [0x560f5c], ecx
sub dword [0x560f4c], 2
inc dword [0x560f50]
mov eax, dword [0x560f48]
shl eax, 5
mov edx, dword [0x560f50]
add edx, 3
xor ecx, ecx
mov cl, byte [edx + 0x57d7b3]
xor eax, ecx
and eax, 0x7fff
mov dword [0x560f48], eax
mov eax, dword [0x560f48]
movzx edx, word [eax*2 + 0x59d7b4]
mov dword [ebp - 4], edx
mov eax, dword [0x560f50]
and eax, 0x7fff
mov word [eax*2 + 0x58d7b4], dx
mov ecx, dword [0x560f48]
mov ax, word [0x560f50]
mov word [ecx*2 + 0x59d7b4], ax
dec dword [0x560f4c]
jne 0x42f084
xor edx, edx
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x14], 2
inc dword [0x560f50]
cmp dword [ebp - 0xc], 0
je 0x42f1cf
push 0
mov ecx, dword [0x560f50]
sub ecx, dword [0x560f44]
push ecx
cmp dword [0x560f44], 0
jl 0x42f12e
mov eax, 0x57d7b4
add eax, dword [0x560f44]
jmp 0x42f130
xor eax, eax
push eax
call fcn.004331ef
add esp, 0xc
mov edx, dword [0x560f50]
mov dword [0x560f44], edx
jmp 0x42f1cf
cmp dword [ebp - 0x10], 0
je 0x42f1b5
mov ecx, dword [0x560f50]
xor eax, eax
mov al, byte [ecx + 0x57d7b3]
push eax
push 0
call fcn.004333bf
add esp, 8
test eax, eax
je 0x42f1a7
push 0
mov edx, dword [0x560f50]
sub edx, dword [0x560f44]
push edx
cmp dword [0x560f44], 0
jl 0x42f192
mov ecx, 0x57d7b4
add ecx, dword [0x560f44]
jmp 0x42f194
xor ecx, ecx
push ecx
call fcn.004331ef
add esp, 0xc
mov eax, dword [0x560f50]
mov dword [0x560f44], eax
inc dword [0x560f50]
dec dword [0x560f5c]
jmp 0x42f1cf
mov dword [ebp - 0x10], 1
inc dword [0x560f50]
dec dword [0x560f5c]
jmp 0x42f1cf
call fcn.0042eb82
cmp dword [0x560f5c], 0x106
jae 0x42f1e4
cmp dword [0x560f58], 0
je 0x42f1ca
cmp dword [0x560f5c], 0
jne 0x42ef5d
cmp dword [ebp - 0x10], 0
je 0x42f210
mov edx, dword [0x560f50]
xor eax, eax
mov al, byte [edx + 0x57d7b3]
push eax
push 0
call fcn.004333bf
add esp, 8
push 1
mov edx, dword [0x560f50]
sub edx, dword [0x560f44]
push edx
cmp dword [0x560f44], 0
jl 0x42f235
mov ecx, 0x57d7b4
add ecx, dword [0x560f44]
jmp 0x42f237
xor ecx, ecx
push ecx
call fcn.004331ef
add esp, 0xc
mov esp, ebp
pop ebp
ret