Function at 0x6126d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x68
call fcn.005b9f40
mov esi, eax
test eax, eax
je 0x612741
mov ebp, dword [esp + 0x88]
mov eax, dword [esp + 0x84]
test ebp, ebp
cmove ebp, eax
push eax
call fcn.005c4cc0
add esp, 4
test eax, eax
js 0x612741
mov ecx, dword [esp + 0x90]
mov edx, eax
cmp ecx, 0xffffffff
je 0x61274a
mov edx, ecx
cmp ecx, 0xfffffffb
jg 0x61274a
call fcn.005b7120
push str.RSA_verify_PKCS1_PSS_mgf1
push 0x46
push str.crypto_rsa_rsa_pss.c
call fcn.005b7220
add esp, 0xc
push 0
push 0x88
push 4
call fcn.005b7310
add esp, 0xc
xor ebx, ebx
xor edi, edi
jmp 0x6127f1
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.00589790
add esp, 4
mov ebx, eax
dec ebx
and ebx, 7
push edi
call fcn.0060aa10
add esp, 4
movzx edx, byte [esi]
mov ecx, ebx
shr edx, cl
test edx, edx
je 0x6127a8
call fcn.005b7120
push str.RSA_verify_PKCS1_PSS_mgf1
push 0x4d
push str.crypto_rsa_rsa_pss.c
call fcn.005b7220
add esp, 0xc
push 0
push 0x85
jmp 0x6127df
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 0x612817
call fcn.005b7120
push str.RSA_verify_PKCS1_PSS_mgf1
push 0x55
push str.crypto_rsa_rsa_pss.c
call fcn.005b7220
add esp, 0xc
push 0
push 0x6d
push 4
call fcn.005b7310
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.005dcbc0
add esp, 0xc
push esi
call fcn.005b9f60
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 0x61283e
cmp esi, edx
mov edx, esi
jle 0x61283e
call fcn.005b7120
push str.RSA_verify_PKCS1_PSS_mgf1
push 0x5b
jmp 0x6127ce
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 0x612abe
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.005dc9b0
add esp, 0xc
test eax, eax
je 0x612741
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.00723ca0
add esp, 0x14
test eax, eax
js 0x612ae3
mov eax, dword [esp + 4]
neg eax
mov dword [esp + 0x14], eax
cmp dword [esp], 0
mov edx, dword [esp + 0x8c]
jle 0x612997
xor ecx, ecx
mov ebp, 0
cmp dword [esp], 8
jb 0x612968
xor ebp, ebp
cmp dword [esp], 0x20
jb 0x612935
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 0x6128fb
cmp dword [esp], ebp
mov edx, dword [esp + 0x8c]
je 0x612997
test byte [esp], 0x18
je 0x612968
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 0x612944
cmp dword [esp], ebp
mov edx, dword [esp + 0x8c]
je 0x612997
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 0x612986
test ebx, ebx
je 0x6129a8
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 0x6129c1
cmp ecx, eax
mov ecx, ebp
jl 0x6129b0
cmp dl, 1
jne 0x612aea
mov ecx, dword [esp + 0x10]
mov eax, ecx
and eax, 0xfffffffd
cmp eax, 0xfffffffc
je 0x6129f0
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 0x612b1b
push 0
push dword [esp + 0x88]
push esi
call fcn.005ba5f0
add esp, 0xc
xor ebx, ebx
test eax, eax
je 0x6127f1
push 8
push 0xa21ffa
push esi
call fcn.005ba610
add esp, 0xc
test eax, eax
je 0x6127f1
push dword [esp + 0xc]
push dword [esp + 0x84]
push esi
call fcn.005ba610
add esp, 0xc
test eax, eax
je 0x6127f1
mov ecx, dword [esp]
sub ecx, ebp
je 0x612a5e
mov eax, edi
add eax, ebp
push ecx
push eax
push esi
call fcn.005ba610
add esp, 0xc
test eax, eax
je 0x6127f1
lea ebp, [esp + 0x28]
push 0
push ebp
push esi
call fcn.005ba790
add esp, 0xc
test eax, eax
je 0x6127f1
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 0x612b5c
call fcn.005b7120
push str.RSA_verify_PKCS1_PSS_mgf1
push 0x85
push str.crypto_rsa_rsa_pss.c
call fcn.005b7220
add esp, 0xc
push 0
push 0x68
push 4
call fcn.005b7310
add esp, 0xc
jmp 0x6127f1
call fcn.005b7120
push str.RSA_verify_PKCS1_PSS_mgf1
push 0x5f
push str.crypto_rsa_rsa_pss.c
call fcn.005b7220
add esp, 0xc
push 0
push 0x86
jmp 0x612737
xor ebx, ebx
jmp 0x6127f1
call fcn.005b7120
push str.RSA_verify_PKCS1_PSS_mgf1
push 0x6f
push str.crypto_rsa_rsa_pss.c
call fcn.005b7220
add esp, 0xc
push 0
push 0x87
push 4
call fcn.005b7310
add esp, 0xc
xor ebx, ebx
jmp 0x6127f1
mov ebx, dword [esp]
sub ebx, ebp
mov esi, ecx
call fcn.005b7120
push str.RSA_verify_PKCS1_PSS_mgf1
push 0x75
push str.crypto_rsa_rsa_pss.c
call fcn.005b7220
add esp, 0xc
push ebx
push esi
mov esi, dword [esp + 0x10]
push str.expected:__d_retrieved:__d
push 0x88
push 4
call fcn.005b7310
add esp, 0x14
xor ebx, ebx
jmp 0x6127f1
mov ebx, 1
jmp 0x6127f1