Function at 0x5298c0
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 0x5298d9
mov al, 1
pop edi
mov esp, ebp
pop ebp
ret 0x14
push esi
mov esi, dword [ebp + 0xc]
test esi, esi
jne 0x5298fa
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 0x529924
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 0x529945
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 0x52993b
mov al, byte [0x6775b2]
mov ecx, dword [ebp + 0x14]
push ebx
mov byte [ebp - 1], al
call fcn.00410b60
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.004156b0
test al, al
jne 0x529992
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.00410bd0
cmp byte [ebp - 1], 0
mov ebx, eax
mov eax, dword [edi + 0x80]
je 0x529a6c
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 0x5299d0
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 0x529a15
mov esi, dword [ebp + 8]
mov edx, dword [ebp + 0x18]
lea eax, [ebp - 0x38]
sub esi, eax
sub edx, eax
jmp 0x529a00
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 0x529a00
mov esi, dword [edi + 0x80]
add dword [ebp + 0x18], esi
xor eax, eax
test esi, esi
je 0x529a3e
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 0x529a30
add dword [ebp + 8], esi
dec dword [ebp - 8]
jne 0x5299d0
xor ecx, ecx
cmp esi, ecx
jbe 0x529b68
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 0x529a58
jmp 0x529b68
cmp eax, 0x10
jne 0x529b14
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 0x529a92
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.00410de0
pop ebx
pop esi
mov al, 1
pop edi
mov esp, ebp
pop ebp
ret 0x14
cmp eax, 8
jne 0x529b74
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 0x529b28
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.00410de0
pop ebx
pop esi
mov al, 1
pop edi
mov esp, ebp
pop ebp
ret 0x14