Function at 0x4325a0
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [esp + 4]
push ebx
push ebp
push esi
mov ecx, dword [eax + 8]
push edi
cmp ecx, 5
jl 0x43270a
cmp ecx, 0x11
jg 0x43270a
mov ecx, dword [esp + 0x1c]
test byte [ecx + 0x11c], 2
je 0x432630
mov ecx, dword [esp + 0x18]
mov edi, dword [eax]
cmp ecx, 1
jne 0x4325e4
mov eax, dword [esp + 0x20]
mov dl, byte [edi]
mov byte [eax], dl
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
test eax, eax
jle 0x4327d1
mov edx, dword [esp + 0x20]
lea esi, [edi + ecx]
mov dword [esp + 0x20], eax
lea ebp, [edx + ecx]
sub ebp, esi
sub edx, edi
mov cl, byte [edi]
mov al, byte [esi - 1]
xor al, cl
mov bl, al
xor bl, cl
mov byte [edx + edi], bl
mov cl, byte [esi - 1]
xor al, cl
inc edi
mov byte [ebp + esi - 1], al
mov eax, dword [esp + 0x20]
dec esi
dec eax
mov dword [esp + 0x20], eax
jne 0x432605
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret
mov ecx, dword [esp + 0x18]
lea edx, [ecx - 1]
cmp edx, 7
ja case.0x432640.3
jmp dword [edx*4 + 0x4327d8]
mov ecx, dword [eax]
mov eax, dword [esp + 0x20]
mov dl, byte [ecx]
mov byte [eax], dl
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret
mov ecx, dword [eax]
push ecx
call fcn.00432800
mov edx, dword [esp + 0x24]
add esp, 4
push eax
push edx
call fcn.004328e0
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret
mov eax, dword [eax]
test al, 3
jne 0x432682
mov eax, dword [eax]
jmp 0x43268b
push eax
call fcn.00432850
add esp, 4
mov ecx, dword [esp + 0x20]
test cl, 3
jne 0x43269d
mov dword [ecx], eax
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret
push eax
push ecx
call fcn.00432950
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret
mov eax, dword [eax]
test al, 3
jne 0x4326bb
mov esi, dword [eax]
mov eax, dword [eax + 4]
jmp 0x4326c8
push eax
call fcn.00432890
mov esi, eax
add esp, 4
mov eax, edx
mov ecx, dword [esp + 0x20]
test cl, 3
jne 0x4326dd
mov dword [ecx], esi
mov dword [ecx + 4], eax
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret
push eax
push esi
push ecx
call fcn.004329b0
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret
mov esi, dword [eax]
mov edi, dword [esp + 0x20]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
xor eax, eax
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
pop ebp
pop ebx
ret
cmp ecx, 0x19
jl 0x432714
cmp ecx, 0x1f
jle 0x432726
cmp ecx, 0x28
jl 0x4327d1
cmp ecx, 0x30
jg 0x4327d1
mov edx, dword [ecx*4 + 0x472aa4]
mov edi, dword [esp + 0x1c]
cmp edx, 0xffffffff
movsx esi, byte [edi + 0x110]
jne 0x432747
mov eax, 0x4000005f
pop edi
pop esi
pop ebp
pop ebx
ret
mov ecx, dword [eax]
lea eax, [esi + esi*2]
mov ebp, dword [esp + 0x20]
mov ebx, dword [esp + 0x18]
lea edx, [edx + eax*2]
mov eax, dword [edx*4 + 0x472be0]
test eax, eax
je 0x43277a
push ebp
push 0
push ecx
call eax
add esp, 0xc
cmp eax, 1
je 0x432796
mov eax, 0x4000005f
pop edi
pop esi
pop ebp
pop ebx
ret
cmp ebx, 4
jne 0x432786
mov eax, dword [ecx]
mov dword [ebp], eax
jmp 0x432796
cmp ebx, 8
jne 0x432796
mov edx, dword [ecx]
mov dword [ebp], edx
mov eax, dword [ecx + 4]
mov dword [ebp + 4], eax
test byte [edi + 0x11c], 2
je 0x4327d1
test esi, esi
jne 0x4327d1
mov eax, ebx
xor edi, edi
cdq
sub eax, edx
sar eax, 1
test eax, eax
jle 0x4327d1
lea esi, [ebp + ebx]
mov dl, byte [edi + ebp]
mov cl, byte [esi - 1]
xor cl, dl
mov bl, cl
xor bl, dl
mov byte [edi + ebp], bl
mov dl, byte [esi - 1]
xor dl, cl
inc edi
mov byte [esi - 1], dl
dec esi
cmp edi, eax
jl 0x4327b4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret