Function at 0x535630
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0x10]
sub esp, 0x38
push edi
mov edi, ecx
test eax, eax
jne 0x535649
mov al, 1
pop edi
mov esp, ebp
pop ebp
ret 0x14
push esi
mov esi, dword [ebp + 0xc]
test esi, esi
jne 0x53566a
mov ecx, dword [ebp + 0x18]
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
push str.NULL_passed_to_CFB_decryptor
call edx
pop esi
xor al, al
pop edi
mov esp, ebp
pop ebp
ret 0x14
mov ecx, dword [edi + 0x80]
cmp ecx, 1
ja 0x535694
mov ecx, dword [ebp + 0x18]
mov edx, dword [edi]
mov edx, dword [edx + 0x1c]
push ecx
mov ecx, dword [ebp + 0x14]
push ecx
push eax
mov eax, dword [ebp + 8]
push esi
push eax
mov ecx, edi
call edx
pop esi
pop edi
mov esp, ebp
pop ebp
ret 0x14
xor edx, edx
div ecx
test edx, edx
je 0x5356b5
mov ecx, dword [ebp + 0x18]
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
push str.CFB_decrypt_input_not_a_multiple_of_the_cipher_block_size.
call edx
pop esi
xor al, al
pop edi
mov esp, ebp
pop ebp
ret 0x14
mov dword [ebp - 8], eax
test eax, eax
je 0x5356ab
mov al, byte [0x68782a]
mov ecx, dword [ebp + 0x14]
push ebx
mov byte [ebp - 1], al
call fcn.004078c0
mov ecx, dword [ebp + 0x10]
mov ebx, eax
lea eax, [ebx + ecx]
mov ecx, dword [ebp + 0x14]
mov dword [ebp + 0x10], eax
add eax, 0x20
push eax
call fcn.00420200
test al, al
jne 0x535702
mov ecx, dword [ebp + 0x18]
mov edx, dword [ecx]
mov eax, dword [edx + 0x14]
push str.Unable_to_allocate_CFB_decrypt_output_buffer.
call eax
pop ebx
pop esi
xor al, al
pop edi
mov esp, ebp
pop ebp
ret 0x14
mov ecx, dword [ebp + 0x14]
push ebx
call fcn.0041b720
cmp byte [ebp - 1], 0
mov ebx, eax
mov eax, dword [edi + 0x80]
je 0x5357dc
mov ecx, dword [ebp + 8]
add ecx, 8
mov edx, esi
mov dword [ebp - 0xc], ecx
mov dword [ebp + 8], edx
mov dword [ebp + 0x18], ebx
test eax, eax
je 0x535740
push eax
push ecx
lea eax, [ebp - 0x28]
push eax
call sub.MSVCR100.dll_memcpy
add esp, 0xc
mov edx, dword [edi]
mov edx, dword [edx + 0x10]
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0x28]
push ecx
mov ecx, edi
call edx
xor ecx, ecx
cmp dword [edi + 0x80], ecx
jbe 0x535785
mov esi, dword [ebp + 8]
mov edx, dword [ebp + 0x18]
lea eax, [ebp - 0x38]
sub esi, eax
sub edx, eax
jmp 0x535770
lea eax, [ebp + ecx - 0x38]
mov bl, byte [esi + eax]
xor bl, byte [eax]
inc ecx
mov byte [edx + eax], bl
cmp ecx, dword [edi + 0x80]
jb 0x535770
mov esi, dword [edi + 0x80]
add dword [ebp + 0x18], esi
xor eax, eax
test esi, esi
je 0x5357ae
mov edx, dword [ebp + 8]
lea ecx, [ebp - 0x28]
sub edx, ecx
lea esp, [esp]
lea ecx, [ebp + eax - 0x28]
mov bl, byte [edx + ecx]
inc eax
mov byte [ecx], bl
cmp eax, esi
jb 0x5357a0
add dword [ebp + 8], esi
dec dword [ebp - 8]
jne 0x535740
xor ecx, ecx
cmp esi, ecx
jbe 0x5358d8
mov eax, dword [ebp - 0xc]
lea esi, [ebp - 0x28]
sub esi, eax
mov dl, byte [esi + eax]
mov byte [eax], dl
inc ecx
inc eax
cmp ecx, dword [edi + 0x80]
jb 0x5357c8
jmp 0x5358d8
cmp eax, 0x10
jne 0x535884
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov dword [ebp - 0x28], ecx
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x24], edx
mov edx, dword [eax + 0x14]
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], edx
sub ebx, esi
mov eax, dword [edi]
mov eax, dword [eax + 0x10]
lea ecx, [ebp - 0x18]
push ecx
lea edx, [ebp - 0x28]
push edx
mov ecx, edi
call eax
mov ecx, dword [esi]
mov edx, dword [esi + 4]
xor ecx, dword [ebp - 0x18]
xor edx, dword [ebp - 0x14]
mov dword [ebx + esi], ecx
mov dword [ebx + esi + 4], edx
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
xor eax, dword [ebp - 0x10]
xor ecx, dword [ebp - 0xc]
mov dword [ebx + esi + 8], eax
mov dword [ebx + esi + 0xc], ecx
mov edx, dword [esi + 8]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [ebp - 0x20], edx
mov edx, dword [esi + 0xc]
add esi, 0x10
dec dword [ebp - 8]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x1c], edx
jne 0x535802
mov edx, dword [ebp + 8]
mov dword [edx + 0xc], ecx
mov ecx, dword [ebp - 0x1c]
mov dword [edx + 8], eax
mov eax, dword [ebp - 0x20]
mov dword [edx + 0x14], ecx
mov ecx, dword [ebp + 0x14]
mov dword [edx + 0x10], eax
mov edx, dword [ebp + 0x10]
push edx
call fcn.0041b930
pop ebx
pop esi
mov al, 1
pop edi
mov esp, ebp
pop ebp
ret 0x14
cmp eax, 8
jne 0x5358e4
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], edx
mov eax, dword [edi]
mov eax, dword [eax + 0x10]
lea ecx, [ebp - 0x20]
push ecx
lea edx, [ebp - 0x10]
push edx
mov ecx, edi
call eax
mov ecx, dword [esi]
mov edx, dword [esi + 4]
xor ecx, dword [ebp - 0x20]
xor edx, dword [ebp - 0x1c]
mov dword [ebx], ecx
mov dword [ebx + 4], edx
mov eax, dword [esi]
mov ecx, dword [esi + 4]
add ebx, 8
add esi, 8
dec dword [ebp - 8]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], ecx
jne 0x535898
mov edx, dword [ebp + 8]
mov dword [edx + 8], eax
mov dword [edx + 0xc], ecx
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x14]
push eax
call fcn.0041b930
pop ebx
pop esi
mov al, 1
pop edi
mov esp, ebp
pop ebp
ret 0x14