Function at 0x57b7e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5c
mov eax, dword [0x717f80]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x54], edx
push ebx
mov ebx, ecx
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x3c], ecx
push esi
mov esi, dword [ebp + 0x18]
mov dword [ebp - 0x44], esi
push edi
test eax, eax
je 0x57bd12
mov edi, dword [ebp + 0xc]
test edi, edi
jne 0x57b840
mov eax, dword [esi]
mov ecx, esi
push str.NULL_passed_to_CBC_encryptor
call dword [eax + 0x14]
pop edi
pop esi
xor al, al
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00622073
mov esp, ebp
pop ebp
ret 0x14
xor edx, edx
div dword [ebx + 0x80]
mov dword [ebp - 0x30], eax
test edx, edx
je 0x57b870
mov eax, dword [esi]
mov ecx, esi
push str.AES_CBC_input_not_a_multiple_of_the_cipher_block_size.
call dword [eax + 0x14]
pop edi
pop esi
xor al, al
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00622073
mov esp, ebp
pop ebp
ret 0x14
cmp byte [0x7da898], 0
push dword [ebp - 0x50]
je 0x57bc47
lea eax, [ecx + 8]
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 0x34], eax
call fcn.004a2c20
mov ebx, eax
mov dword [ebp - 0x28], ebx
test ebx, ebx
jne 0x57b8b8
mov eax, dword [esi]
mov ecx, esi
push str.Unable_to_allocate_CBC_encrypt_output_buffer.
call dword [eax + 0x14]
pop edi
pop esi
xor al, al
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00622073
mov esp, ebp
pop ebp
ret 0x14
mov edx, dword [ebp - 0x48]
mov esi, dword [edx + 0x80]
xor edx, edx
mov dword [ebp - 0x2c], esi
test esi, esi
je 0x57ba35
mov ecx, dword [ebp - 0x34]
cmp esi, 8
jb 0x57ba08
lea eax, [ecx - 1]
add eax, esi
lea ebx, [ebp - 0x14]
cmp ebx, eax
ja 0x57b8f2
lea eax, [ebp + esi - 0x15]
cmp eax, ecx
jae 0x57ba08
lea eax, [edi - 1]
lea ecx, [ebp - 0x14]
add eax, esi
cmp ecx, eax
mov ecx, dword [ebp - 0x34]
ja 0x57b90d
lea eax, [ebp + esi - 0x15]
cmp eax, edi
jae 0x57ba08
cmp esi, 0x40
jb 0x57b9b7
mov ebx, esi
mov eax, esi
and ebx, 0x3f
sub eax, ebx
mov dword [ebp - 0x40], ebx
mov ebx, edi
mov dword [ebp - 0x4c], eax
sub ebx, ecx
lea eax, [ecx + 0x10]
mov dword [ebp - 0x3c], ebx
lea ebx, [ebp - 0x14]
sub ebx, ecx
mov dword [ebp - 0x58], ebx
lea ebx, [ebp - 4]
mov esi, dword [ebp - 0x58]
sub ebx, ecx
mov dword [ebp - 0x38], ebx
lea ebx, [ebp + 0xc]
sub ebx, ecx
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x5c], ebx
lea ebx, [edi + 0x30]
movups xmm0, xmmword [ebx - 0x30]
mov edi, dword [ebp - 0x38]
lea ebx, [ebx + 0x40]
movups xmm1, xmmword [eax - 0x10]
lea eax, [eax + 0x40]
xorps xmm1, xmm0
movups xmm0, xmmword [eax - 0x40]
movups xmmword [ebp + edx - 0x14], xmm1
add edx, 0x40
movups xmm1, xmmword [ecx + eax - 0x40]
xorps xmm1, xmm0
movups xmm0, xmmword [ebx - 0x50]
movups xmmword [esi + eax - 0x40], xmm1
movups xmm1, xmmword [eax - 0x30]
xorps xmm1, xmm0
movups xmm0, xmmword [ebx - 0x40]
movups xmmword [edi + eax - 0x40], xmm1
mov edi, dword [ebp - 0x5c]
movups xmm1, xmmword [eax - 0x20]
xorps xmm1, xmm0
movups xmmword [edi + eax - 0x40], xmm1
mov edi, dword [ebp + 0xc]
cmp edx, dword [ebp - 0x4c]
jb 0x57b950
cmp dword [ebp - 0x40], 8
mov ebx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x34]
jb 0x57ba04
mov eax, esi
lea ebx, [ebp - 0x14]
and eax, 0xfffffff8
sub edi, ecx
sub ebx, ecx
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x40], ebx
lea eax, [ecx + edx]
mov ebx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x2c], edi
nop word [eax + eax]
movq xmm1, qword [edi + eax]
lea eax, [eax + 8]
movq xmm0, qword [eax - 8]
add edx, 8
xorps xmm1, xmm0
movq qword [ecx + eax - 8], xmm1
cmp edx, dword [ebp - 0x4c]
jb 0x57b9e0
mov edi, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x34]
cmp edx, esi
jae 0x57ba35
mov ebx, edi
add ecx, edx
sub ebx, dword [ebp - 0x34]
lea edi, [ebp - 0x14]
sub edi, dword [ebp - 0x34]
sub esi, edx
mov dword [ebp - 0x2c], edi
mov edi, dword [ebp + 0xc]
mov edx, dword [ebp - 0x2c]
mov al, byte [ecx + ebx]
lea ecx, [ecx + 1]
xor al, byte [ecx - 1]
mov byte [edx + ecx - 1], al
sub esi, 1
jne 0x57ba20
mov ebx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x48]
lea ecx, [ebp - 0x24]
push ecx
lea ecx, [ebp - 0x14]
push ecx
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x10]
push dword [esi + 0x80]
lea eax, [ebp - 0x24]
push eax
push ebx
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [esi + 0x80]
add esp, 0xc
add edi, edx
sub dword [ebp - 0x30], 1
mov dword [ebp - 0x38], edi
je 0x57bc1a
mov dword [ebp - 0x3c], edx
xor ecx, ecx
test edx, edx
je 0x57bbdb
cmp edx, 8
jb 0x57bba9
lea eax, [edi - 1]
lea ebx, [ebp - 0x14]
add eax, edx
cmp ebx, eax
lea esi, [ebp + edx - 0x15]
mov ebx, dword [ebp - 0x28]
ja 0x57baa0
cmp esi, edi
jae 0x57bba9
lea eax, [ebx - 1]
lea edi, [ebp - 0x14]
add eax, edx
cmp edi, eax
mov edi, dword [ebp - 0x38]
ja 0x57bab7
cmp esi, ebx
jae 0x57bba9
cmp edx, 0x40
jb 0x57bb64
mov esi, edx
mov eax, edx
mov edx, ebx
and esi, 0x3f
sub edx, edi
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x58], edx
sub eax, esi
lea edx, [ebp - 0x14]
mov dword [ebp - 0x5c], eax
sub edx, edi
lea esi, [ebx + 0x30]
mov ebx, dword [ebp - 0x58]
lea eax, [edi + 0x10]
mov dword [ebp - 0x2c], edx
lea edx, [ebp - 4]
sub edx, edi
mov dword [ebp - 0x40], edx
lea edx, [ebp + 0xc]
sub edx, edi
mov edi, dword [ebp - 0x2c]
mov dword [ebp - 0x4c], edx
mov edx, dword [ebp - 0x3c]
nop dword [eax]
movups xmm0, xmmword [esi - 0x30]
lea esi, [esi + 0x40]
movups xmm1, xmmword [eax - 0x10]
lea eax, [eax + 0x40]
xorps xmm1, xmm0
movups xmmword [ebp + ecx - 0x14], xmm1
add ecx, 0x40
movups xmm1, xmmword [ebx + eax - 0x40]
mov ebx, dword [ebp - 0x40]
movups xmm0, xmmword [eax - 0x40]
xorps xmm1, xmm0
movups xmmword [eax + edi - 0x40], xmm1
movups xmm0, xmmword [esi - 0x50]
movups xmm1, xmmword [eax - 0x30]
xorps xmm1, xmm0
movups xmmword [eax + ebx - 0x40], xmm1
mov ebx, dword [ebp - 0x4c]
movups xmm1, xmmword [eax - 0x20]
movups xmm0, xmmword [esi - 0x40]
xorps xmm1, xmm0
movups xmmword [eax + ebx - 0x40], xmm1
mov ebx, dword [ebp - 0x58]
cmp ecx, dword [ebp - 0x5c]
jb 0x57bb00
cmp dword [ebp - 0x44], 8
mov edi, dword [ebp - 0x38]
mov ebx, dword [ebp - 0x28]
jb 0x57bba5
sub ebx, edi
lea eax, [edi + ecx]
mov dword [ebp - 0x2c], ebx
mov esi, edx
and esi, 0xfffffff8
lea ebx, [ebp - 0x14]
sub ebx, edi
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x40], ebx
mov ebx, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x40]
movq xmm1, qword [eax + ebx]
lea eax, [eax + 8]
movq xmm0, qword [eax - 8]
add ecx, 8
xorps xmm1, xmm0
movq qword [edi + eax - 8], xmm1
cmp ecx, esi
jb 0x57bb82
mov edi, dword [ebp - 0x38]
mov ebx, dword [ebp - 0x28]
cmp ecx, edx
jae 0x57bbd8
lea esi, [ebp - 0x14]
sub ebx, edi
sub esi, edi
lea eax, [edi + ecx]
mov dword [ebp - 0x44], esi
mov esi, edx
mov edi, dword [ebp - 0x44]
sub esi, ecx
nop dword [eax]
mov cl, byte [eax + ebx]
lea eax, [eax + 1]
xor cl, byte [eax - 1]
mov byte [edi + eax - 1], cl
sub esi, 1
jne 0x57bbc0
mov edi, dword [ebp - 0x38]
mov ebx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x48]
mov eax, dword [esi]
lea ecx, [ebp - 0x24]
push ecx
lea ecx, [ebp - 0x14]
add ebx, edx
push ecx
mov ecx, esi
mov dword [ebp - 0x28], ebx
call dword [eax + 0x10]
push dword [esi + 0x80]
lea eax, [ebp - 0x24]
push eax
push ebx
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [esi + 0x80]
add esp, 0xc
add edi, edx
mov dword [ebp - 0x3c], edx
sub dword [ebp - 0x30], 1
mov dword [ebp - 0x38], edi
jne 0x57ba72
xor esi, esi
test edx, edx
je 0x57bd07
mov ecx, dword [ebp - 0x34]
sub ebx, ecx
mov edx, dword [ebp - 0x48]
nop dword [eax]
mov al, byte [ebx + ecx]
lea ecx, [ecx + 1]
mov byte [ecx - 1], al
inc esi
cmp esi, dword [edx + 0x80]
jb 0x57bc30
jmp 0x57bd07
mov ecx, dword [ebp - 0x54]
call fcn.004a2c20
mov esi, eax
test esi, esi
jne 0x57bc77
mov ecx, dword [ebp - 0x44]
push str.Unable_to_allocate_CBC_encrypt_output_buffer.
mov eax, dword [ecx]
call dword [eax + 0x14]
pop edi
pop esi
xor al, al
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00622073
mov esp, ebp
pop ebp
ret 0x14
mov edx, dword [ebp - 0x3c]
push esi
mov ecx, dword [edx + 8]
xor ecx, dword [edi]
mov eax, dword [edx + 0xc]
xor eax, dword [edi + 4]
mov dword [ebp - 0x24], ecx
mov ecx, dword [edx + 0x10]
xor ecx, dword [edi + 8]
mov dword [ebp - 0x20], eax
mov eax, dword [edx + 0x14]
xor eax, dword [edi + 0xc]
mov dword [ebp - 0x1c], ecx
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x18], eax
mov eax, dword [ebx]
push ecx
mov ecx, ebx
call dword [eax + 0x10]
sub dword [ebp - 0x30], 1
je 0x57bced
sub edi, esi
mov ecx, dword [esi]
mov eax, dword [esi + 4]
xor ecx, dword [esi + edi + 0x10]
xor eax, dword [esi + edi + 0x14]
mov dword [ebp - 0x24], ecx
mov ecx, dword [esi + edi + 0x18]
mov dword [ebp - 0x20], eax
xor ecx, dword [esi + 8]
mov eax, dword [esi + edi + 0x1c]
xor eax, dword [esi + 0xc]
add esi, 0x10
mov dword [ebp - 0x1c], ecx
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x18], eax
mov eax, dword [ebx]
push esi
push ecx
mov ecx, ebx
call dword [eax + 0x10]
sub dword [ebp - 0x30], 1
jne 0x57bcb1
mov edx, dword [ebp - 0x3c]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [edx + 8], eax
mov dword [edx + 0xc], ecx
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov dword [edx + 0x10], eax
mov dword [edx + 0x14], ecx
push dword [ebp - 0x50]
mov ecx, dword [ebp - 0x54]
call fcn.0049f0d0
mov ecx, dword [ebp - 4]
mov al, 1
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00622073
mov esp, ebp
pop ebp
ret 0x14