Function at 0x412feb
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0x10]
mov dword [ebp - 4], ecx
mov ebx, edi
mov edx, 0x1c23a2b0
dec ebx
mov eax, 0x1c23a1b0
je 0x4130ed
dec ebx
je 0x4130b8
dec ebx
je 0x413089
dec ebx
je 0x41306f
dec ebx
je 0x413025
dec ebx
jne 0x413133
cmp dword [ebp + 0x28], 0
je 0x413036
lea eax, [esi - 0xc00]
mov dword [ebp + 0x10], eax
jmp 0x413039
mov dword [ebp + 0x10], edx
cmp dword [ebp + 0x2c], 0
je 0x41304e
mov eax, dword [ecx + 0x13cc]
mov ebx, esi
shl eax, 2
sub ebx, eax
jmp 0x413050
mov ebx, edx
cmp dword [ebp + 0x30], 0
je 0x413068
mov eax, dword [ecx + 0x13cc]
lea eax, [eax*4 + 0xc00]
jmp 0x41312b
mov eax, edx
jmp 0x413139
lea eax, [esi - 0x100]
lea ebx, [esi - 0x200]
mov dword [ebp + 0x10], eax
lea eax, [esi - 0x300]
jmp 0x413139
cmp dword [ebp + 0x28], 0
je 0x41309a
lea edx, [esi - 0xb00]
mov dword [ebp + 0x10], edx
jmp 0x41309d
mov dword [ebp + 0x10], eax
cmp dword [ebp + 0x28], 0
lea ebx, [esi - 0x200]
je 0x413139
lea eax, [esi - 0xd00]
jmp 0x413139
cmp dword [ebp + 0x2c], 0
lea edx, [esi - 0x100]
mov dword [ebp + 0x10], edx
je 0x4130d7
mov edx, 0x80
sub edx, dword [ecx + 0x13cc]
lea ebx, [esi + edx*4]
jmp 0x4130d9
mov ebx, eax
cmp dword [ebp + 0x2c], 0
je 0x413139
push 0x40
pop eax
sub eax, dword [ecx + 0x13cc]
lea eax, [esi + eax*4]
jmp 0x413139
xor edx, edx
cmp dword [ebp + 0x28], edx
je 0x4130ff
lea ebx, [esi - 0xb00]
mov dword [ebp + 0x10], ebx
jmp 0x413102
mov dword [ebp + 0x10], eax
cmp dword [ebp + 0x2c], edx
je 0x413117
mov ebx, 0x80
sub ebx, dword [ecx + 0x13cc]
lea ebx, [esi + ebx*4]
jmp 0x413119
mov ebx, eax
cmp dword [ebp + 0x30], edx
je 0x413139
mov eax, dword [ecx + 0x13cc]
lea eax, [eax*4 + 0x900]
mov edx, eax
mov eax, esi
sub eax, edx
jmp 0x413139
mov ebx, dword [ebp + 0x28]
mov eax, dword [ebp + 0x28]
cmp dword [ecx + 8], 4
jne 0x413307
mov edx, 0x400
cmp edi, 5
mov ecx, edx
mov dword [ebp + 0x2c], edx
mov dword [ebp + 8], ecx
mov dword [ebp + 0x30], edx
jge 0x41318d
mov edx, dword [ebp - 4]
cmp ebx, 0x1c23a1b0
mov edx, dword [edx + 0x128]
mov dword [ebp + 0x28], edx
je 0x413172
imul edx, dword [ebx]
mov dword [ebp + 0x30], edx
mov edx, dword [ebp + 0x10]
cmp edx, 0x1c23a1b0
je 0x413183
mov ecx, dword [ebp + 0x28]
imul ecx, dword [edx]
mov edx, dword [ebp + 0x28]
cmp eax, 0x1c23a1b0
jmp 0x4131c7
mov ecx, dword [ebp - 4]
cmp ebx, 0x1c23a2b0
mov edx, dword [ecx + 0x12c]
mov dword [ebp + 0x28], edx
je 0x4131a9
mov ecx, edx
imul ecx, dword [ebx]
mov dword [ebp + 0x30], ecx
cmp dword [ebp + 0x10], 0x1c23a2b0
je 0x4131bf
mov ecx, edx
mov edx, dword [ebp + 0x10]
imul ecx, dword [edx]
mov edx, dword [ebp + 0x28]
jmp 0x4131c2
mov ecx, dword [ebp + 8]
cmp eax, 0x1c23a2b0
je 0x4131cf
imul edx, dword [eax]
mov dword [ebp + 0x2c], edx
mov eax, dword [ebp + 0x2c]
sub eax, dword [ebp + 0x30]
cdq
xor eax, edx
sub eax, edx
mov dword [ebp + 0x28], eax
mov eax, dword [ebp + 0x2c]
sub eax, ecx
mov ecx, dword [ebp + 0x28]
cdq
xor eax, edx
sub eax, edx
cmp ecx, eax
mov eax, dword [ebp + 0x14]
jg 0x41327f
mov edx, dword [ebp + 0x10]
xor ecx, ecx
mov dword [eax + edi*4 + 0x2c], ecx
mov eax, dword [esi]
sub eax, dword [edx]
mov edx, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x24]
mov dword [ebp + 0x14], 7
mov dword [edx], eax
mov eax, edi
mov edi, dword [ebp + 0x20]
add edx, 4
shl eax, 2
add edi, eax
add ebx, eax
mov eax, dword [ebp + 0x10]
mov dword [ebp + 0x28], edx
mov dword [edi], ecx
sub eax, esi
mov dword [ebx], ecx
lea ecx, [esi + 0x20]
mov dword [ebp + 0x2c], eax
jmp 0x413237
mov edx, dword [ebp + 0x28]
mov esi, dword [ebp + 0x2c]
mov eax, dword [ecx]
push 0
sub eax, dword [esi + ecx]
mov dword [edx], eax
pop eax
setne al
add dword [edi], eax
mov eax, dword [edx]
cdq
mov esi, eax
mov eax, dword [ebp + 0x1c]
xor esi, edx
sub esi, edx
add dword [eax], esi
xor eax, eax
cmp dword [ecx], eax
setne al
add dword [ebx], eax
mov eax, dword [ecx]
cdq
add dword [ebp + 0x28], 4
mov esi, eax
mov eax, dword [ebp + 0x18]
xor esi, edx
sub esi, edx
add ecx, 0x20
add dword [eax], esi
dec dword [ebp + 0x14]
jne 0x413234
jmp 0x41343c
mov edx, dword [ebp + 0xc]
mov dword [eax + edi*4 + 0x2c], 1
mov eax, dword [esi]
mov ecx, dword [ebp + 0x20]
sub eax, dword [ebx]
mov dword [ebp + 0x28], edx
sub ebx, edx
mov dword [ebp + 0x14], 7
mov dword [edx], eax
mov eax, edi
shl eax, 2
and dword [ecx + eax], 0
lea edi, [ecx + eax]
mov ecx, dword [ebp + 0x24]
add eax, ecx
lea ecx, [esi + 4]
mov dword [ebp + 0x2c], eax
and dword [eax], 0
sub dword [ebp + 0x28], esi
mov esi, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x28]
mov edx, dword [ecx]
add eax, ecx
push 0
sub edx, dword [eax + ebx]
mov dword [eax], edx
pop edx
setne dl
add dword [edi], edx
mov eax, dword [eax]
cdq
xor eax, edx
sub eax, edx
xor edx, edx
add dword [esi], eax
cmp dword [ecx], edx
mov eax, dword [ebp + 0x2c]
setne dl
add dword [eax], edx
mov eax, dword [ecx]
cdq
xor eax, edx
add ecx, 4
sub eax, edx
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0x18]
mov edx, dword [ebp + 0xc]
add dword [eax], edx
dec dword [ebp + 0x14]
jne 0x4132bf
jmp 0x41343c
mov ecx, dword [eax]
mov eax, ecx
sub eax, dword [ebx]
cdq
xor eax, edx
sub eax, edx
mov dword [ebp + 0x28], eax
mov eax, ecx
mov ecx, dword [ebp + 0x10]
sub eax, dword [ecx]
mov ecx, dword [ebp + 0x28]
cdq
xor eax, edx
sub eax, edx
cmp ecx, eax
mov eax, dword [ebp + 0x14]
jge 0x4133b9
mov edx, dword [ebp + 0x10]
xor ecx, ecx
mov dword [eax + edi*4 + 0x2c], ecx
mov eax, dword [esi]
sub eax, dword [edx]
mov edx, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x24]
mov dword [ebp + 0x14], 7
mov dword [edx], eax
mov eax, edi
mov edi, dword [ebp + 0x20]
add edx, 4
shl eax, 2
add edi, eax
add ebx, eax
mov eax, dword [ebp + 0x10]
mov dword [ebp + 0x28], edx
mov dword [edi], ecx
sub eax, esi
mov dword [ebx], ecx
lea ecx, [esi + 0x20]
mov dword [ebp + 0x2c], eax
jmp 0x413371
mov edx, dword [ebp + 0x28]
mov esi, dword [ebp + 0x2c]
mov eax, dword [ecx]
push 0
sub eax, dword [ecx + esi]
mov dword [edx], eax
pop eax
setne al
add dword [edi], eax
mov eax, dword [edx]
cdq
mov esi, eax
mov eax, dword [ebp + 0x1c]
xor esi, edx
sub esi, edx
add dword [eax], esi
xor eax, eax
cmp dword [ecx], eax
setne al
add dword [ebx], eax
mov eax, dword [ecx]
cdq
add dword [ebp + 0x28], 4
mov esi, eax
mov eax, dword [ebp + 0x18]
xor esi, edx
sub esi, edx
add ecx, 0x20
add dword [eax], esi
dec dword [ebp + 0x14]
jne 0x41336e
jmp 0x41343c
mov edx, dword [ebp + 0xc]
mov dword [eax + edi*4 + 0x2c], 1
mov eax, dword [esi]
mov ecx, dword [ebp + 0x20]
sub eax, dword [ebx]
mov dword [ebp + 0x28], edx
sub ebx, edx
mov dword [ebp + 0x14], 7
mov dword [edx], eax
mov eax, edi
shl eax, 2
and dword [ecx + eax], 0
lea edi, [ecx + eax]
mov ecx, dword [ebp + 0x24]
add eax, ecx
lea ecx, [esi + 4]
mov dword [ebp + 0x2c], eax
and dword [eax], 0
sub dword [ebp + 0x28], esi
mov esi, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x28]
mov edx, dword [ecx]
add eax, ecx
push 0
sub edx, dword [eax + ebx]
mov dword [eax], edx
pop edx
setne dl
add dword [edi], edx
mov eax, dword [eax]
cdq
xor eax, edx
sub eax, edx
xor edx, edx
add dword [esi], eax
cmp dword [ecx], edx
mov eax, dword [ebp + 0x2c]
setne dl
add dword [eax], edx
mov eax, dword [ecx]
cdq
xor eax, edx
add ecx, 4
sub eax, edx
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0x18]
mov edx, dword [ebp + 0xc]
add dword [eax], edx
dec dword [ebp + 0x14]
jne 0x4133f9
pop edi
pop esi
pop ebx
leave
ret 0x2c