Function at 0x637ab0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, 0xc4
call fcn.006d13f0
mov eax, dword [0x7c0ab4]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp + 0x18]
push ebx
mov dword [ebp - 0xb8], eax
xor ebx, ebx
mov eax, dword [ebp + 0x1c]
push esi
mov esi, dword [ebp + 0x28]
mov dword [ebp - 0x90], eax
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0xac], eax
mov dword [ebp - 0xbc], 0xffffffff
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0xa0], ebx
push edi
test eax, eax
jne 0x637b1c
call fcn.0060f500
mov dword [ebp - 0xac], eax
test esi, esi
push eax
cmove esi, eax
mov dword [ebp - 0x88], esi
call fcn.005da290
add esp, 4
mov edi, eax
mov dword [ebp - 0x98], edi
cmp dword [ebp + 0xc], ebx
jle 0x6381e1
mov esi, dword [ebp + 0x14]
test esi, esi
jle 0x6381e1
mov ecx, dword [ebp - 0xb8]
cmp ecx, esi
jl 0x6381c6
lea eax, [edi*2 + 2]
cmp ecx, eax
jl 0x6381c6
sub ecx, edi
push 0x9d
dec ecx
push str.....crypto_rsa_rsa_oaep.c
push ecx
mov dword [ebp - 0x94], ecx
call fcn.005e91f0
add esp, 0xc
mov dword [ebp - 0x8c], eax
test eax, eax
jne 0x637baf
push 0x9f
push str.....crypto_rsa_rsa_oaep.c
push 0x41
push 0x99
push 4
call fcn.005e34c0
add esp, 0x14
jmp 0x63814f
push 0xa3
push str.....crypto_rsa_rsa_oaep.c
push dword [ebp - 0xb8]
call fcn.005e91f0
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0xa0], ecx
test ecx, ecx
jne 0x637bda
push 0xa6
jmp 0x637b94
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp - 0xb8]
add edx, esi
add ecx, eax
mov dword [ebp - 0xa0], ecx
test eax, eax
jle 0x637c2a
mov ebx, eax
mov edi, ecx
mov eax, esi
lea ecx, [esi - 1]
not eax
shr ecx, 0x1f
shr eax, 0x1f
dec edi
and ecx, eax
dec ecx
mov eax, ecx
and eax, 1
sub edx, eax
sub esi, eax
and cl, byte [edx]
mov byte [edi], cl
sub ebx, 1
jne 0x637bf5
mov dword [ebp - 0xa0], edi
mov edi, dword [ebp - 0x98]
mov ecx, dword [ebp - 0xa0]
push dword [ebp - 0x88]
movzx ebx, byte [ecx]
lea eax, [ecx + 1]
push dword [ebp - 0x94]
add eax, edi
lea esi, [ecx + 1]
push eax
lea ebx, [ebx - 1]
mov dword [ebp - 0xa4], eax
lea eax, [ebp - 0x44]
shr ebx, 0x1f
push edi
push eax
neg ebx
call fcn.00637560
add esp, 0x14
test eax, eax
jne 0x63814f
xor edx, edx
test edi, edi
jle 0x637d1f
cmp edi, 0x40
jb 0x637d02
lea eax, [edi - 1]
lea ecx, [ebp + edi - 0x45]
add eax, esi
lea edi, [ebp - 0x44]
cmp edi, eax
mov edi, dword [ebp - 0x98]
ja 0x637c92
cmp ecx, esi
jae 0x637d02
mov eax, edi
and eax, 0x8000003f
jns 0x637ca0
dec eax
or eax, 0xffffffc0
inc eax
mov ecx, edi
sub ecx, eax
nop dword [eax]
nop dword [eax + eax]
movups xmm0, xmmword [ebp + edx - 0x44]
movups xmm1, xmmword [esi + edx]
pxor xmm1, xmm0
movups xmmword [ebp + edx - 0x44], xmm1
movups xmm0, xmmword [ebp + edx - 0x34]
movups xmm1, xmmword [esi + edx + 0x10]
pxor xmm1, xmm0
movups xmmword [ebp + edx - 0x34], xmm1
movups xmm0, xmmword [ebp + edx - 0x24]
movups xmm1, xmmword [esi + edx + 0x20]
pxor xmm1, xmm0
movups xmmword [ebp + edx - 0x24], xmm1
movups xmm0, xmmword [ebp + edx - 0x14]
movups xmm1, xmmword [esi + edx + 0x30]
pxor xmm1, xmm0
movups xmmword [ebp + edx - 0x14], xmm1
add edx, 0x40
cmp edx, ecx
jl 0x637cb0
cmp edx, edi
jge 0x637d1f
lea eax, [ebp - 0x44]
sub esi, eax
nop dword [eax + eax]
lea ecx, [ebp - 0x44]
add ecx, edx
inc edx
mov al, byte [ecx + esi]
xor byte [ecx], al
cmp edx, edi
jl 0x637d10
push dword [ebp - 0x88]
mov esi, dword [ebp - 0x94]
lea eax, [ebp - 0x44]
push edi
push eax
push esi
push dword [ebp - 0x8c]
call fcn.00637560
add esp, 0x14
test eax, eax
jne 0x63814f
xor edx, edx
test esi, esi
jle 0x637e44
cmp esi, 0x40
jb 0x637e17
mov eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0xa4]
dec eax
add eax, esi
mov dword [ebp - 0x88], eax
lea eax, [esi - 1]
add eax, ecx
cmp dword [ebp - 0x8c], eax
ja 0x637d88
cmp dword [ebp - 0x88], ecx
jae 0x637e17
mov eax, esi
and eax, 0x8000003f
jns 0x637d96
dec eax
or eax, 0xffffffc0
inc eax
mov dword [ebp - 0x88], esi
mov edi, ecx
sub dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x8c]
sub edi, eax
mov dword [ebp - 0x9c], edi
mov edi, dword [ebp - 0x98]
mov esi, dword [ebp - 0x9c]
nop
movups xmm0, xmmword [eax]
lea eax, [eax + 0x40]
movups xmm1, xmmword [esi + eax - 0x40]
pxor xmm1, xmm0
movups xmmword [eax - 0x40], xmm1
movups xmm0, xmmword [eax - 0x30]
movups xmm1, xmmword [ecx + edx + 0x10]
pxor xmm1, xmm0
movups xmmword [eax - 0x30], xmm1
movups xmm0, xmmword [eax - 0x20]
movups xmm1, xmmword [ecx + edx + 0x20]
pxor xmm1, xmm0
movups xmmword [eax - 0x20], xmm1
movups xmm0, xmmword [eax - 0x10]
movups xmm1, xmmword [ecx + edx + 0x30]
add edx, 0x40
pxor xmm1, xmm0
movups xmmword [eax - 0x10], xmm1
cmp edx, dword [ebp - 0x88]
jl 0x637dc0
mov esi, dword [ebp - 0x94]
cmp edx, esi
jge 0x637e44
mov eax, dword [ebp - 0x8c]
mov edi, dword [ebp - 0xa4]
sub edi, eax
sub esi, edx
lea ecx, [edx + eax]
nop
mov al, byte [ecx + edi]
lea ecx, [ecx + 1]
xor byte [ecx - 1], al
sub esi, 1
jne 0x637e30
mov edi, dword [ebp - 0x98]
push 0
push dword [ebp - 0xac]
lea eax, [ebp - 0x84]
push 0
push eax
push dword [ebp + 0x20]
push dword [ebp - 0x90]
call fcn.00618df0
add esp, 0x18
test eax, eax
je 0x63814f
push edi
lea eax, [ebp - 0x84]
push eax
push dword [ebp - 0x8c]
call fcn.00401a50
mov esi, dword [ebp - 0x98]
add esp, 0xc
lea ecx, [eax - 1]
not eax
shr ecx, 0x1f
shr eax, 0x1f
and ecx, eax
neg ecx
and ebx, ecx
mov dword [ebp - 0x88], ebx
xor ebx, ebx
cmp esi, dword [ebp - 0x94]
jge 0x637f29
nop
mov eax, dword [ebp - 0x8c]
movzx esi, byte [edi + eax]
mov eax, esi
xor eax, 1
lea edx, [eax - 1]
not eax
shr eax, 0x1f
shr edx, 0x1f
and edx, eax
mov eax, ebx
not eax
neg edx
and eax, edx
or ebx, edx
mov edx, dword [ebp - 0x88]
mov dword [ebp - 0x90], eax
not eax
mov dword [ebp - 0x9c], eax
mov ecx, dword [ebp - 0x90]
mov eax, dword [ebp - 0x9c]
and ecx, edi
and eax, dword [ebp - 0xa8]
inc edi
or eax, ecx
mov dword [ebp - 0xa8], eax
lea eax, [esi - 1]
shr eax, 0x1f
neg eax
or eax, ebx
and edx, eax
mov dword [ebp - 0x88], edx
cmp edi, dword [ebp - 0x94]
jl 0x637eb0
mov esi, dword [ebp - 0x98]
jmp 0x637f2f
mov edx, dword [ebp - 0x88]
mov edi, dword [ebp - 0x94]
mov eax, edi
sub eax, dword [ebp - 0xa8]
mov ecx, dword [ebp + 0xc]
dec eax
sub ecx, eax
mov dword [ebp - 0xbc], eax
xor ecx, eax
xor eax, dword [ebp + 0xc]
or ecx, eax
mov eax, dword [ebp + 0xc]
xor ecx, eax
shr ecx, 0x1f
dec ecx
and ecx, ebx
mov ebx, edi
and edx, ecx
sub ebx, esi
mov dword [ebp - 0x88], edx
mov dword [ebp - 0xa4], ebx
lea ecx, [ebx - 1]
mov edx, ecx
sub edx, eax
xor edx, eax
mov eax, ecx
xor eax, dword [ebp + 0xc]
or edx, eax
xor edx, ecx
lea ecx, [ebx - 1]
shr edx, 0x1f
mov ebx, 1
neg edx
mov dword [ebp - 0xb0], ecx
mov dword [ebp - 0x90], edx
not edx
mov dword [ebp - 0x9c], edx
mov eax, dword [ebp - 0x90]
mov edx, dword [ebp - 0x9c]
and eax, ecx
and edx, dword [ebp + 0xc]
or edx, eax
mov dword [ebp - 0xac], edx
cmp ecx, ebx
jle 0x638084
mov eax, dword [ebp - 0xa4]
lea edx, [esi + 1]
sub eax, dword [ebp - 0xbc]
dec eax
mov dword [ebp - 0xc0], edx
mov dword [ebp - 0xb4], eax
nop dword [eax]
and eax, ebx
sub edi, ebx
lea ecx, [eax - 1]
not eax
shr ecx, 0x1f
shr eax, 0x1f
and ecx, eax
dec ecx
cmp edx, edi
jge 0x638064
mov esi, dword [ebp - 0x8c]
movzx ecx, cl
add esi, edx
mov eax, ecx
mov dword [ebp - 0xa8], ecx
not eax
sub edi, edx
mov dword [ebp - 0xa4], eax
nop dword [eax]
nop word [eax + eax]
mov dword [ebp - 0x90], ecx
lea esi, [esi + 1]
mov dword [ebp - 0x9c], eax
movzx eax, byte [esi + ebx - 1]
mov edx, dword [ebp - 0x90]
mov ecx, dword [ebp - 0x9c]
and dl, al
movzx eax, byte [esi - 1]
and cl, al
mov eax, dword [ebp - 0xa4]
or cl, dl
mov byte [esi - 1], cl
mov ecx, dword [ebp - 0xa8]
sub edi, 1
jne 0x638020
mov edx, dword [ebp - 0xc0]
mov edi, dword [ebp - 0x94]
add ebx, ebx
mov eax, dword [ebp - 0xb4]
cmp ebx, dword [ebp - 0xb0]
jl 0x637fe0
mov edx, dword [ebp - 0xac]
mov ebx, dword [ebp - 0x88]
xor esi, esi
test edx, edx
jle 0x638129
mov eax, dword [ebp - 0xbc]
mov edi, dword [ebp - 0xbc]
shr eax, 0x1f
neg edi
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp - 0x98]
inc eax
add eax, dword [ebp - 0x8c]
mov dword [ebp - 0xb0], eax
nop
mov eax, dword [ebp - 0xb4]
mov edx, edi
shr edx, 0x1f
mov ecx, esi
xor dl, al
shr ecx, 0x1f
xor al, cl
inc edi
or dl, al
movzx eax, bl
xor dl, cl
neg dl
movzx ecx, dl
and ecx, eax
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0xc0], ecx
not ecx
mov dword [ebp - 0x90], ecx
mov edx, dword [ebp - 0xc0]
movzx eax, byte [eax + esi]
mov ecx, dword [ebp - 0x90]
and dl, al
mov eax, dword [ebp - 0xc4]
movzx eax, byte [eax + esi]
and cl, al
mov eax, dword [ebp - 0xc4]
or cl, dl
mov byte [eax + esi], cl
inc esi
cmp esi, dword [ebp - 0xac]
jl 0x6380c0
push 0x107
push str.....crypto_rsa_rsa_oaep.c
push 0x79
push 0x99
push 4
call fcn.005e34c0
mov eax, ebx
and eax, 1
push eax
call fcn.005e3710
add esp, 0x18
lea eax, [ebp - 0x44]
push 0x40
push eax
call fcn.004019e0
push 0x10b
push str.....crypto_rsa_rsa_oaep.c
push dword [ebp - 0x94]
push dword [ebp - 0x8c]
call fcn.005e9300
push 0x10c
push str.....crypto_rsa_rsa_oaep.c
push dword [ebp - 0xb8]
push dword [ebp - 0xa0]
call fcn.005e9300
add esp, 0x28
mov dword [ebp - 0xb4], ebx
not ebx
mov dword [ebp - 0xb0], ebx
mov ecx, dword [ebp - 0xb4]
and ecx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0xb0]
pop edi
pop esi
or eax, ecx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.006d0856
mov esp, ebp
pop ebp
ret
push 0x98
push str.....crypto_rsa_rsa_oaep.c
push 0x79
push 0x99
push 4
call fcn.005e34c0
add esp, 0x14
mov ecx, dword [ebp - 4]
or eax, 0xffffffff
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.006d0856
mov esp, ebp
pop ebp
ret