Function at 0x42a290
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x28
mov dword [esp + 0x14], 0
mov dword [esp], 0x1c1d1a1b
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx]
mov esi, ecx
xor esi, 0x2f66986
mov edi, eax
and edi, 2
sub edi, esi
xor edi, edx
mov edx, edi
and edx, 0xc00069d
xor edi, 0xed00f9d
lea edx, [edi + edx*2]
add edx, 0x948f7a75
mov esi, edx
xor esi, 0x74
and edx, 0xb
add edx, edx
sub edx, esi
mov byte [esp + ecx], dl
inc ecx
add eax, 2
cmp ecx, 4
jne 0x42a2b0
mov eax, dword [esp]
mov ecx, dword [0x44f228]
test ecx, ecx
je 0x42a344
xor edx, edx
mov esi, dword [0x44f22c]
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0x9abdb589
je 0x42a320
inc edx
cmp ecx, edx
jne 0x42a310
jmp 0x42a344
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0x42a344
lea eax, [esp + 0x14]
push eax
push 0
push 0
push 5
push 4
push dword [0x44f230]
push ecx
call fcn.004400f0
add esp, 0x1c
mov dword [esp], 0x5392919c
mov dword [esp + 4], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx]
lea esi, [ecx - 0x1fd9e75c]
and esi, edx
mov edi, esi
and edi, 0xffffffad
mov ebx, esi
and ebx, 2
mov ebp, esi
or ebp, 0xfd
inc ebp
imul ebp, edi
or esi, 2
imul esi, ebx
sub ebp, esi
add edx, ecx
add edx, 0xe02618a4
add edx, ebp
add dl, 0xcc
mov byte [esp + ecx], dl
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
cmp ecx, 8
jb 0x42a360
xor ebx, ebx
cmp eax, dword [esp]
jne 0x42a67d
push dword [esp + 0x14]
call fcn.0043d5c0
add esp, 4
mov ebp, eax
mov ecx, dword [esp + 0x14]
mov dword [esp], 0x1c1d1a1b
xor eax, eax
movzx edx, byte [esp + eax]
mov esi, eax
xor esi, 0x2f66986
mov edi, ebx
and edi, 2
sub edi, esi
xor edi, edx
mov edx, edi
and edx, 0xc00069d
xor edi, 0xed00f9d
lea edx, [edi + edx*2]
add edx, 0x948f7a75
mov esi, edx
xor esi, 0x74
and edx, 0xb
add edx, edx
sub edx, esi
mov byte [esp + eax], dl
inc eax
add ebx, 2
cmp eax, 4
jne 0x42a3d0
mov eax, dword [esp]
mov edx, dword [0x44f228]
test edx, edx
je 0x42a45f
xor esi, esi
mov edi, dword [0x44f22c]
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x9abdb589
je 0x42a440
inc esi
cmp edx, esi
jne 0x42a430
jmp 0x42a45f
mov edx, dword [edi + esi*8 + 4]
cmp edx, eax
je 0x42a45f
push 0
push ecx
push ebp
push 5
push 4
push dword [0x44f230]
push edx
call fcn.004400f0
add esp, 0x1c
xor ebx, ebx
test eax, eax
js 0x42a674
mov esi, dword [ebp]
mov eax, esi
mov ecx, ebp
lea edx, [ecx + eax]
mov eax, dword [ecx + eax]
dec ebx
mov ecx, edx
test eax, eax
jne 0x42a470
mov eax, ebx
neg eax
mov ecx, eax
or ecx, 0x104
mov edx, eax
and edx, 0x104
imul edx, ecx
and eax, 0xfffffefb
dec ebx
and ebx, 0x104
imul ebx, eax
add ebx, edx
jns 0x42a4ae
mov ebx, 0xffffffff
jmp 0x42a4b0
add ebx, ebx
push ebx
call fcn.0040c720
add esp, 4
mov dword [esp + 0x18], eax
mov ecx, ebp
jmp 0x42a4e0
add ecx, esi
mov word [eax], 0xa
add eax, 2
mov esi, dword [ecx]
test esi, esi
je 0x42a503
mov edx, dword [ecx + esi + 0x3c]
movzx edi, word [edx]
test di, di
je 0x42a4d0
add edx, 2
nop
mov word [eax], di
add eax, 2
movzx edi, word [edx]
add edx, 2
test di, di
jne 0x42a4f0
jmp 0x42a4d0
xor ebx, ebx
mov edi, dword [esp + 0x18]
cmp eax, edi
je 0x42a66b
mov word [eax], 0
movzx ecx, word [edi]
test cx, cx
je 0x42a573
mov eax, edi
add eax, 2
xor ebx, ebx
jmp 0x42a53c
inc ebx
movzx ecx, word [eax]
add eax, 2
test cx, cx
je 0x42a573
cmp cx, 0x7f
jbe 0x42a530
movzx edx, cx
cmp edx, 0x7ff
ja 0x42a560
mov ecx, ebx
and ecx, 2
xor ebx, 2
jmp 0x42a56e
cmp cx, 0xffff
je 0x42a531
mov ecx, ebx
and ecx, 3
xor ebx, 3
lea ebx, [ebx + ecx*2]
jmp 0x42a531
mov dword [esp + 0x20], ebp
lea esi, [ebx + 1]
push esi
call fcn.0040c720
add esp, 4
push edi
push esi
mov dword [esp + 0x24], eax
push eax
call fcn.0042a110
add esp, 0xc
mov dword [esp], 0xb4bfbd9c
mov dword [esp + 4], 0xb2a7a6b7
mov dword [esp + 8], 0xa1a279a1
mov word [esp + 0xc], 0x5bac
mov dword [esp + 0xe], 0
xor edi, edi
xor ecx, ecx
nop
nop
nop
nop
movzx ebp, byte [esp + ecx]
mov dword [esp + 0x24], ebp
mov eax, edi
and eax, 0x1a
mov edx, ecx
xor edx, 0xb897290d
add edx, eax
mov esi, edx
and esi, ebp
mov eax, esi
and eax, 0x3d
mov ebp, esi
and ebp, 2
or esi, 2
imul esi, ebp
xor ebp, 2
imul ebp, eax
add esi, ebp
mov eax, esi
not eax
and eax, edx
not edx
and edx, esi
sub edx, eax
mov eax, edx
mov esi, dword [esp + 0x24]
xor eax, esi
not edx
and edx, esi
add edx, edx
sub edx, eax
mov eax, edx
and eax, 0xe50c32be
mov esi, edx
xor esi, 0x650c32be
lea eax, [esi + eax*2]
mov esi, eax
not esi
or esi, 1
add esi, eax
and edx, 1
xor eax, 1
or eax, edx
add eax, esi
inc al
mov byte [esp + ecx], al
inc ecx
add edi, 2
cmp ecx, 0x12
jne 0x42a5c0
mov eax, esp
mov ecx, dword [esp + 0x3c]
push ebx
mov esi, dword [esp + 0x20]
push esi
push eax
call fcn.0040d3e0
mov ebx, eax
push esi
call fcn.0040c730
add esp, 4
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
push edi
call fcn.0040c730
add esp, 4
push ebp
call fcn.0043d610
add esp, 4
mov eax, ebx
add esp, 0x28
pop esi
pop edi
pop ebx
pop ebp
ret