Function at 0x43af30
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x14
mov dword [esp + 0x10], ecx
mov dword [esp + 8], 0
mov dword [esp], 0x181b1a1d
xor eax, eax
nop
nop
nop
nop
mov ecx, eax
and ecx, 1
mov esi, ecx
xor esi, 0xb19c89d9
mov edx, eax
and edx, 2
mov edi, edx
sub edi, esi
mov ebp, 0x2b
sub ebp, edi
neg esi
lea ebx, [edx + esi]
add ebx, 0x14
and ebp, 0x35
and ebx, 0x4a
or ebx, ebp
xor bl, byte [esp + eax]
xor bl, 0xb5
add bl, 0x59
mov byte [esp + eax], bl
xor ecx, 0x9bbaf00d
neg ecx
lea eax, [edx + ecx]
inc eax
mov ecx, eax
and ecx, 0xd
xor eax, 0x9bbaf00d
lea eax, [eax + ecx*2]
cmp eax, 4
jb 0x43af50
mov edi, dword [esp]
mov eax, dword [0x44bcdc]
test eax, eax
je 0x43aff6
xor ecx, ecx
mov edx, dword [0x44bce0]
nop
nop
nop
nop
nop
cmp dword [edx + ecx*8], 0x61813e67
je 0x43afd0
inc ecx
cmp eax, ecx
jne 0x43afc0
jmp 0x43aff6
mov eax, dword [edx + ecx*8 + 4]
cmp eax, edi
je 0x43aff6
lea ecx, [esp + 8]
push ecx
push 0
push 0
push 5
push 0x10
push eax
push dword [0x44bce4]
call fcn.0043d7a0
add esp, 0x1c
mov edi, eax
mov dword [esp], 0xf332314c
mov eax, 0x44000b0c
mov ecx, 0xf3
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax - 0x44000b0c]
mov edx, ecx
xor edx, eax
and edx, esi
xor edx, eax
mov esi, edx
and esi, 0xc1
mov ebx, edx
and ebx, 2
mov ebp, ebx
xor ebp, 2
imul ebp, esi
or esi, 2
imul esi, ebx
xor edx, 0xc3
add edx, ebp
add edx, esi
inc dl
mov byte [esp + eax - 0x44000b0c], dl
inc eax
dec ecx
cmp eax, 0x44000b10
jne 0x43b010
cmp edi, dword [esp]
jne 0x43b1f0
push dword [esp + 8]
call fcn.0043ae20
add esp, 4
mov ecx, dword [esp + 8]
mov dword [esp + 0xc], ecx
mov dword [esp], 0x181b1a1d
xor edx, edx
nop
nop
nop
mov edi, edx
and edi, 1
mov esi, edi
xor esi, 0xb19c89d9
mov ebp, edx
and ebp, 2
mov ebx, ebp
sub ebx, esi
mov ecx, 0x2b
sub ecx, ebx
neg esi
lea ebx, [esi + ebp]
add ebx, 0x14
and ecx, 0x35
and ebx, 0x4a
or ebx, ecx
xor bl, byte [esp + edx]
xor bl, 0xb5
add bl, 0x59
mov byte [esp + edx], bl
xor edi, 0x9bbaf00d
neg edi
lea ecx, [edi + ebp]
inc ecx
mov edx, ecx
and edx, 0xd
xor ecx, 0x9bbaf00d
lea edx, [ecx + edx*2]
cmp edx, 4
jb 0x43b080
mov edi, dword [esp]
mov edx, dword [0x44bcdc]
test edx, edx
je 0x43b128
xor esi, esi
mov ebx, dword [0x44bce0]
nop
nop
nop
cmp dword [ebx + esi*8], 0x61813e67
je 0x43b100
inc esi
cmp edx, esi
jne 0x43b0f0
jmp 0x43b128
mov edx, dword [ebx + esi*8 + 4]
cmp edx, edi
je 0x43b128
push 0
push dword [esp + 0x10]
push eax
push 5
push 0x10
push edx
push dword [0x44bce4]
mov esi, eax
call fcn.0043d7a0
add esp, 0x1c
mov edi, eax
mov eax, esi
test edi, edi
js 0x43b1e7
mov dword [esp], 0x519e9dfb
mov word [esp + 4], 0
xor ecx, ecx
movzx esi, byte [esp + ecx]
lea edx, [ecx - 0x21a63d5b]
mov edi, 0x1a63d5a
sub edi, ecx
xor esi, 0x455523e6
and edi, 0x1042146
and edx, 0x9a08c009
or edx, edi
mov edi, esi
and edi, edx
add edx, esi
add edi, edi
sub edx, edi
add dl, 0xc7
mov byte [esp + ecx], dl
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
cmp ecx, 6
jb 0x43b140
mov edi, dword [esp]
mov edx, dword [eax]
mov ecx, eax
nop
nop
nop
nop
mov ebp, dword [ecx + edx + 0x3c]
add ecx, edx
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, word [ebp + esi]
mov ebx, dword [esp + 0x28]
movzx ebx, word [ebx + esi]
test edx, edx
je 0x43b1b9
add esi, 2
cmp dx, bx
je 0x43b1a0
movzx esi, bx
mov ebx, edx
not ebx
and ebx, esi
not esi
and esi, edx
cmp esi, ebx
je 0x43b1d2
mov edx, dword [ecx]
test edx, edx
jne 0x43b190
jmp 0x43b1e7
mov edx, dword [ecx + 0x44]
mov esi, dword [esp + 0x10]
mov dword [esi + 8], edx
mov ecx, dword [ecx + 0xdc]
mov dword [esi + 0xc], ecx
xor edi, edi
push eax
call fcn.0043aeb0
add esp, 4
mov eax, edi
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret 4