Function at 0x52d590
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x6c
call fcn.005c85a0
mov eax, dword [0x679dc8]
xor eax, esp
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x80]
push ebx
mov ebx, dword [esp + 0x7c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x74]
push ebp
mov dword [esp + 0xc], eax
xor ebp, ebp
mov eax, dword [esp + 0x7c]
push esi
mov esi, dword [esp + 0x88]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], eax
mov dword [esp + 0x18], 0
call fcn.004af5e0
mov dword [esp + 0x14], eax
test eax, eax
je 0x52d788
test esi, esi
mov eax, ebx
push edi
cmovne eax, esi
push ebx
mov dword [esp + 0x24], eax
call fcn.004ab680
mov edi, eax
add esp, 4
mov dword [esp + 0x28], edi
test edi, edi
js 0x52d787
mov ebx, dword [esp + 0x94]
cmp ebx, 0xffffffff
jne 0x52d686
mov ebx, edi
mov dword [esp + 0x94], ebx
mov eax, dword [esp + 0x14]
push dword [eax + 0x14]
call fcn.004c06d0
push dword [esp + 0x18]
lea esi, [eax - 1]
and esi, 7
mov dword [esp + 0x2c], esi
call fcn.00553ea0
mov edx, eax
mov ecx, esi
mov eax, 0xff
add esp, 8
shl eax, cl
mov ecx, dword [esp + 0x10]
test byte [ecx], al
je 0x52d6b7
call fcn.004a9920
push str.RSA_verify_PKCS1_PSS_mgf1
push 0
push 0x66fd1f
call fcn.004a9a20
push 0
push 0x85
push 4
call fcn.004a9a30
add esp, 0x18
jmp 0x52d787
cmp ebx, 0xfffffffd
jge 0x52d625
call fcn.004a9920
push str.RSA_verify_PKCS1_PSS_mgf1
push 0
push 0x66fd1f
call fcn.004a9a20
push 0
push 0x88
push 4
call fcn.004a9a30
add esp, 0x18
jmp 0x52d787
test esi, esi
jne 0x52d6bc
dec edx
cmp dword [esp + 0x24], ebp
lea esi, [ecx + 1]
lea eax, [edi + 2]
cmovne esi, ecx
cmp edx, eax
jl 0x52d714
mov ecx, edx
sub ecx, edi
lea eax, [ecx - 2]
cmp ebx, 0xfffffffd
jne 0x52d710
mov dword [esp + 0x94], eax
cmp byte [esi + edx - 1], 0xbc
je 0x52d73a
call fcn.004a9920
push str.RSA_verify_PKCS1_PSS_mgf1
push 0
push 0x66fd1f
call fcn.004a9a20
push 0
push 0x86
push 4
call fcn.004a9a30
add esp, 0x18
jmp 0x52d787
cmp ebx, eax
jle 0x52d6e0
call fcn.004a9920
push str.RSA_verify_PKCS1_PSS_mgf1
push 0
push 0x66fd1f
call fcn.004a9a20
push 0
push 0x6d
push 4
call fcn.004a9a30
add esp, 0x18
jmp 0x52d787
lea ebp, [ecx - 1]
push 0
push 0x66fd1f
lea ebx, [esi + ebp]
push ebp
mov dword [esp + 0x38], ebx
call fcn.004a53d0
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x52d7ba
call fcn.004a9920
push str.RSA_verify_PKCS1_PSS_mgf1
push 0
push 0x66fd1f
call fcn.004a9a20
push 0
push 0xc0100
push 4
call fcn.004a9a30
add esp, 0x18
mov ebp, dword [esp + 0x10]
pop edi
push 0
push 0x66fd1f
push ebp
call fcn.004a5400
push dword [esp + 0x20]
call fcn.004af550
mov ecx, dword [esp + 0x84]
add esp, 0x10
mov eax, dword [esp + 0x18]
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.005c7d0a
add esp, 0x6c
ret
push dword [esp + 0x20]
push edi
push ebx
push ebp
push eax
call fcn.005552d0
add esp, 0x14
test eax, eax
js 0x52d783
xor ecx, ecx
mov dword [esp + 0x14], ecx
test ebp, ebp
jle 0x52d8ae
mov edx, dword [esp + 0x10]
cmp ebp, 0x40
jb 0x52d88c
lea eax, [esi - 1]
mov dword [esp + 0x14], ecx
add eax, ebp
cmp edx, eax
ja 0x52d803
lea eax, [edx - 1]
add eax, ebp
cmp eax, esi
jae 0x52d88c
mov eax, ebp
and eax, 0x8000003f
jns 0x52d811
dec eax
or eax, 0xffffffc0
inc eax
mov edi, ebp
sub edi, eax
lea eax, [edx + 0x10]
mov dword [esp + 0x14], edi
mov edi, esi
sub edi, edx
mov dword [esp + 0x20], edi
lea edi, [esi + 0x30]
mov ebx, dword [esp + 0x20]
nop dword [eax + eax]
movups xmm0, xmmword [eax - 0x10]
add ecx, 0x40
lea edi, [edi + 0x40]
lea eax, [eax + 0x40]
movups xmm1, xmmword [edi - 0x70]
pxor xmm1, xmm0
movups xmmword [eax - 0x50], xmm1
movups xmm0, xmmword [eax - 0x40]
movups xmm1, xmmword [ebx + eax - 0x40]
pxor xmm1, xmm0
movups xmmword [eax - 0x40], xmm1
movups xmm0, xmmword [eax - 0x30]
movups xmm1, xmmword [edi - 0x50]
pxor xmm1, xmm0
movups xmm0, xmmword [edi - 0x40]
movups xmmword [eax - 0x30], xmm1
movups xmm1, xmmword [eax - 0x20]
pxor xmm1, xmm0
movups xmmword [eax - 0x20], xmm1
cmp ecx, dword [esp + 0x14]
jl 0x52d830
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x14], ecx
cmp ecx, ebp
jge 0x52d8ae
add ecx, edx
sub esi, edx
mov edx, ebp
sub edx, dword [esp + 0x14]
nop word [eax + eax]
mov al, byte [esi + ecx]
lea ecx, [ecx + 1]
xor byte [ecx - 1], al
sub edx, 1
jne 0x52d8a0
mov eax, dword [esp + 0x24]
test eax, eax
je 0x52d8cc
mov ecx, 8
mov edx, 0xff
sub ecx, eax
mov eax, dword [esp + 0x10]
sar edx, cl
and byte [eax], dl
jmp 0x52d8d0
mov eax, dword [esp + 0x10]
xor esi, esi
cmp byte [eax], 0
jne 0x52d8eb
lea ecx, [ebp - 1]
nop word [eax + eax]
cmp esi, ecx
jge 0x52d8eb
inc esi
cmp byte [esi + eax], 0
je 0x52d8e0
mov al, byte [esi + eax]
inc esi
cmp al, 1
je 0x52d915
call fcn.004a9920
push str.RSA_verify_PKCS1_PSS_mgf1
push 0
push 0x66fd1f
call fcn.004a9a20
push 0
push 0x87
jmp 0x52d779
mov eax, dword [esp + 0x94]
sub ebp, esi
cmp eax, 0xfffffffe
je 0x52d95f
cmp ebp, eax
je 0x52d95f
call fcn.004a9920
push str.RSA_verify_PKCS1_PSS_mgf1
push 0
push 0x66fd1f
call fcn.004a9a20
mov eax, dword [esp + 0xa0]
push ebp
push eax
push str.expected:__d_retrieved:__d
push 0x88
push 4
call fcn.004a9a30
add esp, 0x20
jmp 0x52d783
push 0
push dword [esp + 0x34]
push dword [esp + 0x20]
call fcn.004aef70
add esp, 0xc
test eax, eax
je 0x52d783
push 8
push 0x62dd2c
push dword [esp + 0x20]
call fcn.004aefb0
add esp, 0xc
test eax, eax
je 0x52d783
push edi
push dword [esp + 0x38]
push dword [esp + 0x20]
call fcn.004aefb0
add esp, 0xc
test eax, eax
je 0x52d783
test ebp, ebp
je 0x52d9d0
push ebp
mov ebp, dword [esp + 0x14]
lea eax, [esi + ebp]
push eax
push dword [esp + 0x20]
call fcn.004aefb0
add esp, 0xc
test eax, eax
je 0x52d787
jmp 0x52d9d4
mov ebp, dword [esp + 0x10]
push 0
lea eax, [esp + 0x3c]
push eax
push dword [esp + 0x20]
call fcn.004aee50
add esp, 0xc
test eax, eax
je 0x52d787
lea ecx, [esp + 0x38]
sub edi, 4
jb 0x52da09
mov eax, dword [ecx]
cmp eax, dword [ebx]
jne 0x52da0e
add ecx, 4
add ebx, 4
sub edi, 4
jae 0x52d9f8
cmp edi, 0xfffffffc
je 0x52da6c
mov al, byte [ecx]
cmp al, byte [ebx]
jne 0x52da3b
cmp edi, 0xfffffffd
je 0x52da6c
mov al, byte [ecx + 1]
cmp al, byte [ebx + 1]
jne 0x52da3b
cmp edi, 0xfffffffe
je 0x52da6c
mov al, byte [ecx + 2]
cmp al, byte [ebx + 2]
jne 0x52da3b
cmp edi, 0xffffffff
je 0x52da6c
mov al, byte [ecx + 3]
cmp al, byte [ebx + 3]
je 0x52da6c
call fcn.004a9920
push str.RSA_verify_PKCS1_PSS_mgf1
push 0
push 0x66fd1f
call fcn.004a9a20
push 0
push 0x68
push 4
call fcn.004a9a30
add esp, 0x18
mov dword [esp + 0x1c], 0
jmp 0x52d787
mov dword [esp + 0x1c], 1
jmp 0x52d787