Function at 0x10175720
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x24
push ebx
mov ebx, dword [esp + 0x34]
test ebx, ebx
push ebp
mov ebp, ecx
jne 0x10175739
pop ebp
mov al, 1
pop ebx
add esp, 0x24
ret 0x14
push edi
mov edi, dword [esp + 0x38]
test edi, edi
jne 0x1017575d
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
push str.NULL_passed_to_OFB_decryptor
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 0x1017578c
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 + 0x1c]
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 0x101757b1
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
push str.OFB_decrypt_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
test eax, eax
mov dword [esp + 0x38], eax
je 0x101757a6
mov al, byte [0x1026e91c]
mov ecx, dword [esp + 0x40]
push esi
mov byte [esp + 0x40], al
call fcn.100f6330
mov ecx, dword [esp + 0x44]
mov esi, eax
lea eax, [esi + ebx]
mov dword [esp + 0x10], eax
add eax, 0x20
push eax
call fcn.1001cc40
test al, al
jne 0x10175802
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx]
mov eax, dword [edx + 0x14]
push str.Unable_to_allocate_OFB_decrypt_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.10018050
cmp byte [esp + 0x40], 0
mov esi, eax
je 0x101758e8
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x38], edi
mov edi, esi
mov esi, dword [ebp + 0x80]
add ebx, 8
xor eax, eax
test esi, esi
mov dword [esp + 0x40], ebx
mov dword [esp + 0x48], edi
jbe 0x10175854
lea ecx, [esp + 0x14]
sub ebx, ecx
lea ecx, [esp + eax + 0x14]
mov dl, byte [ebx + ecx]
mov byte [esp + eax + 0x24], dl
add eax, 1
cmp eax, esi
mov byte [ecx], dl
jb 0x10175840
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 0x101758a3
mov esi, dword [esp + 0x38]
mov edx, edi
lea ecx, [esp + 0x24]
sub esi, edi
sub edx, ecx
lea ecx, [esp + eax + 0x24]
lea edi, [edx + ecx]
mov bl, byte [edi + esi]
xor bl, byte [ecx]
add eax, 1
mov byte [edi], bl
cmp eax, dword [ebp + 0x80]
mov cl, byte [ecx]
mov byte [esp + eax + 0x13], cl
jb 0x10175880
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 0x10175854
xor ecx, ecx
test eax, eax
jbe 0x10175a29
mov eax, dword [esp + 0x40]
lea esi, [esp + 0x24]
sub esi, eax
mov edi, edi
mov dl, byte [esi + eax]
mov byte [eax], dl
add ecx, 1
add eax, 1
cmp ecx, dword [ebp + 0x80]
jb 0x101758d0
jmp 0x10175a29
mov eax, dword [ebp + 0x80]
cmp eax, 0x10
jne 0x101759bf
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
jmp 0x10175930
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 esi, 0x10
add edi, 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 0x10175930
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.10018270
pop esi
pop edi
pop ebp
mov al, 1
pop ebx
add esp, 0x24
ret 0x14
cmp eax, 8
jne 0x10175a37
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 ebx, [ebx]
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 esi, 8
add edi, 8
sub ebx, 1
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ecx
jne 0x101759e0
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.10018270
pop esi
pop edi
pop ebp
mov al, 1
pop ebx
add esp, 0x24
ret 0x14