Function at 0x540ec0
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [esp + 0xc]
sub esp, 0x34
push edi
mov edi, ecx
test eax, eax
jne 0x540ed7
mov al, 1
pop edi
add esp, 0x34
ret 0x14
push ebp
mov ebp, dword [esp + 0x44]
test ebp, ebp
jne 0x540efa
mov ecx, dword [esp + 0x50]
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
push str.NULL_passed_to_CFB_encryptor
call edx
pop ebp
xor al, al
pop edi
add esp, 0x34
ret 0x14
mov ecx, dword [edi + 0x80]
cmp ecx, 1
ja 0x540f27
mov ecx, dword [esp + 0x50]
mov edx, dword [edi]
mov edx, dword [edx + 0x18]
push ecx
mov ecx, dword [esp + 0x50]
push ecx
push eax
mov eax, dword [esp + 0x4c]
push ebp
push eax
mov ecx, edi
call edx
pop ebp
pop edi
add esp, 0x34
ret 0x14
xor edx, edx
div ecx
test edx, edx
je 0x540f49
mov ecx, dword [esp + 0x50]
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
push str.CFB_input_not_a_multiple_of_the_cipher_block_size.
call edx
pop ebp
xor al, al
pop edi
add esp, 0x34
ret 0x14
push ebx
mov ebx, eax
mov dword [esp + 0x10], ebx
test ebx, ebx
jne 0x540f5f
pop ebx
pop ebp
xor al, al
pop edi
add esp, 0x34
ret 0x14
mov al, byte [0x643062]
mov ecx, dword [esp + 0x50]
push esi
mov byte [esp + 0x13], al
call fcn.0051d090
mov ecx, dword [esp + 0x50]
mov esi, eax
lea eax, [esi + ecx]
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x50], eax
add eax, 0x20
push eax
call fcn.0044b660
test al, al
jne 0x540fac
mov ecx, dword [esp + 0x58]
mov edx, dword [ecx]
mov eax, dword [edx + 0x14]
push str.Unable_to_allocate_CFB_encrypt_output_buffer.
call eax
pop esi
pop ebx
pop ebp
xor al, al
pop edi
add esp, 0x34
ret 0x14
mov ecx, dword [esp + 0x54]
push esi
call fcn.00446fb0
cmp byte [esp + 0x13], 0
mov esi, eax
mov eax, dword [edi + 0x80]
je 0x541089
mov ebp, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
add ebp, 8
mov dword [esp + 0x58], ebp
mov dword [esp + 0x48], ecx
mov ebx, esi
test eax, eax
jbe 0x540ff1
push eax
lea edx, [esp + 0x38]
push ebp
push edx
call fcn.00554d40
add esp, 0xc
mov eax, dword [edi]
mov eax, dword [eax + 0x10]
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x38]
push edx
mov ecx, edi
call eax
xor ecx, ecx
cmp dword [edi + 0x80], ecx
jbe 0x54103d
mov ebp, dword [esp + 0x48]
lea edx, [esp + 0x24]
mov esi, ebx
mov eax, edx
sub ebp, edx
sub esi, eax
mov edi, edi
lea edx, [esp + ecx + 0x24]
mov al, byte [edx + ebp]
xor al, byte [edx]
inc ecx
mov byte [esi + edx], al
mov byte [esp + ecx + 0x33], al
cmp ecx, dword [edi + 0x80]
jb 0x541020
mov ebp, dword [esp + 0x58]
mov eax, dword [edi + 0x80]
add dword [esp + 0x48], eax
add ebx, eax
sub dword [esp + 0x14], 1
jne 0x540ff1
sub ebx, eax
xor ecx, ecx
test eax, eax
jbe 0x54106f
mov esi, ebx
mov eax, ebp
sub esi, ebp
mov edi, edi
mov dl, byte [esi + eax]
mov byte [eax], dl
inc ecx
inc eax
cmp ecx, dword [edi + 0x80]
jb 0x541060
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
push eax
call fcn.004471d0
pop esi
pop ebx
pop ebp
mov al, 1
pop edi
add esp, 0x34
ret 0x14
cmp eax, 0x10
jne 0x54114b
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov dword [esp + 0x24], ecx
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x28], edx
mov edx, dword [eax + 0x14]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], edx
mov eax, dword [edi]
mov eax, dword [eax + 0x10]
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x28]
push edx
mov ecx, edi
call eax
mov ecx, dword [ebp]
mov edx, dword [ebp + 4]
xor ecx, dword [esp + 0x14]
xor edx, dword [esp + 0x18]
mov dword [esi], ecx
mov dword [esi + 4], edx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
xor eax, dword [esp + 0x1c]
xor ecx, dword [esp + 0x20]
mov edx, dword [esi]
mov dword [esi + 8], eax
mov eax, dword [esi + 4]
mov dword [esi + 0xc], ecx
mov ecx, dword [esi + 8]
mov dword [esp + 0x24], edx
mov edx, dword [esi + 0xc]
add ebp, 0x10
add esi, 0x10
sub ebx, 1
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], edx
jne 0x5410b2
mov ecx, dword [esi - 0x10]
mov eax, dword [esp + 0x48]
sub esi, 0x10
mov dword [eax + 8], ecx
mov edx, dword [esi + 4]
mov dword [eax + 0xc], edx
mov ecx, dword [esi + 8]
mov dword [eax + 0x10], ecx
mov edx, dword [esi + 0xc]
mov ecx, dword [esp + 0x54]
mov dword [eax + 0x14], edx
mov eax, dword [esp + 0x50]
push eax
call fcn.004471d0
pop esi
pop ebx
pop ebp
mov al, 1
pop edi
add esp, 0x34
ret 0x14
cmp eax, 8
jne 0x5411bd
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edx
mov eax, dword [edi]
mov eax, dword [eax + 0x10]
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x18]
push edx
mov ecx, edi
call eax
mov ecx, dword [ebp]
mov edx, dword [ebp + 4]
xor ecx, dword [esp + 0x24]
xor edx, dword [esp + 0x28]
mov dword [esi], ecx
mov eax, ecx
mov dword [esi + 4], edx
mov ecx, edx
add ebp, 8
add esi, 8
sub ebx, 1
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ecx
jne 0x541162
mov edx, dword [esi - 8]
mov eax, dword [esp + 0x48]
mov dword [eax + 8], edx
mov ecx, dword [esi - 4]
mov edx, dword [esp + 0x50]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x54]
push edx
call fcn.004471d0
pop esi
pop ebx
pop ebp
mov al, 1
pop edi
add esp, 0x34
ret 0x14