Function at 0x2fe3a0
Capabilities:
Encode data using xor

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x30
push ebx
mov ebx, ecx
mov eax, dword [ebx + 0x80]
push esi
push edi
mov edi, dword [eax + 0x80]
movzx eax, word [edi + 0x42a]
mov edx, dword [edi + 0x434]
mov ecx, eax
shr ecx, 5
and ecx, 3
and eax, 0x1f
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], edi
cmp edx, 0xffffffff
jne 0x2fe3fb
cmp ax, 7
jne 0x2fe3fb
test cx, cx
jne 0x2fe3ef
mov eax, dword [edi + 0x42c]
jmp 0x2fe3f5
mov eax, dword [edi + 0x430]
xor esi, esi
xor edx, edx
jmp 0x2fe427
lea edx, [ebp - 0x20]
push edx
lea edx, [ebp - 0x24]
push edx
lea edx, [ebp - 0x28]
push edx
push eax
push ecx
mov ecx, ebx
call fcn.002fd188
mov ecx, dword [edi + 0x434]
mov esi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
mov edx, ecx
not edx
or edx, dword [ebp - 0x24]
and esi, ecx
and eax, ecx
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 4]
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0xc]
mov dword [ebp - 8], ecx
movzx ecx, word [edi + 0x454]
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebx + 0x80]
mov edi, dword [ecx + 0x4e8]
mov ecx, dword [ecx + 0x500]
mov ebx, dword [ebp + 8]
mov ebx, dword [ebx]
add ecx, edi
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x18]
imul ecx, dword [ebp - 0x28]
add ecx, ebx
lea ecx, [edi + ecx*4]
mov dword [ebp - 4], ecx
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 8]
sub ecx, ebx
mov edi, ecx
shl edi, 2
mov dword [ebp - 0x1c], edi
cmp edi, 0x20
jae 0x2fe490
and dword [ebp - 0x10], 0
and dword [ebp - 0x14], 0
mov dword [ebp - 0xc], ecx
jmp 0x2fe4ad
mov edi, dword [ebp - 4]
neg edi
shr edi, 2
and edi, 7
sub ecx, edi
mov dword [ebp - 0x14], ecx
and ecx, 7
shr dword [ebp - 0x14], 3
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x10], ecx
test edx, edx
jne 0x2fe52d
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 4]
cmp ecx, dword [ebp - 8]
mov edi, ecx
jge 0x2fea2b
mov ebx, dword [ebp - 0x18]
shl ebx, 2
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x1c]
add dword [ebp - 4], ebx
add edx, ecx
cmp edx, dword [ebp - 0x20]
ja 0x2fea2b
mov esi, dword [ebp - 0xc]
test esi, esi
jbe 0x2fe4ed
mov edx, ecx
add ecx, 4
dec esi
mov dword [edx], eax
jne 0x2fe4e3
mov edx, dword [ebp - 0x14]
test edx, edx
jbe 0x2fe511
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], eax
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], eax
mov dword [ecx + 0x18], eax
mov dword [ecx + 0x1c], eax
add ecx, 0x20
dec edx
jne 0x2fe4f4
mov esi, dword [ebp - 0x10]
test esi, esi
jbe 0x2fe522
mov edx, ecx
add ecx, 4
dec esi
mov dword [edx], eax
jne 0x2fe518
inc edi
cmp edi, dword [ebp - 8]
jl 0x2fe4c8
jmp 0x2fea2b
test esi, esi
jne 0x2fe714
test eax, eax
jne 0x2fe5c2
cmp edx, 0xffffffff
je 0x2fea2b
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
cmp eax, dword [ebp - 8]
mov edi, eax
jge 0x2fea2b
mov ebx, dword [ebp - 0x18]
shl ebx, 2
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x1c]
add dword [ebp - 4], ebx
add ecx, eax
cmp ecx, dword [ebp - 0x20]
ja 0x2fea2b
mov esi, dword [ebp - 0xc]
test esi, esi
jbe 0x2fe582
mov ecx, eax
and dword [ecx], edx
add eax, 4
dec esi
jne 0x2fe578
mov ecx, dword [ebp - 0x14]
test ecx, ecx
jbe 0x2fe5a6
and dword [eax], edx
and dword [eax + 4], edx
and dword [eax + 8], edx
and dword [eax + 0xc], edx
and dword [eax + 0x10], edx
and dword [eax + 0x14], edx
and dword [eax + 0x18], edx
and dword [eax + 0x1c], edx
add eax, 0x20
dec ecx
jne 0x2fe589
mov esi, dword [ebp - 0x10]
test esi, esi
jbe 0x2fe5b7
mov ecx, eax
and dword [ecx], edx
add eax, 4
dec esi
jne 0x2fe5ad
inc edi
cmp edi, dword [ebp - 8]
jl 0x2fe55d
jmp 0x2fea2b
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 4]
cmp edx, 0xffffffff
jne 0x2fe647
cmp ecx, dword [ebp - 8]
mov edi, ecx
jge 0x2fea2b
mov ebx, dword [ebp - 0x18]
shl ebx, 2
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x1c]
add dword [ebp - 4], ebx
add edx, ecx
cmp edx, dword [ebp - 0x20]
ja 0x2fea2b
cmp dword [ebp - 0xc], 0
jbe 0x2fe605
mov esi, dword [ebp - 0xc]
mov edx, ecx
or dword [edx], eax
add ecx, 4
dec esi
jne 0x2fe5fb
mov edx, dword [ebp - 0x14]
test edx, edx
jbe 0x2fe629
or dword [ecx], eax
or dword [ecx + 4], eax
or dword [ecx + 8], eax
or dword [ecx + 0xc], eax
or dword [ecx + 0x10], eax
or dword [ecx + 0x14], eax
or dword [ecx + 0x18], eax
or dword [ecx + 0x1c], eax
add ecx, 0x20
dec edx
jne 0x2fe60c
cmp dword [ebp - 0x10], 0
jbe 0x2fe63c
mov esi, dword [ebp - 0x10]
mov edx, ecx
or dword [edx], eax
add ecx, 4
dec esi
jne 0x2fe632
inc edi
cmp edi, dword [ebp - 8]
jl 0x2fe5de
jmp 0x2fea2b
cmp ecx, dword [ebp - 8]
mov dword [ebp - 0x24], ecx
jge 0x2fea2b
mov ecx, dword [ebp - 0x18]
shl ecx, 2
mov dword [ebp - 0x18], ecx
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebp - 4]
add dword [ebp - 4], esi
mov esi, dword [ebp - 0x1c]
add esi, ecx
cmp esi, dword [ebp - 0x20]
ja 0x2fea2b
cmp dword [ebp - 0xc], 0
jbe 0x2fe68c
mov ebx, dword [ebp - 0xc]
mov esi, ecx
mov edi, dword [esi]
and edi, edx
or edi, eax
add ecx, 4
dec ebx
mov dword [esi], edi
jne 0x2fe67c
mov esi, dword [ebp - 0x14]
test esi, esi
jbe 0x2fe6e7
mov edi, dword [ecx]
and edi, edx
or edi, eax
mov dword [ecx], edi
mov edi, dword [ecx + 4]
and edi, edx
or edi, eax
mov dword [ecx + 4], edi
mov edi, edx
and edi, dword [ecx + 8]
add ecx, 0x20
or edi, eax
mov dword [ecx - 0x18], edi
mov edi, dword [ecx - 0x14]
and edi, edx
or edi, eax
mov dword [ecx - 0x14], edi
mov edi, edx
and edi, dword [ecx - 0x10]
or edi, eax
mov dword [ecx - 0x10], edi
mov edi, dword [ecx - 0xc]
and edi, edx
or edi, eax
mov dword [ecx - 0xc], edi
mov edi, edx
and edi, dword [ecx - 8]
or edi, eax
mov dword [ecx - 8], edi
mov edi, dword [ecx - 4]
and edi, edx
or edi, eax
dec esi
mov dword [ecx - 4], edi
jne 0x2fe693
cmp dword [ebp - 0x10], 0
jbe 0x2fe700
mov ebx, dword [ebp - 0x10]
mov esi, ecx
mov edi, dword [esi]
and edi, edx
or edi, eax
add ecx, 4
dec ebx
mov dword [esi], edi
jne 0x2fe6f0
inc dword [ebp - 0x24]
mov ecx, dword [ebp - 0x24]
cmp ecx, dword [ebp - 8]
jl 0x2fe65c
jmp 0x2fea2b
test eax, eax
jne 0x2fe86e
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
cmp edx, 0xffffffff
jne 0x2fe7a1
cmp eax, dword [ebp - 8]
mov edi, eax
jge 0x2fea2b
mov ebx, dword [ebp - 0x18]
shl ebx, 2
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x1c]
add dword [ebp - 4], ebx
add ecx, eax
cmp ecx, dword [ebp - 0x20]
ja 0x2fea2b
cmp dword [ebp - 0xc], 0
jbe 0x2fe75f
mov edx, dword [ebp - 0xc]
mov ecx, eax
xor dword [ecx], esi
add eax, 4
dec edx
jne 0x2fe755
mov ecx, dword [ebp - 0x14]
test ecx, ecx
jbe 0x2fe783
xor dword [eax], esi
xor dword [eax + 4], esi
xor dword [eax + 8], esi
xor dword [eax + 0xc], esi
xor dword [eax + 0x10], esi
xor dword [eax + 0x14], esi
xor dword [eax + 0x18], esi
xor dword [eax + 0x1c], esi
add eax, 0x20
dec ecx
jne 0x2fe766
cmp dword [ebp - 0x10], 0
jbe 0x2fe796
mov edx, dword [ebp - 0x10]
mov ecx, eax
xor dword [ecx], esi
add eax, 4
dec edx
jne 0x2fe78c
inc edi
cmp edi, dword [ebp - 8]
jl 0x2fe738
jmp 0x2fea2b
cmp eax, dword [ebp - 8]
mov dword [ebp - 0x24], eax
jge 0x2fea2b
mov eax, dword [ebp - 0x18]
shl eax, 2
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
add dword [ebp - 4], ecx
mov ecx, dword [ebp - 0x1c]
add ecx, eax
cmp ecx, dword [ebp - 0x20]
ja 0x2fea2b
cmp dword [ebp - 0xc], 0
jbe 0x2fe7e6
mov ebx, dword [ebp - 0xc]
mov ecx, eax
mov edi, dword [ecx]
xor edi, esi
and edi, edx
add eax, 4
dec ebx
mov dword [ecx], edi
jne 0x2fe7d6
mov ecx, dword [ebp - 0x14]
test ecx, ecx
jbe 0x2fe841
mov edi, dword [eax]
xor edi, esi
and edi, edx
mov dword [eax], edi
mov edi, dword [eax + 4]
xor edi, esi
and edi, edx
mov dword [eax + 4], edi
mov edi, dword [eax + 8]
xor edi, esi
and edi, edx
mov dword [eax + 8], edi
mov edi, dword [eax + 0xc]
xor edi, esi
and edi, edx
mov dword [eax + 0xc], edi
mov edi, dword [eax + 0x10]
xor edi, esi
and edi, edx
mov dword [eax + 0x10], edi
mov edi, dword [eax + 0x14]
xor edi, esi
and edi, edx
mov dword [eax + 0x14], edi
mov edi, dword [eax + 0x18]
xor edi, esi
and edi, edx
mov dword [eax + 0x18], edi
mov edi, dword [eax + 0x1c]
xor edi, esi
and edi, edx
mov dword [eax + 0x1c], edi
add eax, 0x20
dec ecx
jne 0x2fe7ed
cmp dword [ebp - 0x10], 0
jbe 0x2fe85a
mov ebx, dword [ebp - 0x10]
mov ecx, eax
mov edi, dword [ecx]
xor edi, esi
and edi, edx
add eax, 4
dec ebx
mov dword [ecx], edi
jne 0x2fe84a
inc dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 8]
jl 0x2fe7b6
jmp 0x2fea2b
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 4]
mov dword [ebp - 0x24], ecx
cmp edx, 0xffffffff
jne 0x2fe94a
cmp ecx, dword [ebp - 8]
jge 0x2fea2b
mov ecx, dword [ebp - 0x18]
shl ecx, 2
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 4]
add dword [ebp - 4], edx
mov edx, dword [ebp - 0x1c]
add edx, ecx
cmp edx, dword [ebp - 0x20]
ja 0x2fea2b
cmp dword [ebp - 0xc], 0
jbe 0x2fe8c2
mov ebx, dword [ebp - 0xc]
mov edx, ecx
mov edi, dword [edx]
xor edi, esi
or edi, eax
add ecx, 4
dec ebx
mov dword [edx], edi
jne 0x2fe8b2
mov edx, dword [ebp - 0x14]
test edx, edx
jbe 0x2fe91d
mov edi, dword [ecx]
xor edi, esi
or edi, eax
mov dword [ecx], edi
mov edi, dword [ecx + 4]
xor edi, esi
or edi, eax
mov dword [ecx + 4], edi
mov edi, dword [ecx + 8]
xor edi, esi
or edi, eax
mov dword [ecx + 8], edi
mov edi, dword [ecx + 0xc]
xor edi, esi
or edi, eax
mov dword [ecx + 0xc], edi
mov edi, dword [ecx + 0x10]
xor edi, esi
or edi, eax
mov dword [ecx + 0x10], edi
mov edi, dword [ecx + 0x14]
xor edi, esi
or edi, eax
mov dword [ecx + 0x14], edi
mov edi, dword [ecx + 0x18]
xor edi, esi
or edi, eax
mov dword [ecx + 0x18], edi
mov edi, dword [ecx + 0x1c]
xor edi, esi
or edi, eax
mov dword [ecx + 0x1c], edi
add ecx, 0x20
dec edx
jne 0x2fe8c9
cmp dword [ebp - 0x10], 0
jbe 0x2fe936
mov ebx, dword [ebp - 0x10]
mov edx, ecx
mov edi, dword [edx]
xor edi, esi
or edi, eax
add ecx, 4
dec ebx
mov dword [edx], edi
jne 0x2fe926
inc dword [ebp - 0x24]
mov ecx, dword [ebp - 0x24]
cmp ecx, dword [ebp - 8]
jl 0x2fe892
jmp 0x2fea2b
cmp ecx, dword [ebp - 8]
jge 0x2fea2b
mov ecx, dword [ebp - 0x18]
shl ecx, 2
mov dword [ebp - 0x18], ecx
mov edi, dword [ebp - 4]
mov ecx, edi
add edi, dword [ebp - 0x18]
mov dword [ebp - 4], edi
mov edi, dword [ebp - 0x1c]
add edi, ecx
cmp edi, dword [ebp - 0x20]
ja 0x2fea2b
mov edi, dword [ebp - 0xc]
test edi, edi
jbe 0x2fe993
mov dword [ebp - 0x28], edi
mov edi, ecx
mov ebx, dword [edi]
xor ebx, esi
and ebx, edx
or ebx, eax
add ecx, 4
dec dword [ebp - 0x28]
mov dword [edi], ebx
jne 0x2fe97f
mov edi, dword [ebp - 0x14]
test edi, edi
jbe 0x2fe9fe
mov ebx, dword [ecx]
xor ebx, esi
and ebx, edx
or ebx, eax
mov dword [ecx], ebx
mov ebx, dword [ecx + 4]
xor ebx, esi
and ebx, edx
or ebx, eax
mov dword [ecx + 4], ebx
mov ebx, dword [ecx + 8]
xor ebx, esi
and ebx, edx
or ebx, eax
mov dword [ecx + 8], ebx
mov ebx, dword [ecx + 0xc]
xor ebx, esi
and ebx, edx
or ebx, eax
mov dword [ecx + 0xc], ebx
mov ebx, dword [ecx + 0x10]
xor ebx, esi
and ebx, edx
or ebx, eax
mov dword [ecx + 0x10], ebx
mov ebx, dword [ecx + 0x14]
xor ebx, esi
and ebx, edx
or ebx, eax
mov dword [ecx + 0x14], ebx
mov ebx, dword [ecx + 0x18]
xor ebx, esi
and ebx, edx
or ebx, eax
mov dword [ecx + 0x18], ebx
mov ebx, dword [ecx + 0x1c]
xor ebx, esi
and ebx, edx
or ebx, eax
mov dword [ecx + 0x1c], ebx
add ecx, 0x20
dec edi
jne 0x2fe99a
mov edi, dword [ebp - 0x10]
test edi, edi
jbe 0x2fea1c
mov dword [ebp - 0x28], edi
mov edi, ecx
mov ebx, dword [edi]
xor ebx, esi
and ebx, edx
or ebx, eax
add ecx, 4
dec dword [ebp - 0x28]
mov dword [edi], ebx
jne 0x2fea08
inc dword [ebp - 0x24]
mov ecx, dword [ebp - 0x24]
cmp ecx, dword [ebp - 8]
jl 0x2fe95c
mov eax, dword [ebp - 0x2c]
push 4
push dword [eax + 0x3cc]
mov eax, dword [ebp - 0x30]
push dword [ebp + 8]
mov ecx, dword [eax + 0x80]
call fcn.002fd3a6
pop edi
pop esi
pop ebx
leave
ret 4