Function at 0x41c1c4
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x68
mov eax, dword [0x4524c8]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 6
mov esi, edx
mov dword [ebp - 0x4c], ecx
pop edi
mov eax, esi
xor edx, edx
div edi
push 0x20
pop eax
shr esi, 1
cmp esi, eax
mov dword [ebp - 0x50], edx
cmovg esi, eax
lea eax, [ebp - 0x44]
push esi
push ecx
push eax
call fcn.0041e470
xor ebx, ebx
mov dword [ebp - 0x68], 7
add esp, 0xc
mov edx, ebx
dec esi
mov edi, ebx
test esi, esi
jle 0x41c275
mov al, byte [edx + 0x4481d5]
inc edx
xor byte [ebp + edi - 0x44], al
mov cl, byte [ebp + edi - 0x44]
push 7
pop eax
mov dword [ebp - 0x60], edx
mov byte [ebp - 0x45], cl
cmp edx, eax
jge 0x41c275
mov eax, edi
mov dword [ebp - 0x64], 9
cdq
idiv dword [ebp - 0x64]
movzx eax, cl
mov ecx, edx
shl eax, cl
test eax, eax
jne 0x41c267
mov eax, edi
and eax, 0x80000007
jns 0x41c254
dec eax
or eax, 0xfffffff8
inc eax
mov cl, byte [ebp + 8]
sub cl, al
mov al, byte [ebp - 0x45]
add cl, 8
shr al, cl
test al, al
mov al, bl
je 0x41c269
mov al, 1
mov edx, dword [ebp - 0x60]
mov byte [ebp + edi - 0x44], al
inc edi
cmp edi, esi
jl 0x41c212
movzx ecx, byte [0x4536ed]
mov edx, dword [ebp + 0xc]
add ecx, 3
shl edx, cl
push 0x42
pop ecx
mov dword [ebp - 0x64], ecx
cmp dword [ebp - 0x50], ebx
je 0x41c29a
movzx eax, byte [0x4536e8]
add eax, ecx
jmp 0x41c2a6
mov eax, dword [0x455270]
mov dword [ebp - 0x64], 0x26
mov ecx, dword [ebp + 0xc]
neg edx
lea eax, [eax + edx*2]
mov edx, ecx
mov dword [ebp - 0x60], eax
and edx, 0x80000001
jns 0x41c2c0
dec edx
or edx, 0xfffffffe
inc edx
mov edi, dword [ebp - 0x4c]
sar ecx, 2
mov dword [ebp - 0x58], edx
mov dword [ebp + 0xc], ecx
test edx, edx
je 0x41c334
mov edx, ebx
mov esi, ebx
mov dword [ebp - 0x54], edx
test ecx, ecx
je 0x41c329
mov ecx, ebx
mov dword [ebp - 0x50], 0x449c44
mov dword [ebp - 0x5c], ecx
mov eax, esi
and eax, 0x80000003
jns 0x41c2f5
dec eax
or eax, 0xfffffffc
inc eax
jne 0x41c375
mov eax, dword [ebp + 0xc]
xor edx, edx
div dword [ebp - 0x68]
movzx ecx, byte [ecx + 0x4481d9]
add edx, esi
cmp edx, ecx
mov edx, dword [ebp - 0x54]
jne 0x41c31d
cmp dword [ebp - 0x58], 0
mov ecx, dword [ebp - 0x4c]
mov edi, ecx
je 0x41c370
inc byte [ecx + esi]
mov ecx, dword [ebp - 0x5c]
inc esi
cmp esi, dword [ebp + 0xc]
jb 0x41c2e7
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 0x58]
test edx, edx
je 0x41c4b5
lea eax, [ecx - 0xd]
cmp eax, 0x5f
ja 0x41c42b
mov edx, ebx
mov esi, 0x449d28
mov ebx, dword [ebp - 0x4c]
cmp dword [ebp - 0x58], 0
je 0x41c3ce
mov edi, dword [esi]
mov ch, byte [edx + 0x4481db]
movzx eax, ch
mov cl, byte [edi + ebx]
and eax, 0x80000001
jns 0x41c36a
dec eax
or eax, 0xfffffffe
inc eax
jne 0x41c3a9
xor cl, ch
jmp 0x41c3af
dec byte [ecx + esi]
jmp 0x41c31d
mov al, byte [ecx + 0x448199]
xor byte [edi + esi], al
inc edx
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x54], edx
mov eax, dword [eax]
cmp edx, dword [eax*4 + 0x449c50]
jle 0x41c320
sub dword [ebp - 0x50], 4
dec ecx
mov dword [ebp - 0x5c], ecx
lea eax, [ecx + 5]
test eax, eax
jns 0x41c326
mov edx, ebx
mov dword [ebp - 0x54], edx
jmp 0x41c320
xor cl, byte [edx + 0x44819b]
lea eax, [edx + 7]
mov byte [ebp - 0x45], cl
and eax, 0x80000003
jns 0x41c3c1
dec eax
or eax, 0xfffffffc
inc eax
jne 0x41c3c9
add cl, 2
mov byte [ebp - 0x45], cl
mov ecx, dword [esi + 4]
jmp 0x41c40e
mov edi, dword [esi + 4]
lea eax, [edx + 7]
mov cl, byte [edi + ebx]
and eax, 0x80000003
jns 0x41c3e3
dec eax
or eax, 0xfffffffc
inc eax
jne 0x41c3e8
add cl, 0xfe
mov ch, byte [edx + 0x4481db]
movzx eax, ch
and eax, 0x80000001
jns 0x41c3fd
dec eax
or eax, 0xfffffffe
inc eax
jne 0x41c403
xor cl, ch
jmp 0x41c409
xor cl, byte [edx + 0x44819b]
mov byte [ebp - 0x45], cl
mov ecx, dword [esi]
mov al, byte [ecx + ebx]
dec edx
mov byte [edi + ebx], al
sub esi, 8
mov al, byte [ebp - 0x45]
mov byte [ecx + ebx], al
lea eax, [edx + 7]
test eax, eax
jns 0x41c34a
jmp 0x41c48e
cmp ecx, 0x9e
jbe 0x41c495
mov ebx, dword [ebp - 0x4c]
mov ecx, 0x449c70
push 0x10
mov dword [ebp - 0x50], ecx
pop edi
mov eax, edi
test edx, edx
je 0x41c45a
mov esi, dword [ecx]
and eax, 0x80000007
jns 0x41c455
dec eax
or eax, 0xfffffff8
inc eax
mov ecx, dword [ecx + 4]
jmp 0x41c46b
mov esi, dword [ecx + 4]
and eax, 0x80000007
jns 0x41c469
dec eax
or eax, 0xfffffff8
inc eax
mov ecx, dword [ecx]
mov dl, byte [eax + 0x4481d4]
xor dl, byte [esi + ebx]
dec edi
mov al, byte [ecx + ebx]
mov byte [esi + ebx], al
mov byte [ecx + ebx], dl
mov ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0x58]
add ecx, 8
mov dword [ebp - 0x50], ecx
test edi, edi
jg 0x41c441
mov edi, dword [ebp - 0x4c]
xor ebx, ebx
jmp 0x41c498
xor byte [edi], 0xb4
mov edx, dword [ebp - 0x58]
mov ecx, edx
movzx eax, byte [0x4536ec]
sub ecx, eax
add dword [ebp - 0x60], ecx
test edx, edx
jne 0x41c4b5
mov ecx, dword [ebp + 0xc]
jmp 0x41c2d0
push 0x10
mov ecx, ebx
pop edx
mov al, byte [ebp + ecx - 0x44]
xor al, 0x33
mov byte [ecx + 0x453710], al
inc ecx
cmp ecx, edx
jl 0x41c4ba
mov dword [0x455270], edx
test ecx, ecx
jle 0x41c4e9
cmp ebx, 3
jge 0x41c4e4
mov al, bl
add al, al
add al, cl
mov byte [ebp + ebx - 0x44], al
inc ebx
cmp ebx, ecx
jl 0x41c4d5
mov cl, byte [ebp - 0x42]
xor eax, eax
add cl, byte [ebp - 0x64]
inc eax
mov byte [0x453712], cl
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0041e2e9
mov esp, ebp
pop ebp
ret