Function at 0x5414b0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x24
push ebx
mov ebx, dword [esp + 0x34]
push ebp
mov ebp, ecx
test ebx, ebx
jne 0x5414c9
pop ebp
mov al, 1
pop ebx
add esp, 0x24
ret 0x14
push edi
mov edi, dword [esp + 0x38]
test edi, edi
jne 0x5414ed
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
push str.NULL_passed_to_OFB_encryptor
call edx
pop edi
pop ebp
xor al, al
pop ebx
add esp, 0x24
ret 0x14
mov ecx, dword [ebp + 0x80]
cmp ecx, 1
ja 0x54151c
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
mov eax, dword [ebp]
push ecx
mov ecx, dword [esp + 0x38]
push edx
mov edx, dword [eax + 0x18]
push ebx
push edi
push ecx
mov ecx, ebp
call edx
pop edi
pop ebp
pop ebx
add esp, 0x24
ret 0x14
xor edx, edx
mov eax, ebx
div ecx
test edx, edx
je 0x541541
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
push str.OFB_input_not_a_multiple_of_the_cipher_block_size.
call edx
pop edi
pop ebp
xor al, al
pop ebx
add esp, 0x24
ret 0x14
mov dword [esp + 0x38], eax
test eax, eax
je 0x541536
mov al, byte [0x643062]
mov ecx, dword [esp + 0x40]
push esi
mov byte [esp + 0x40], al
call fcn.0051d090
mov ecx, dword [esp + 0x44]
mov esi, eax
lea eax, [esi + ebx]
mov dword [esp + 0x10], eax
add eax, 0x20
push eax
call fcn.0044b660
test al, al
jne 0x541592
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx]
mov eax, dword [edx + 0x14]
push str.Unable_to_allocate_OFB_encrypt_output_buffer.
call eax
pop esi
pop edi
pop ebp
xor al, al
pop ebx
add esp, 0x24
ret 0x14
mov ecx, dword [esp + 0x44]
push esi
call fcn.00446fb0
cmp byte [esp + 0x40], 0
mov esi, eax
je 0x541674
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x38], edi
mov edi, esi
mov esi, dword [ebp + 0x80]
add ebx, 8
xor eax, eax
mov dword [esp + 0x40], ebx
mov dword [esp + 0x48], edi
test esi, esi
jbe 0x5415e2
lea ecx, [esp + 0x14]
sub ebx, ecx
lea ecx, [esp + eax + 0x14]
mov dl, byte [ebx + ecx]
mov byte [esp + eax + 0x24], dl
inc eax
mov byte [ecx], dl
cmp eax, esi
jb 0x5415d0
mov edx, dword [ebp]
mov edx, dword [edx + 0x10]
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x18]
push ecx
mov ecx, ebp
call edx
xor eax, eax
cmp dword [ebp + 0x80], eax
jbe 0x541631
mov esi, dword [esp + 0x38]
mov edx, edi
lea ecx, [esp + 0x24]
sub esi, edi
sub edx, ecx
mov edi, edi
lea ecx, [esp + eax + 0x24]
lea edi, [edx + ecx]
mov bl, byte [edi + esi]
xor bl, byte [ecx]
inc eax
mov byte [edi], bl
mov cl, byte [ecx]
mov byte [esp + eax + 0x13], cl
cmp eax, dword [ebp + 0x80]
jb 0x541610
mov edi, dword [esp + 0x48]
mov eax, dword [ebp + 0x80]
add dword [esp + 0x38], eax
add edi, eax
sub dword [esp + 0x3c], 1
mov dword [esp + 0x48], edi
jne 0x5415e2
xor ecx, ecx
test eax, eax
jbe 0x5417a9
mov eax, dword [esp + 0x40]
lea esi, [esp + 0x24]
sub esi, eax
lea esp, [esp]
mov dl, byte [esi + eax]
mov byte [eax], dl
inc ecx
inc eax
cmp ecx, dword [ebp + 0x80]
jb 0x541660
jmp 0x5417a9
mov eax, dword [ebp + 0x80]
cmp eax, 0x10
jne 0x541742
mov eax, dword [esp + 0x38]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x24], ecx
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x18], edx
mov dword [esp + 0x28], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], eax
mov edx, dword [ebp]
mov edx, dword [edx + 0x10]
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x18]
push ecx
mov ecx, ebp
call edx
mov edx, dword [edi + 4]
mov ecx, dword [edi]
xor edx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
xor ecx, eax
mov dword [esi + 4], edx
mov dword [esi], ecx
mov edx, dword [edi + 8]
mov ebx, dword [edi + 0xc]
xor edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
xor ebx, ecx
mov dword [esi + 8], edx
mov edx, dword [esp + 0x28]
mov dword [esi + 0xc], ebx
mov ebx, dword [esp + 0x2c]
add edi, 0x10
add esi, 0x10
sub dword [esp + 0x3c], 1
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ecx
jne 0x5416b3
mov esi, dword [esp + 0x38]
mov dword [esi + 0x14], ecx
mov ecx, dword [esp + 0x10]
mov dword [esi + 8], eax
mov eax, ebx
push ecx
mov ecx, dword [esp + 0x48]
mov dword [esi + 0xc], edx
mov dword [esi + 0x10], eax
call fcn.004471d0
pop esi
pop edi
pop ebp
mov al, 1
pop ebx
add esp, 0x24
ret 0x14
cmp eax, 8
jne 0x5417b7
mov eax, dword [esp + 0x38]
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], eax
lea ecx, [ecx]
mov edx, dword [ebp]
mov edx, dword [edx + 0x10]
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x18]
push ecx
mov ecx, ebp
call edx
mov edx, dword [edi + 4]
mov ecx, dword [edi]
mov eax, dword [esp + 0x24]
xor edx, dword [esp + 0x28]
xor ecx, eax
mov dword [esi], ecx
mov ecx, dword [esp + 0x28]
mov dword [esi + 4], edx
add edi, 8
add esi, 8
sub ebx, 1
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ecx
jne 0x541760
mov edx, dword [esp + 0x38]
mov dword [edx + 8], eax
mov dword [edx + 0xc], ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x44]
push eax
call fcn.004471d0
pop esi
pop edi
pop ebp
mov al, 1
pop ebx
add esp, 0x24
ret 0x14