Function at 0x43afb4
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], ebx
mov esi, dword [ebp + 8]
mov eax, dword [esi + 8]
cmp eax, 5
jl 0x43b404
cmp eax, 0x11
jg 0x43b2eb
mov eax, dword [ebp + 0x10]
movzx edx, byte [eax + 0x15d]
test dl, 0x20
je 0x43b055
mov eax, dword [ebp + 0xc]
mov edx, dword [esi]
cmp eax, 1
je 0x43b413
mov eax, dword [ebp + 0xc]
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
jle 0x43b2dc
mov ebx, dword [ebp + 0x14]
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 0x14]
mov dword [ebp - 0xc], ecx
xor eax, eax
lea ebx, [ebx + esi]
mov dword [ebp - 4], ebx
lea esi, [esi + edx]
mov dword [ebp - 8], esi
mov ebx, dword [ebp - 8]
movzx ecx, byte [eax + edx]
sub ebx, eax
movzx esi, byte [ebx - 1]
xor esi, ecx
xor ecx, esi
mov byte [eax + edi], cl
mov ecx, dword [ebp - 4]
movzx ebx, byte [ebx - 1]
xor ebx, esi
sub ecx, eax
mov byte [ecx - 1], bl
mov ecx, dword [ebp - 0xc]
add eax, 1
cmp eax, ecx
jl 0x43b024
jmp 0x43b2dc
mov eax, dword [ebp + 0xc]
cmp eax, 1
je 0x43b420
mov eax, dword [ebp + 0xc]
cmp eax, 2
je 0x43b25c
mov eax, dword [ebp + 0xc]
cmp eax, 4
jne 0x43b104
mov eax, dword [esi]
mov edx, eax
and edx, 3
jne 0x43b086
mov edi, dword [eax]
jmp 0x43b0a8
and eax, 0xfffffffc
test edx, edx
je 0x43b09b
mov edi, dword [eax + 4]
mov ecx, edx
neg ecx
shl ecx, 3
shl edi, cl
jmp 0x43b09d
xor edi, edi
mov eax, dword [eax]
shl edx, 3
mov ecx, edx
shr eax, cl
or edi, eax
mov esi, dword [ebp + 0x14]
and esi, 3
jne 0x43b0ba
mov eax, dword [ebp + 0x14]
mov dword [eax], edi
jmp 0x43b2dc
mov ebx, dword [ebp + 0x14]
and ebx, 0xfffffffc
mov edx, esi
shl edx, 3
mov ecx, edx
mov eax, 0xffffffff
shl eax, cl
test esi, esi
je 0x43b0f3
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x1c], eax
and ecx, eax
mov dword [ebp - 0x20], ecx
neg esi
shl esi, 3
mov ecx, esi
mov esi, dword [ebp - 0x20]
mov eax, edi
shr eax, cl
or esi, eax
mov eax, dword [ebp - 0x1c]
mov dword [ebx + 4], esi
not eax
and eax, dword [ebx]
mov ecx, edx
shl edi, cl
or eax, edi
mov dword [ebx], eax
jmp 0x43b2dc
mov eax, dword [ebp + 0xc]
cmp eax, 8
jne 0x43b245
mov eax, dword [esi]
test al, 3
jne 0x43b11d
mov edi, dword [eax]
mov ebx, dword [eax + 4]
jmp 0x43b182
mov esi, eax
and esi, 0xfffffff8
and eax, 7
je 0x43b153
mov ebx, dword [esi + 8]
mov dword [ebp - 4], ebx
mov ebx, dword [esi + 0xc]
mov edx, eax
neg edx
lea ecx, [edx*8 + 0x40]
cmp ecx, 0x1f
ja 0x43b14a
mov edi, dword [ebp - 4]
shld ebx, edi, cl
shl edi, cl
jmp 0x43b157
mov ebx, dword [ebp - 4]
xor edi, edi
shl ebx, cl
jmp 0x43b157
xor edi, edi
xor ebx, ebx
mov edx, dword [esi]
mov esi, dword [esi + 4]
shl eax, 3
cmp eax, 0x1f
ja 0x43b172
mov ecx, eax
shrd edx, esi, cl
mov ecx, eax
shr esi, cl
mov dword [ebp - 4], esi
jmp 0x43b17d
xor edx, edx
mov dword [ebp - 4], edx
mov ecx, eax
mov edx, esi
shr edx, cl
or ebx, dword [ebp - 4]
or edi, edx
mov eax, dword [ebp + 0x14]
test al, 3
jne 0x43b196
mov eax, dword [ebp + 0x14]
mov dword [eax], edi
mov dword [eax + 4], ebx
jmp 0x43b2dc
mov edx, dword [ebp + 0x14]
mov eax, edx
and eax, 0xfffffff8
mov dword [ebp - 0x1c], eax
and edx, 7
mov dword [ebp - 4], edx
mov ecx, edx
shl ecx, 3
mov dword [ebp - 0xc], ecx
mov eax, 0xffffffff
shl eax, cl
test edx, edx
je 0x43b20a
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ecx + 8]
mov dword [ebp - 0x20], esi
cdq
and dword [ebp - 0x20], eax
and edx, dword [ecx + 0xc]
mov ecx, dword [ebp - 4]
neg ecx
lea ecx, [ecx*8 + 0x40]
cmp ecx, 0x1f
ja 0x43b1ec
mov esi, edi
shrd esi, ebx, cl
mov dword [ebp - 8], esi
mov esi, ebx
shr esi, cl
mov dword [ebp - 4], esi
jmp 0x43b1f8
xor esi, esi
mov dword [ebp - 4], esi
mov esi, ebx
shr esi, cl
mov dword [ebp - 8], esi
or edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x1c]
or ecx, dword [ebp - 8]
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
mov esi, dword [ebp - 0x1c]
mov ecx, esi
mov esi, dword [esi]
not eax
cdq
and esi, eax
mov eax, dword [ebp - 0xc]
and edx, dword [ecx + 4]
cmp eax, 0x1f
ja 0x43b22c
mov ecx, eax
shld ebx, edi, cl
mov eax, edi
shl eax, cl
jmp 0x43b234
mov ecx, eax
xor eax, eax
mov ebx, edi
shl ebx, cl
or esi, eax
mov eax, dword [ebp - 0x1c]
or edx, ebx
mov dword [eax], esi
mov dword [eax + 4], edx
jmp 0x43b2dc
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 0x14]
push eax
push dword [esi]
push edx
call fcn.004a3b10
add esp, 0xc
jmp 0x43b2dc
mov eax, dword [esi]
mov esi, eax
and esi, 0xfffffffe
and eax, 1
je 0x43b27b
movsx edx, word [esi + 2]
mov ebx, eax
neg ebx
lea ecx, [ebx*8 + 0x10]
shl edx, cl
jmp 0x43b27d
xor edx, edx
movzx esi, word [esi]
shl eax, 3
mov ecx, eax
sar esi, cl
mov edi, 0xffffffff
mov eax, dword [ebp + 0x14]
or edx, esi
mov esi, eax
and esi, 0xfffffffe
and eax, 1
mov ebx, eax
shl ebx, 3
mov ecx, ebx
shl edi, cl
test eax, eax
je 0x43b2cc
movzx ecx, word [esi + 2]
mov dword [ebp - 0x1c], edi
and ecx, edi
mov dword [ebp - 0x20], ecx
movzx edi, dx
neg eax
lea ecx, [eax*8 + 0x10]
mov eax, dword [ebp - 0x20]
sar edi, cl
or eax, edi
mov edi, dword [ebp - 0x1c]
mov word [esi + 2], ax
movzx eax, word [esi]
not edi
and eax, edi
mov ecx, ebx
shl edx, cl
or eax, edx
mov word [esi], ax
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x10]
xor eax, eax
mov esp, ebp
pop ebp
ret
cmp eax, 0x19
jl 0x43b404
cmp eax, 0x1f
jle 0x43b31a
cmp eax, 0x32
jl 0x43b308
cmp eax, 0x34
jle 0x43b31a
jmp 0x43b404
cmp eax, 0x28
jl 0x43b404
cmp eax, 0x30
jg 0x43b404
mov edx, dword [eax*4 + 0x4b979c]
mov eax, dword [ebp + 0x10]
movsx edi, byte [eax + 0x148]
cmp edx, 0xffffffff
je 0x43b35a
mov eax, dword [esi]
mov ecx, edi
shl ecx, 2
mov ebx, edi
shl ebx, 5
sub ebx, ecx
mov ecx, dword [ebx + edx*4 + 0x4b9880]
test ecx, ecx
je 0x43b36c
mov edx, dword [ebp + 0x14]
push edx
push 0
push eax
call ecx
add esp, 0xc
cmp eax, 1
je 0x43b3a1
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x10]
mov eax, 0x5f
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0xc]
cmp edx, 4
jne 0x43b37d
mov edx, dword [ebp + 0x14]
mov eax, dword [eax]
mov dword [edx], eax
jmp 0x43b3a1
mov ebx, dword [ebp + 0x14]
mov edx, dword [eax]
mov dword [ebx], edx
mov edx, dword [ebp + 0xc]
mov ecx, dword [eax + 4]
mov dword [ebx + 4], ecx
cmp edx, 8
je 0x43b3a1
mov ecx, dword [ebp + 0x14]
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov eax, dword [ebp + 0x10]
movzx edx, byte [eax + 0x15d]
test dl, 0x20
je 0x43b404
test edi, edi
je 0x43b3c1
mov eax, dword [esi + 8]
cmp eax, 0x34
je 0x43b3c1
cmp eax, 0x32
jne 0x43b404
mov eax, dword [ebp + 0xc]
mov ebx, eax
shr ebx, 0x1f
add ebx, eax
sar ebx, 1
jle 0x43b404
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0xc]
mov dword [ebp - 8], ebx
xor eax, eax
lea edx, [edx + ecx]
mov dword [ebp - 0xc], edx
mov edx, dword [ebp + 0x14]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
movzx ebx, byte [eax + edx]
sub esi, eax
movzx ecx, byte [esi - 1]
xor ecx, ebx
xor ebx, ecx
mov byte [eax + edx], bl
add eax, 1
xor byte [esi - 1], cl
cmp eax, edi
jl 0x43b3e3
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x10]
xor eax, eax
mov esp, ebp
pop ebp
ret
movzx eax, byte [edx]
mov edx, dword [ebp + 0x14]
mov byte [edx], al
jmp 0x43b2dc
mov edx, dword [ebp + 0x14]
mov esi, dword [esi]
movzx eax, byte [esi]
mov byte [edx], al
jmp 0x43b2dc