Function at 0x610b10
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x68
call fcn.005b8380
mov esi, eax
test eax, eax
je 0x610b81
mov ebp, dword [esp + 0x88]
mov eax, dword [esp + 0x84]
test ebp, ebp
cmove ebp, eax
push eax
call fcn.005c3100
add esp, 4
test eax, eax
js 0x610b81
mov ecx, dword [esp + 0x90]
mov edx, eax
cmp ecx, 0xffffffff
je 0x610b8a
mov edx, ecx
cmp ecx, 0xfffffffb
jg 0x610b8a
call fcn.005b5560
push str.RSA_verify_PKCS1_PSS_mgf1
push 0x46
push str.crypto_rsa_rsa_pss.c
call fcn.005b5660
add esp, 0xc
push 0
push 0x88
push 4
call fcn.005b5750
add esp, 0xc
xor ebx, ebx
xor edi, edi
jmp 0x610c31
mov dword [esp + 0x10], edx
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov esi, dword [esp + 0x8c]
mov edi, dword [esp + 0x7c]
push dword [edi + 0x14]
call fcn.00587bd0
add esp, 4
mov ebx, eax
dec ebx
and ebx, 7
push edi
call fcn.00608e50
add esp, 4
movzx edx, byte [esi]
mov ecx, ebx
shr edx, cl
test edx, edx
je 0x610be8
call fcn.005b5560
push str.RSA_verify_PKCS1_PSS_mgf1
push 0x4d
push str.crypto_rsa_rsa_pss.c
call fcn.005b5660
add esp, 0xc
push 0
push 0x85
jmp 0x610c1f
xor ecx, ecx
test ebx, ebx
sete cl
mov edi, eax
mov dword [esp + 4], ecx
sub edi, ecx
mov ecx, dword [esp + 0xc]
lea edx, [ecx + 2]
cmp edi, edx
jge 0x610c57
call fcn.005b5560
push str.RSA_verify_PKCS1_PSS_mgf1
push 0x55
push str.crypto_rsa_rsa_pss.c
call fcn.005b5660
add esp, 0xc
push 0
push 0x6d
push 4
call fcn.005b5750
add esp, 0xc
xor ebx, ebx
xor edi, edi
mov esi, dword [esp + 8]
push 0x8c
push str.crypto_rsa_rsa_pss.c
push edi
call fcn.005db000
add esp, 0xc
push esi
call fcn.005b83a0
add esp, 4
mov eax, ebx
add esp, 0x68
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, edi
mov dword [esp], edi
sub edx, ecx
add edx, 0xfffffffe
mov esi, dword [esp + 0x10]
cmp esi, 0xfffffffd
je 0x610c7e
cmp esi, edx
mov edx, esi
jle 0x610c7e
call fcn.005b5560
push str.RSA_verify_PKCS1_PSS_mgf1
push 0x5b
jmp 0x610c0e
mov esi, dword [esp + 0x8c]
mov edi, dword [esp + 4]
add esi, edi
mov edi, dword [esp]
mov dword [esp + 0x20], esi
cmp byte [esi + edi - 1], 0xbc
mov esi, dword [esp + 8]
jne 0x610efe
mov dword [esp + 0x10], edx
mov dword [esp + 0x1c], eax
not ecx
mov dword [esp + 0x18], ecx
add edi, ecx
mov dword [esp], edi
push 0x64
push str.crypto_rsa_rsa_pss.c
push edi
call fcn.005dadf0
add esp, 0xc
test eax, eax
je 0x610b81
mov edi, eax
mov eax, dword [esp + 0x20]
mov ecx, dword [esp]
add eax, ecx
push ebp
push dword [esp + 0x10]
mov dword [esp + 0x2c], eax
push eax
push ecx
push edi
call fcn.00721ca0
add esp, 0x14
test eax, eax
js 0x610f23
mov eax, dword [esp + 4]
neg eax
mov dword [esp + 0x14], eax
cmp dword [esp], 0
mov edx, dword [esp + 0x8c]
jle 0x610dd7
xor ecx, ecx
mov ebp, 0
cmp dword [esp], 8
jb 0x610da8
xor ebp, ebp
cmp dword [esp], 0x20
jb 0x610d75
mov ebp, dword [esp]
and ebp, 0x7fffffe0
mov eax, dword [esp + 4]
add edx, eax
add edx, 0x10
xor eax, eax
movups xmm0, xmmword [edx + eax - 0x10]
movups xmm1, xmmword [edx + eax]
movups xmm2, xmmword [edi + eax]
xorps xmm2, xmm0
movups xmm0, xmmword [edi + eax + 0x10]
xorps xmm0, xmm1
movups xmmword [edi + eax], xmm2
movups xmmword [edi + eax + 0x10], xmm0
add eax, 0x20
cmp ebp, eax
jne 0x610d3b
cmp dword [esp], ebp
mov edx, dword [esp + 0x8c]
je 0x610dd7
test byte [esp], 0x18
je 0x610da8
mov eax, ebp
mov ebp, dword [esp]
and ebp, 0x7ffffff8
mov edx, dword [esp + 0x20]
movsd xmm0, qword [edx + eax]
movsd xmm1, qword [edi + eax]
xorps xmm1, xmm0
movlps qword [edi + eax], xmm1
add eax, 8
cmp ebp, eax
jne 0x610d84
cmp dword [esp], ebp
mov edx, dword [esp + 0x8c]
je 0x610dd7
mov eax, dword [esp + 4]
add eax, ebp
add edx, eax
mov dword [esp + 4], edx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
add eax, edx
add eax, dword [esp + 0x18]
sub eax, ebp
add ebp, edi
mov edx, dword [esp + 4]
movzx edx, byte [edx + ecx]
xor byte [ebp + ecx], dl
inc ecx
cmp eax, ecx
jne 0x610dc6
test ebx, ebx
je 0x610de8
mov cl, 8
sub cl, bl
mov eax, 0xff
shr eax, cl
and byte [edi], al
mov eax, dword [esp]
dec eax
xor ecx, ecx
nop
movzx edx, byte [edi + ecx]
lea ebp, [ecx + 1]
test dl, dl
jne 0x610e01
cmp ecx, eax
mov ecx, ebp
jl 0x610df0
cmp dl, 1
jne 0x610f2a
mov ecx, dword [esp + 0x10]
mov eax, ecx
and eax, 0xfffffffd
cmp eax, 0xfffffffc
je 0x610e30
mov edx, dword [esp + 0x1c]
add edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
add eax, edx
sub eax, ecx
cmp eax, ebp
jne 0x610f5b
push 0
push dword [esp + 0x88]
push esi
call fcn.005b8a30
add esp, 0xc
xor ebx, ebx
test eax, eax
je 0x610c31
push 8
push 0xaa839a
push esi
call fcn.005b8a50
add esp, 0xc
test eax, eax
je 0x610c31
push dword [esp + 0xc]
push dword [esp + 0x84]
push esi
call fcn.005b8a50
add esp, 0xc
test eax, eax
je 0x610c31
mov ecx, dword [esp]
sub ecx, ebp
je 0x610e9e
mov eax, edi
add eax, ebp
push ecx
push eax
push esi
call fcn.005b8a50
add esp, 0xc
test eax, eax
je 0x610c31
lea ebp, [esp + 0x28]
push 0
push ebp
push esi
call fcn.005b8bd0
add esp, 0xc
test eax, eax
je 0x610c31
push dword [esp + 0xc]
push dword [esp + 0x28]
push ebp
call sub.api_ms_win_crt_private_l1_1_0.dll_memcmp
add esp, 0xc
test eax, eax
je 0x610f9c
call fcn.005b5560
push str.RSA_verify_PKCS1_PSS_mgf1
push 0x85
push str.crypto_rsa_rsa_pss.c
call fcn.005b5660
add esp, 0xc
push 0
push 0x68
push 4
call fcn.005b5750
add esp, 0xc
jmp 0x610c31
call fcn.005b5560
push str.RSA_verify_PKCS1_PSS_mgf1
push 0x5f
push str.crypto_rsa_rsa_pss.c
call fcn.005b5660
add esp, 0xc
push 0
push 0x86
jmp 0x610b77
xor ebx, ebx
jmp 0x610c31
call fcn.005b5560
push str.RSA_verify_PKCS1_PSS_mgf1
push 0x6f
push str.crypto_rsa_rsa_pss.c
call fcn.005b5660
add esp, 0xc
push 0
push 0x87
push 4
call fcn.005b5750
add esp, 0xc
xor ebx, ebx
jmp 0x610c31
mov ebx, dword [esp]
sub ebx, ebp
mov esi, ecx
call fcn.005b5560
push str.RSA_verify_PKCS1_PSS_mgf1
push 0x75
push str.crypto_rsa_rsa_pss.c
call fcn.005b5660
add esp, 0xc
push ebx
push esi
mov esi, dword [esp + 0x10]
push str.expected:__d_retrieved:__d
push 0x88
push 4
call fcn.005b5750
add esp, 0x14
xor ebx, ebx
jmp 0x610c31
mov ebx, 1
jmp 0x610c31