Function at 0x4232b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 4], ecx
cmp edi, 0x10
ja 0x4232c9
mov edi, 0x10
jmp 0x4232df
cmp edi, 0x20
jb 0x4232d5
mov edi, 0x20
jmp 0x4232df
cmp edi, 0x18
je 0x4232df
mov edi, 0x18
mov ebx, edi
shr ebx, 2
lea eax, [ebx + 6]
lea esi, [ecx + 0x3c]
mov dword [ecx + 0x38], eax
mov ecx, dword [ebp + 8]
push edi
push ecx
push esi
call fcn.00424e60
lea edx, [ebx*4]
sub edx, edi
push edx
lea eax, [esi + edi]
push 0
push eax
call fcn.00425590
lea eax, [edi + 3]
mov ecx, eax
and ecx, 3
sub eax, ecx
push eax
push esi
push esi
call fcn.00422fa0
add esp, 0x24
cmp edi, 0x10
je 0x42358e
cmp edi, 0x18
je 0x423490
cmp edi, 0x20
jne 0x423675
mov ecx, dword [esi + 0x1c]
mov edi, dword [str.ccccwwww]
mov edx, ecx
shr edx, 0x18
movzx eax, byte [edi + edx*4]
mov edx, ecx
shr edx, 8
movzx edx, dl
mov edx, dword [edi + edx*4]
and edx, 0xff0000
xor eax, edx
mov edx, ecx
shr edx, 0x10
movzx edx, dl
mov edx, dword [edi + edx*4]
movzx ecx, cl
and edx, 0xff000000
xor eax, edx
mov edx, dword [edi + ecx*4]
mov ecx, dword [esi + 4]
and edx, 0xff00
xor eax, edx
xor eax, dword [esi]
mov edx, 4
xor eax, dword [0x468f20]
xor ecx, eax
mov dword [esi + 0x20], eax
mov eax, dword [esi + 8]
xor eax, ecx
mov dword [esi + 0x24], ecx
mov ecx, dword [esi + 0xc]
xor ecx, eax
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], ecx
jmp 0x4233b0
mov ecx, dword [esi + 0x2c]
mov edi, dword [str.ccccwwww]
mov eax, ecx
shr eax, 0x10
movzx eax, al
mov eax, dword [edi + eax*4]
mov ebx, ecx
shr ebx, 0x18
mov ebx, dword [edi + ebx*4]
and eax, 0xff0000
and ebx, 0xff000000
xor eax, ebx
mov ebx, ecx
shr ebx, 8
movzx ebx, bl
mov ebx, dword [edi + ebx*4]
movzx ecx, cl
movzx ecx, byte [edi + ecx*4]
and ebx, 0xff00
xor eax, ebx
xor eax, ecx
xor eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x30], eax
xor ecx, eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x34], ecx
xor eax, ecx
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x38], eax
xor ecx, eax
mov dword [esi + 0x3c], ecx
mov ecx, dword [esi + 0x3c]
mov edi, dword [str.ccccwwww]
add esi, 0x20
mov ebx, ecx
shr ebx, 8
mov eax, ecx
shr eax, 0x18
movzx eax, byte [edi + eax*4]
movzx ebx, bl
mov ebx, dword [edi + ebx*4]
and ebx, 0xff0000
xor eax, ebx
mov ebx, ecx
shr ebx, 0x10
movzx ecx, cl
mov ecx, dword [edi + ecx*4]
movzx ebx, bl
mov ebx, dword [edi + ebx*4]
and ecx, 0xff00
and ebx, 0xff000000
xor eax, ebx
xor eax, ecx
xor eax, dword [edx + 0x468f20]
add edx, 4
xor eax, dword [esi]
mov dword [esi + 0x20], eax
mov ecx, dword [esi + 4]
xor ecx, eax
mov dword [esi + 0x24], ecx
mov eax, dword [esi + 8]
xor eax, ecx
mov dword [esi + 0x28], eax
mov ecx, dword [esi + 0xc]
xor ecx, eax
mov dword [esi + 0x2c], ecx
cmp edx, 0x1c
jne 0x4233b0
jmp 0x423675
mov ecx, dword [esi + 0x14]
mov edi, dword [str.ccccwwww]
mov edx, ecx
shr edx, 0x18
movzx eax, byte [edi + edx*4]
mov edx, ecx
shr edx, 8
movzx edx, dl
mov edx, dword [edi + edx*4]
and edx, 0xff0000
xor eax, edx
mov edx, ecx
shr edx, 0x10
movzx edx, dl
mov edx, dword [edi + edx*4]
movzx ecx, cl
and edx, 0xff000000
xor eax, edx
mov edx, dword [edi + ecx*4]
mov ecx, dword [esi + 4]
and edx, 0xff00
xor eax, edx
xor eax, dword [esi]
mov edx, 4
xor eax, dword [0x468f20]
xor ecx, eax
mov dword [esi + 0x18], eax
mov eax, dword [esi + 8]
xor eax, ecx
mov dword [esi + 0x1c], ecx
mov ecx, dword [esi + 0xc]
xor ecx, eax
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], ecx
mov edi, edi
mov eax, dword [esi + 0x10]
xor eax, dword [esi + 0x24]
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x28], eax
xor ecx, eax
mov dword [esi + 0x2c], ecx
mov ecx, dword [esi + 0x2c]
mov edi, dword [str.ccccwwww]
add esi, 0x18
mov ebx, ecx
shr ebx, 8
mov eax, ecx
shr eax, 0x18
movzx eax, byte [edi + eax*4]
movzx ebx, bl
mov ebx, dword [edi + ebx*4]
and ebx, 0xff0000
xor eax, ebx
mov ebx, ecx
shr ebx, 0x10
movzx ecx, cl
mov ecx, dword [edi + ecx*4]
movzx ebx, bl
mov ebx, dword [edi + ebx*4]
and ecx, 0xff00
and ebx, 0xff000000
xor eax, ebx
xor eax, ecx
xor eax, dword [edx + 0x468f20]
add edx, 4
xor eax, dword [esi]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 4]
xor ecx, eax
mov dword [esi + 0x1c], ecx
mov eax, dword [esi + 8]
xor eax, ecx
mov dword [esi + 0x20], eax
mov ecx, dword [esi + 0xc]
xor ecx, eax
mov dword [esi + 0x24], ecx
cmp edx, 0x20
jne 0x423500
jmp 0x423675
mov ecx, dword [esi + 0xc]
mov edi, dword [str.ccccwwww]
mov edx, ecx
shr edx, 0x18
movzx eax, byte [edi + edx*4]
mov edx, ecx
shr edx, 8
movzx edx, dl
mov edx, dword [edi + edx*4]
and edx, 0xff0000
xor eax, edx
mov edx, ecx
shr edx, 0x10
movzx edx, dl
mov edx, dword [edi + edx*4]
and edx, 0xff000000
xor eax, edx
movzx edx, cl
mov edx, dword [edi + edx*4]
and edx, 0xff00
xor eax, edx
xor eax, dword [esi]
mov edx, dword [esi + 4]
xor eax, dword [0x468f20]
lea ebx, [esi + 0x10]
xor edx, eax
mov dword [ebx], eax
mov eax, dword [esi + 8]
xor eax, edx
mov dword [esi + 0x18], eax
xor eax, ecx
mov dword [esi + 0x14], edx
mov dword [esi + 0x1c], eax
mov edi, 4
jmp 0x423600
mov esi, dword [str.ccccwwww]
mov eax, ebx
mov edx, dword [eax + 0xc]
mov ebx, edx
shr ebx, 8
mov ecx, edx
movzx ebx, bl
mov ebx, dword [esi + ebx*4]
shr ecx, 0x18
movzx ecx, byte [esi + ecx*4]
and ebx, 0xff0000
xor ecx, ebx
mov ebx, edx
shr ebx, 0x10
movzx edx, dl
mov edx, dword [esi + edx*4]
movzx ebx, bl
mov ebx, dword [esi + ebx*4]
and edx, 0xff00
and ebx, 0xff000000
xor ecx, ebx
xor ecx, edx
xor ecx, dword [edi + 0x468f20]
lea ebx, [eax + 0x10]
xor ecx, dword [eax]
add edi, 4
mov dword [ebx], ecx
mov edx, dword [eax + 4]
xor edx, ecx
mov dword [eax + 0x14], edx
mov ecx, dword [eax + 8]
xor ecx, edx
mov dword [eax + 0x18], ecx
mov edx, dword [eax + 0xc]
xor edx, ecx
mov dword [eax + 0x1c], edx
cmp edi, 0x28
jne 0x423600
mov ecx, dword [ebp - 4]
mov edx, 1
cmp dword [ecx + 0x30], edx
jne 0x4238d0
mov esi, dword [ecx + 0x38]
add esi, esi
xor edi, edi
add esi, esi
lea eax, [ecx + 0x3c]
je 0x4236fc
lea edx, [eax + esi*4 + 8]
lea ecx, [eax + 8]
jmp 0x4236a0
mov ebx, dword [ecx - 8]
mov dword [ebp + 0xc], ebx
mov ebx, dword [edx - 8]
mov dword [ecx - 8], ebx
mov ebx, dword [ebp + 0xc]
mov dword [edx - 8], ebx
mov ebx, dword [ecx - 4]
mov dword [ebp + 0xc], ebx
mov ebx, dword [edx - 4]
mov dword [ecx - 4], ebx
mov ebx, dword [ebp + 0xc]
mov dword [edx - 4], ebx
mov ebx, dword [ecx]
mov dword [ebp + 0xc], ebx
mov ebx, dword [edx]
mov dword [ecx], ebx
mov ebx, dword [ebp + 0xc]
mov dword [edx], ebx
mov ebx, dword [ecx + 4]
mov dword [ebp + 0xc], ebx
mov ebx, dword [edx + 4]
mov dword [ecx + 4], ebx
mov ebx, dword [ebp + 0xc]
mov dword [edx + 4], ebx
add edi, 4
sub esi, 4
add ecx, 0x10
sub edx, 0x10
cmp edi, esi
jb 0x4236a0
mov ecx, dword [ebp - 4]
mov edx, 1
mov dword [ebp + 0xc], edx
cmp dword [ecx + 0x38], edx
jbe 0x4238d0
jmp 0x423710
mov ecx, dword [eax + 0x10]
mov esi, dword [str.ccccwwww]
mov edx, ecx
shr edx, 8
movzx edx, dl
mov edx, dword [esi + edx*4]
mov ebx, ecx
add eax, 0x10
and edx, 0xff
shr ecx, 0x18
mov ecx, dword [esi + ecx*4]
shr ebx, 0x10
movzx edi, bl
mov edi, dword [esi + edi*4]
mov ebx, dword [0x71fec0]
mov edx, dword [ebx + edx*4]
mov ebx, dword [0x71febc]
and ecx, 0xff
and edi, 0xff
xor edx, dword [ebx + edi*4]
mov edi, dword [0x71feb8]
xor edx, dword [edi + ecx*4]
movzx ecx, byte [eax]
mov ecx, dword [esi + ecx*4]
mov esi, dword [0x71fec4]
and ecx, 0xff
xor edx, dword [esi + ecx*4]
mov ecx, dword [eax + 4]
mov dword [eax], edx
mov esi, dword [str.ccccwwww]
mov edx, ecx
shr edx, 8
movzx edx, dl
mov edx, dword [esi + edx*4]
mov ebx, ecx
and edx, 0xff
shr ebx, 0x10
shr ecx, 0x18
mov ecx, dword [esi + ecx*4]
movzx edi, bl
mov edi, dword [esi + edi*4]
mov ebx, dword [0x71fec0]
mov edx, dword [ebx + edx*4]
mov ebx, dword [0x71febc]
and ecx, 0xff
and edi, 0xff
xor edx, dword [ebx + edi*4]
mov edi, dword [0x71feb8]
xor edx, dword [edi + ecx*4]
movzx ecx, byte [eax + 4]
mov ecx, dword [esi + ecx*4]
mov esi, dword [0x71fec4]
and ecx, 0xff
xor edx, dword [esi + ecx*4]
mov ecx, dword [eax + 8]
mov dword [eax + 4], edx
mov esi, dword [str.ccccwwww]
mov edx, ecx
shr edx, 8
mov ebx, ecx
movzx edx, dl
mov edx, dword [esi + edx*4]
shr ebx, 0x10
movzx edi, bl
mov edi, dword [esi + edi*4]
mov ebx, dword [0x71fec0]
and edx, 0xff
mov edx, dword [ebx + edx*4]
mov ebx, dword [0x71febc]
shr ecx, 0x18
mov ecx, dword [esi + ecx*4]
and edi, 0xff
xor edx, dword [ebx + edi*4]
mov edi, dword [0x71feb8]
and ecx, 0xff
xor edx, dword [edi + ecx*4]
movzx ecx, byte [eax + 8]
mov ecx, dword [esi + ecx*4]
mov esi, dword [0x71fec4]
and ecx, 0xff
xor edx, dword [esi + ecx*4]
mov ecx, dword [eax + 0xc]
mov dword [eax + 8], edx
mov esi, dword [str.ccccwwww]
mov edx, ecx
shr edx, 8
mov ebx, ecx
movzx edx, dl
mov edx, dword [esi + edx*4]
shr ebx, 0x10
and edx, 0xff
movzx edi, bl
mov edi, dword [esi + edi*4]
mov ebx, dword [0x71fec0]
mov edx, dword [ebx + edx*4]
mov ebx, dword [0x71febc]
shr ecx, 0x18
mov ecx, dword [esi + ecx*4]
and ecx, 0xff
and edi, 0xff
xor edx, dword [ebx + edi*4]
mov edi, dword [0x71feb8]
xor edx, dword [edi + ecx*4]
movzx ecx, byte [eax + 0xc]
mov ecx, dword [esi + ecx*4]
mov esi, dword [0x71fec4]
and ecx, 0xff
xor edx, dword [esi + ecx*4]
mov ecx, dword [ebp + 0xc]
mov dword [eax + 0xc], edx
mov edx, dword [ebp - 4]
inc ecx
mov dword [ebp + 0xc], ecx
cmp ecx, dword [edx + 0x38]
jb 0x423710
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc