Function at 0x46ab750
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xc
mov dword [esp + 4], 0xc9cacb1c
xor eax, eax
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + edx + 4]
mov esi, eax
and esi, 2
mov edi, edx
xor edi, 0x3b3fc3f5
lea ebp, [esi + edi]
add esi, edi
add esi, 0x9fc3ca3e
mov edi, esi
and edi, ecx
lea ebx, [ecx + ebp]
add ebx, 0x9fc3ca3e
add edi, edi
sub ebx, edi
mov edi, 0x603c35c1
sub edi, ebp
or ebx, edi
not ebx
add ebx, ebx
mov ebp, ebx
not ebp
and ebp, esi
and ebx, edi
sub ebx, ebp
mov esi, ecx
not esi
and esi, ebx
not ebx
and ebx, ecx
sub ebx, esi
inc bl
mov byte [esp + edx + 4], bl
inc edx
add eax, 2
cmp edx, 4
jne case.default.0x46ab7e1
mov eax, dword [esp + 4]
mov eax, dword fs:[eax]
xor ecx, ecx
cmp dword [esp + 0x20], 0
sete cl
jmp dword [ecx*4 + 0x46b6848]
mov edx, dword [eax + 0xc]
add edx, 0xc
mov dword [esp], 0
mov esi, dword [edx]
xor eax, eax
cmp esi, edx
setne al
mov dword [esp + 8], edx
jmp dword [eax*4 + 0x46b6860]
mov eax, dword [eax + 8]
mov dword [esp], eax
mov eax, dword [esp]
add esp, 0xc
pop esi
pop edi
pop ebx
pop ebp
ret
mov bh, 0x6a
add al, 0xa1
mov eax, 0x1046a
add byte [eax], al
add dword [eax], eax
add byte [eax], al
add dword [eax], eax
add byte [eax], al
call 0xab6fd318
add al, ch
mov bh, 0x6a
add al, 0xa7
mov eax, 0xb827046a
push 4
adc byte [eax - 0x47c2fb96], bh
push 4
adc byte [eax - 0x476dfb96], bh
push 4
cmpsd dword [esi], dword es:[edi]
mov eax, 0xb817046a
push 4
sar byte [eax - 0x472ffb96], 1
push 4
sar byte [eax - 0x4729fb96], 1
push 4
and byte [ecx - 0x4723fb96], bh
push 4
and byte [ecx - 0x4697fb96], bh
push 4
jns 0x46b685b
add al, 0x3d
mov eax, 0xb810046a
push 4
xchg edx, eax
mov eax, 0xb8a7046a
push 4
pop ss
mov eax, 0xb8d0046a
push 4
sar byte [eax - 0x472ffb96], 1
push 4
salc
mov eax, 0xb920046a
push 4
fdivr qword [eax - 0x46dffb96]
push 4
push 0x79046ab9
mov ecx, 0xb97b046a
push 4
jnp 0x46b685f
push 4
add dword [eax], eax
add byte [eax], al
add dword [eax], eax
add byte [eax], al
jnp 0x46b686b
push 4
add dword [eax], eax
add byte [eax], al
inc ebx
mov edx, 0xb9e5046a
push 4
and byte [edx - 0x45d1fb96], bh
push 4
xlatb
mov ecx, 0xba43046a
push 4
bound edi, qword [edx - 0x45a8fb96]
push 4
pushal
mov edx, 0xba60046a
push 4
bound edi, qword [edx - 0x459ffb96]
push 4
add bh, byte [ebx - 0x4517fb96]
push 4
add dword [eax], eax
add byte [eax], al
add dword [eax], eax
add byte [eax], al
add dword [eax], eax
add byte [eax], al
call 0x46fd3bb
add byte [eax], al
add al, ch
mov edx, 0xbb00046a
push 4
add byte [ebx - 0x44fffb96], bh
push 4
add bh, byte [ebx - 0x447ffb96]
push 4
xor byte [ebx - 0x44bffb96], bh
push 4
inc eax
mov ebx, 0xbb40046a
push 4
inc edx
mov ebx, 0xbb51046a
push 4
pushal
mov ebx, 0xbb80046a
push 4
insb byte es:[edi], dx
mov ebx, 0xbb70046a
push 4
jo 0x46b68f9
mov ebx, 0xbb00046a
push 4
add byte [ebx - 0x44fdfb96], bh
push 4
cmp byte [ebx - 0x44cffb96], 0x6a
add al, 0x40
mov ebx, 0xbb40046a
push 4
inc eax
mov ebx, 0xbb42046a
push 4
push ecx
mov ebx, 0xbb60046a
push 4
cmp byte [ebx - 0x4493fb96], 0x6a
add al, 0x70
mov ebx, 0xbb70046a
push 4
jo 0x46b68fd
push 4
jb 0x46b6901
push 4
fdivr dword [ebx - 0x43c1fb96]
mov ebx, -1136786326