Function at 0x52d050
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x6c
call fcn.005c8080
mov eax, dword [0x678dc8]
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.004af0b0
mov dword [esp + 0x14], eax
test eax, eax
je 0x52d248
test esi, esi
mov eax, ebx
push edi
cmovne eax, esi
push ebx
mov dword [esp + 0x24], eax
call fcn.004ab140
mov edi, eax
add esp, 4
mov dword [esp + 0x28], edi
test edi, edi
js 0x52d247
mov ebx, dword [esp + 0x94]
cmp ebx, 0xffffffff
jne 0x52d146
mov ebx, edi
mov dword [esp + 0x94], ebx
mov eax, dword [esp + 0x14]
push dword [eax + 0x14]
call fcn.004c01a0
push dword [esp + 0x18]
lea esi, [eax - 1]
and esi, 7
mov dword [esp + 0x2c], esi
call fcn.00553950
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 0x52d177
call fcn.004a93e0
push str.RSA_verify_PKCS1_PSS_mgf1
push 0
push 0x66ed1f
call fcn.004a94e0
push 0
push 0x85
push 4
call fcn.004a94f0
add esp, 0x18
jmp 0x52d247
cmp ebx, 0xfffffffd
jge 0x52d0e5
call fcn.004a93e0
push str.RSA_verify_PKCS1_PSS_mgf1
push 0
push 0x66ed1f
call fcn.004a94e0
push 0
push 0x88
push 4
call fcn.004a94f0
add esp, 0x18
jmp 0x52d247
test esi, esi
jne 0x52d17c
dec edx
cmp dword [esp + 0x24], ebp
lea esi, [ecx + 1]
lea eax, [edi + 2]
cmovne esi, ecx
cmp edx, eax
jl 0x52d1d4
mov ecx, edx
sub ecx, edi
lea eax, [ecx - 2]
cmp ebx, 0xfffffffd
jne 0x52d1d0
mov dword [esp + 0x94], eax
cmp byte [esi + edx - 1], 0xbc
je 0x52d1fa
call fcn.004a93e0
push str.RSA_verify_PKCS1_PSS_mgf1
push 0
push 0x66ed1f
call fcn.004a94e0
push 0
push 0x86
push 4
call fcn.004a94f0
add esp, 0x18
jmp 0x52d247
cmp ebx, eax
jle 0x52d1a0
call fcn.004a93e0
push str.RSA_verify_PKCS1_PSS_mgf1
push 0
push 0x66ed1f
call fcn.004a94e0
push 0
push 0x6d
push 4
call fcn.004a94f0
add esp, 0x18
jmp 0x52d247
lea ebp, [ecx - 1]
push 0
push 0x66ed1f
lea ebx, [esi + ebp]
push ebp
mov dword [esp + 0x38], ebx
call fcn.004a4e90
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x52d27a
call fcn.004a93e0
push str.RSA_verify_PKCS1_PSS_mgf1
push 0
push 0x66ed1f
call fcn.004a94e0
push 0
push 0xc0100
push 4
call fcn.004a94f0
add esp, 0x18
mov ebp, dword [esp + 0x10]
pop edi
push 0
push 0x66ed1f
push ebp
call fcn.004a4ec0
push dword [esp + 0x20]
call fcn.004af020
mov ecx, dword [esp + 0x84]
add esp, 0x10
mov eax, dword [esp + 0x18]
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.005c77ea
add esp, 0x6c
ret
push dword [esp + 0x20]
push edi
push ebx
push ebp
push eax
call fcn.00554d80
add esp, 0x14
test eax, eax
js 0x52d243
xor ecx, ecx
mov dword [esp + 0x14], ecx
test ebp, ebp
jle 0x52d36e
mov edx, dword [esp + 0x10]
cmp ebp, 0x40
jb 0x52d34c
lea eax, [esi - 1]
mov dword [esp + 0x14], ecx
add eax, ebp
cmp edx, eax
ja 0x52d2c3
lea eax, [edx - 1]
add eax, ebp
cmp eax, esi
jae 0x52d34c
mov eax, ebp
and eax, 0x8000003f
jns 0x52d2d1
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 0x52d2f0
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x14], ecx
cmp ecx, ebp
jge 0x52d36e
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 0x52d360
mov eax, dword [esp + 0x24]
test eax, eax
je 0x52d38c
mov ecx, 8
mov edx, 0xff
sub ecx, eax
mov eax, dword [esp + 0x10]
sar edx, cl
and byte [eax], dl
jmp 0x52d390
mov eax, dword [esp + 0x10]
xor esi, esi
cmp byte [eax], 0
jne 0x52d3ab
lea ecx, [ebp - 1]
nop word [eax + eax]
cmp esi, ecx
jge 0x52d3ab
inc esi
cmp byte [esi + eax], 0
je 0x52d3a0
mov al, byte [esi + eax]
inc esi
cmp al, 1
je 0x52d3d5
call fcn.004a93e0
push str.RSA_verify_PKCS1_PSS_mgf1
push 0
push 0x66ed1f
call fcn.004a94e0
push 0
push 0x87
jmp 0x52d239
mov eax, dword [esp + 0x94]
sub ebp, esi
cmp eax, 0xfffffffe
je 0x52d41f
cmp ebp, eax
je 0x52d41f
call fcn.004a93e0
push str.RSA_verify_PKCS1_PSS_mgf1
push 0
push 0x66ed1f
call fcn.004a94e0
mov eax, dword [esp + 0xa0]
push ebp
push eax
push str.expected:__d_retrieved:__d
push 0x88
push 4
call fcn.004a94f0
add esp, 0x20
jmp 0x52d243
push 0
push dword [esp + 0x34]
push dword [esp + 0x20]
call fcn.004aea40
add esp, 0xc
test eax, eax
je 0x52d243
push 8
push 0x62cd2c
push dword [esp + 0x20]
call fcn.004aea80
add esp, 0xc
test eax, eax
je 0x52d243
push edi
push dword [esp + 0x38]
push dword [esp + 0x20]
call fcn.004aea80
add esp, 0xc
test eax, eax
je 0x52d243
test ebp, ebp
je 0x52d490
push ebp
mov ebp, dword [esp + 0x14]
lea eax, [esi + ebp]
push eax
push dword [esp + 0x20]
call fcn.004aea80
add esp, 0xc
test eax, eax
je 0x52d247
jmp 0x52d494
mov ebp, dword [esp + 0x10]
push 0
lea eax, [esp + 0x3c]
push eax
push dword [esp + 0x20]
call fcn.004ae920
add esp, 0xc
test eax, eax
je 0x52d247
lea ecx, [esp + 0x38]
sub edi, 4
jb 0x52d4c9
mov eax, dword [ecx]
cmp eax, dword [ebx]
jne 0x52d4ce
add ecx, 4
add ebx, 4
sub edi, 4
jae 0x52d4b8
cmp edi, 0xfffffffc
je 0x52d52c
mov al, byte [ecx]
cmp al, byte [ebx]
jne 0x52d4fb
cmp edi, 0xfffffffd
je 0x52d52c
mov al, byte [ecx + 1]
cmp al, byte [ebx + 1]
jne 0x52d4fb
cmp edi, 0xfffffffe
je 0x52d52c
mov al, byte [ecx + 2]
cmp al, byte [ebx + 2]
jne 0x52d4fb
cmp edi, 0xffffffff
je 0x52d52c
mov al, byte [ecx + 3]
cmp al, byte [ebx + 3]
je 0x52d52c
call fcn.004a93e0
push str.RSA_verify_PKCS1_PSS_mgf1
push 0
push 0x66ed1f
call fcn.004a94e0
push 0
push 0x68
push 4
call fcn.004a94f0
add esp, 0x18
mov dword [esp + 0x1c], 0
jmp 0x52d247
mov dword [esp + 0x1c], 1
jmp 0x52d247