Function at 0x14005a260
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xc8
mov rax, qword [0x1403acd78]
xor rax, rsp
mov qword [rsp + 0xc0], rax
mov eax, dword [r9 + 8]
test eax, eax
jle 0x14005a29e
mov r12, rdx
mov rsi, rcx
mov rcx, qword [r9]
mov rdx, qword [rcx]
test dl, 1
jne 0x14005a2c2
mov dword [rsp + 0x20], 0x392
lea r9, str..._.._third_party_boringssl_src_crypto_fipsmodule_bn_exponentiation.c
xor r14d, r14d
mov ecx, 3
xor edx, edx
mov r8d, 0x68
jmp 0x14005a637
cmp dword [r9 + 0x10], 0
je 0x14005a2ed
mov dword [rsp + 0x20], 0x396
lea r9, str..._.._third_party_boringssl_src_crypto_fipsmodule_bn_exponentiation.c
xor r14d, r14d
mov ecx, 3
xor edx, edx
mov r8d, WSAGetLastError
jmp 0x14005a637
cmp dword [r12 + 0x10], 0
jne 0x14005a618
mov rdi, r8
movsxd r10, dword [r12 + 8]
mov r11, qword [r12]
mov r15, r10
sub r15, rax
mov r14, rax
cmovb r14, r10
test r14, r14
je 0x14005a395
mov qword [rsp + 0x50], r15
mov qword [rsp + 0x58], rsi
xor r8d, r8d
xor r15d, r15d
nop word [rax + rax]
mov r13, qword [rcx + r15*8]
mov rbx, qword [r11 + r15*8]
mov rsi, rbx
xor rsi, r13
mov rbp, rbx
sub rbp, r13
xor rbp, rbx
or rbp, rsi
xor rbp, rbx
mov rbx, rbp
not rbx
shr rbx, 0x3f
sar rbp, 0x3f
mov r13d, ebp
or r13, rbx
mov r8d, r8d
test rsi, rsi
cmovne r8, r13
inc r15
cmp r14, r15
jne 0x14005a330
mov rsi, qword [rsp + 0x58]
mov r15, qword [rsp + 0x50]
cmp r10d, eax
jae 0x14005a39d
mov r11, rax
sub r11, r10
cmp r11, 4
jae 0x14005a3b7
xor ebx, ebx
jmp 0x14005a4f0
xor r8d, r8d
cmp r10d, eax
jb 0x14005a382
cmp eax, r10d
jae 0x14005a613
cmp r15, 4
jae 0x14005a3e1
xor r14d, r14d
mov r15, rax
jmp 0x14005a5f0
lea r14, [r11 - 4]
mov r15, r14
shr r15, 2
inc r15
mov ebx, r15d
and ebx, 3
cmp r14, 0xc
jae 0x14005a418
pxor xmm0, xmm0
xor r14d, r14d
pxor xmm1, xmm1
jmp 0x14005a491
mov qword [rsp + 0x58], rsi
mov rbx, r15
lea rsi, [r15 - 4]
mov r15, rsi
shr r15, 2
inc r15
mov r14d, r15d
and r14d, 3
cmp rsi, 0xc
jae 0x14005a516
pxor xmm0, xmm0
xor r13d, r13d
pxor xmm1, xmm1
jmp 0x14005a58f
and r15, 0xfffffffffffffffc
lea r13, [rcx + r10*8]
add r13, 0x70
pxor xmm0, xmm0
xor r14d, r14d
pxor xmm1, xmm1
movdqu xmm2, xmmword [r13 + r14*8 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [r13 + r14*8 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [r13 + r14*8 - 0x50]
movdqu xmm3, xmmword [r13 + r14*8 - 0x40]
movdqu xmm4, xmmword [r13 + r14*8 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [r13 + r14*8 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [r13 + r14*8 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [r13 + r14*8]
por xmm1, xmm2
add r14, 0x10
add r15, 0xfffffffffffffffc
jne 0x14005a42f
mov r15, r11
and r15, 0xfffffffffffffffc
test rbx, rbx
je 0x14005a4ce
add r14, r10
lea r14, [rcx + r14*8]
add r14, 0x10
shl rbx, 5
xor r13d, r13d
nop
movdqu xmm2, xmmword [r14 + r13 - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [r14 + r13]
por xmm1, xmm2
add r13, 0x20
cmp rbx, r13
jne 0x14005a4b0
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
movq rbx, xmm1
cmp r11, r15
je 0x14005a4fc
add r10, r15
nop dword [rax + rax]
or rbx, qword [rcx + r10*8]
inc r10
cmp rax, r10
jne 0x14005a4f0
mov r10, rbx
not r10
dec rbx
and rbx, r10
sar rbx, 0x3f
not ebx
or r8d, ebx
jmp 0x14005a613
and r15, 0xfffffffffffffffc
lea rbp, [r11 + rax*8]
add rbp, 0x70
pxor xmm0, xmm0
xor r13d, r13d
pxor xmm1, xmm1
movdqu xmm2, xmmword [rbp + r13*8 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [rbp + r13*8 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [rbp + r13*8 - 0x50]
movdqu xmm3, xmmword [rbp + r13*8 - 0x40]
movdqu xmm4, xmmword [rbp + r13*8 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [rbp + r13*8 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [rbp + r13*8 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [rbp + r13*8]
por xmm1, xmm2
add r13, 0x10
add r15, 0xfffffffffffffffc
jne 0x14005a52d
mov r15, rbx
and r15, 0xfffffffffffffffc
test r14, r14
mov rsi, qword [rsp + 0x58]
je 0x14005a5d0
add r13, rax
lea r13, [r11 + r13*8]
add r13, 0x10
shl r14, 5
xor ebp, ebp
movdqu xmm2, xmmword [r13 + rbp - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [r13 + rbp]
por xmm1, xmm2
add rbp, 0x20
cmp r14, rbp
jne 0x14005a5b1
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
movq r14, xmm1
cmp rbx, r15
je 0x14005a5fc
add r15, rax
nop word [rax + rax]
or r14, qword [r11 + r15*8]
inc r15
cmp r10, r15
jne 0x14005a5f0
xor r10d, r10d
xor r11d, r11d
test r14, r14
cmove r10d, r8d
setne r11b
or r11d, r10d
mov r8d, r11d
test r8d, r8d
js 0x14005a663
mov dword [rsp + 0x20], 0x39a
lea r9, str..._.._third_party_boringssl_src_crypto_fipsmodule_bn_exponentiation.c
xor r14d, r14d
mov ecx, 3
xor edx, edx
mov r8d, WSAGetLastError
call fcn.140049240
mov rcx, qword [rsp + 0xc0]
xor rcx, rsp
call fcn.140279500
mov eax, r14d
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov ebx, dword [rdi + 8]
test ebx, ebx
je 0x14005a686
mov rcx, qword [rsp + 0x138]
mov rdx, qword [rsp + 0x130]
xor r14d, r14d
test rcx, rcx
je 0x14005a6d5
xor eax, eax
jmp 0x14005a6e9
xor rdx, 1
cmp eax, 2
jl 0x14005acac
mov r10d, 1
cmp eax, 5
jb 0x14005aca0
lea r8, [rax - 1]
movq xmm0, rdx
lea r9, [rax - 5]
mov r10, r9
shr r10, 2
inc r10
mov edx, r10d
and edx, 3
cmp r9, 0xc
jae 0x14005abe2
pxor xmm1, xmm1
xor r9d, r9d
jmp 0x14005ac4f
mov rcx, r9
call fcn.1400596e0
mov rcx, rax
test rax, rax
je 0x14005ab56
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x58], rcx
mov r13d, dword [rcx + 0x20]
mov ecx, 6
cmp ebx, 0xe
jg 0x14005a720
mov ecx, 5
cmp ebx, 4
jg 0x14005a720
mov ecx, 4
cmp ebx, 1
jg 0x14005a720
sete al
movzx eax, al
lea ecx, [rax + rax]
inc ecx
mov qword [rsp + 0x80], rbx
mov ebx, 1
shl ebx, cl
mov ebp, r13d
mov dword [rsp + 0x6c], ecx
shl ebp, cl
lea eax, [r13 + r13]
cmp eax, ebx
cmovle eax, ebx
add eax, ebp
lea ecx, [rax*8 + 0x40]
mov r15d, eax
shl r15d, 3
movsxd rcx, ecx
call fcn.14009ea60
xor r14d, r14d
test rax, rax
je 0x14005ab48
mov qword [rsp + 0x50], r13
movsxd rcx, r13d
mov qword [rsp + 0x48], rax
mov r13, rax
and r13, 0xffffffffffffffc0
add r13, 0x40
test r15d, r15d
mov qword [rsp + 0x60], rcx
je 0x14005a79a
movsxd r8, r15d
mov rcx, r13
xor edx, edx
call fcn.14027bdc0
mov rcx, qword [rsp + 0x60]
movsxd rax, ebp
mov qword [rsp + 0x30], r13
lea rax, [rax*8]
add rax, r13
mov qword [rsp + 0xa8], rax
lea rax, [rax + rcx*8]
mov qword [rsp + 0x90], rax
mov dword [rsp + 0x98], 0
mov dword [rsp + 0xb0], 0
mov rax, qword [rsp + 0x50]
mov dword [rsp + 0x9c], eax
mov dword [rsp + 0xb4], eax
movabs rax, 0x200000000
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xb8], rax
lea rcx, [rsp + 0xa8]
mov rbp, qword [rsp + 0x58]
mov rdx, rbp
mov r13, qword [rsp + 0x130]
mov r8, r13
call fcn.14005aeb0
test eax, eax
je 0x14005ae2e
mov qword [rsp + 0x20], r13
lea rcx, [rsp + 0x90]
mov rdx, r12
mov r8, rbp
mov r9, rbp
call fcn.140059900
test eax, eax
je 0x14005ae2e
lea rcx, [rsp + 0xa8]
xor r12d, r12d
mov r13, qword [rsp + 0x50]
mov edx, r13d
mov r14, qword [rsp + 0x30]
mov r8, r14
xor r9d, r9d
call fcn.14005af50
lea rcx, [rsp + 0x90]
mov edx, r13d
mov r8, r14
mov r9d, 1
call fcn.14005af50
mov r13d, dword [rsp + 0x6c]
cmp r13d, 2
mov dword [rsp + 0x3c], r15d
jb 0x14005ab64
mov rax, qword [rsp + 0x130]
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0xa8]
lea rdx, [rsp + 0x90]
mov r8, rdx
mov r9, rbp
call fcn.140059900
test eax, eax
je 0x14005ae2b
lea rcx, [rsp + 0xa8]
mov rdx, qword [rsp + 0x50]
mov r8, qword [rsp + 0x30]
mov r9d, 2
call fcn.14005af50
mov rax, qword [rsp + 0x60]
lea rcx, [rax*8]
mov qword [rsp + 0x78], rcx
cmp ebx, 5
mov ecx, 4
cmovae ecx, ebx
mov qword [rsp + 0x88], rcx
lea rax, [rax*8 + 0x70]
mov qword [rsp + 0x70], rax
mov ebx, 3
xor r14d, r14d
jmp 0x14005a964
mov dword [rsp + 0x20], 0x135
mov ecx, 3
xor edx, edx
mov r8d, WSAGetLastError
lea r9, str..._.._third_party_boringssl_src_crypto_fipsmodule_bn_bn.c
call fcn.140049240
inc rbx
cmp rbx, qword [rsp + 0x88]
mov r15d, dword [rsp + 0x3c]
mov rbp, qword [rsp + 0x58]
je 0x14005ab64
mov rax, qword [rsp + 0x130]
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0xa8]
lea rdx, [rsp + 0x90]
mov r8, rcx
mov r9, rbp
call fcn.140059900
test eax, eax
je 0x14005ae2e
cmp dword [rsp + 0xb8], 0
jne 0x14005a928
movsxd rbp, dword [rsp + 0xb0]
cmp ebp, dword [rsp + 0x50]
jbe 0x14005a9cf
mov rax, qword [rsp + 0xa8]
mov rcx, rbp
mov r11, qword [rsp + 0x60]
sub rcx, r11
cmp rcx, 4
jae 0x14005a9d9
mov r8, r11
xor edx, edx
jmp 0x14005aacf
mov r11, qword [rsp + 0x60]
jmp 0x14005aafd
lea r9, [rcx - 4]
mov r8, r9
shr r8, 2
inc r8
mov edx, r8d
and edx, 3
cmp r9, 0xc
jae 0x14005aa00
pxor xmm0, xmm0
xor r9d, r9d
pxor xmm1, xmm1
jmp 0x14005aa79
and r8, 0xfffffffffffffffc
mov r9, qword [rsp + 0x70]
lea r10, [rax + r9]
pxor xmm0, xmm0
xor r9d, r9d
pxor xmm1, xmm1
movdqu xmm2, xmmword [r10 + r9*8 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [r10 + r9*8 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [r10 + r9*8 - 0x50]
movdqu xmm3, xmmword [r10 + r9*8 - 0x40]
movdqu xmm4, xmmword [r10 + r9*8 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [r10 + r9*8 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [r10 + r9*8 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [r10 + r9*8]
por xmm1, xmm2
add r9, 0x10
add r8, 0xfffffffffffffffc
jne 0x14005aa18
mov r8, rcx
and r8, 0xfffffffffffffffc
test rdx, rdx
je 0x14005aab5
add r9, r11
lea r9, [rax + r9*8]
add r9, 0x10
shl rdx, 5
xor r10d, r10d
movdqu xmm2, xmmword [r9 + r10 - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [r9 + r10]
por xmm1, xmm2
add r10, 0x20
cmp rdx, r10
jne 0x14005aa97
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
movq rdx, xmm1
cmp rcx, r8
je 0x14005aadb
add r8, r11
or rdx, qword [rax + r8*8]
inc r8
cmp rbp, r8
jne 0x14005aacf
mov rbp, r11
test rdx, rdx
je 0x14005aafd
mov dword [rsp + 0x20], 0x13c
mov ecx, 3
xor edx, edx
mov r8d, 0x66
jmp 0x14005a93d
mov rax, rbx
imul rax, r11
mov rcx, qword [rsp + 0x30]
lea r15, [rcx + rax*8]
cmp dword [rsp + 0x50], 0
je 0x14005ab23
mov rcx, r15
xor edx, edx
mov r8, qword [rsp + 0x78]
call fcn.14027bdc0
test rbp, rbp
je 0x14005a949
shl rbp, 3
mov rdx, qword [rsp + 0xa8]
mov rcx, r15
mov r8, rbp
call fcn.14027bf80
jmp 0x14005a949
xor esi, esi
xor ebx, ebx
mov rcx, qword [rsp + 0x40]
jmp 0x14005ae3d
xor ecx, ecx
xor esi, esi
xor r15d, r15d
xor ebx, ebx
jmp 0x14005ae3d
mov r10, qword [rsp + 0x80]
shl r10d, 6
lea ebp, [r10 - 1]
mov eax, ebp
cdq
idiv r13d
test edx, edx
js 0x14005ad06
add r10d, 0xfffffffe
lea eax, [rdx + 1]
xor r12d, r12d
mov rbx, qword [rsp + 0x30]
jmp 0x14005ab9e
or r12d, ecx
dec ebp
dec eax
test eax, eax
jle 0x14005abd8
mov ecx, r12d
add ecx, r12d
mov r12d, 0
test ebp, ebp
js 0x14005ab93
mov r8d, ebp
shr r8d, 6
mov r12d, 0
cmp r8d, dword [rdi + 8]
jae 0x14005ab93
mov r8d, r8d
mov r9, qword [rdi]
mov r8, qword [r9 + r8*8]
xor r12d, r12d
bt r8, rbp
setb r12b
jmp 0x14005ab93
mov rbp, r10
sub ebp, edx
jmp 0x14005ad0b
and r10, 0xfffffffffffffffc
pxor xmm1, xmm1
xor r9d, r9d
movdqu xmm2, xmmword [rcx + r9*8 + 8]
por xmm2, xmm0
movdqu xmm0, xmmword [rcx + r9*8 + 0x18]
por xmm0, xmm1
movdqu xmm1, xmmword [rcx + r9*8 + 0x28]
movdqu xmm3, xmmword [rcx + r9*8 + 0x38]
movdqu xmm4, xmmword [rcx + r9*8 + 0x48]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [rcx + r9*8 + 0x58]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [rcx + r9*8 + 0x68]
por xmm0, xmm4
movdqu xmm1, xmmword [rcx + r9*8 + 0x78]
por xmm1, xmm2
add r9, 0x10
add r10, 0xfffffffffffffffc
jne 0x14005abed
mov r10, r8
and r10, 0xfffffffffffffffc
test rdx, rdx
je 0x14005ac85
lea r11, [r9*8]
or r11, 8
movdqu xmm2, xmmword [rcx + r11]
por xmm0, xmm2
movdqu xmm2, xmmword [rcx + r11 + 0x10]
por xmm1, xmm2
add r9, 4
dec rdx
jne 0x14005ac5b
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
movq rdx, xmm1
cmp r8, r10
je 0x14005acac
or r10, 1
or rdx, qword [rcx + r10*8]
inc r10
cmp rax, r10
jne 0x14005aca0
test rdx, rdx
je 0x14005ace5
mov edx, 1
mov rcx, rsi
call fcn.140053090
test eax, eax
je 0x14005acfe
mov dword [rsi + 0x10], 0
mov rax, qword [rsi]
mov qword [rax], 1
mov dword [rsi + 8], 1
mov r14d, 1
jmp 0x14005a63c
mov dword [rsi + 0x10], 0
mov dword [rsi + 8], 0
mov r14d, 1
jmp 0x14005a63c
xor r14d, r14d
jmp 0x14005a63c
mov rbx, qword [rsp + 0x30]
mov dword [rsp + 0x20], r13d
lea rcx, [rsp + 0xa8]
mov rdx, qword [rsp + 0x50]
mov r8, rbx
mov r9d, r12d
call fcn.14005b150
test eax, eax
je 0x14005ae1c
lea r12, [rsp + 0xa8]
test ebp, ebp
js 0x14005ae64
mov eax, ebp
sub eax, r13d
mov dword [rsp + 0x60], eax
xor r14d, r14d
xor ebx, ebx
xor r15d, r15d
jmp 0x14005ad5f
or r15d, eax
dec ebx
mov eax, r13d
add eax, ebx
je 0x14005adb7
mov rax, qword [rsp + 0x130]
mov qword [rsp + 0x20], rax
mov rcx, r12
mov rdx, r12
mov r8, r12
mov r9, qword [rsp + 0x58]
call fcn.140059900
test eax, eax
je 0x14005ae8a
lea ecx, [rbx + rbp]
mov eax, r15d
add eax, r15d
xor r15d, r15d
test ecx, ecx
js 0x14005ad53
mov edx, ecx
shr edx, 6
cmp edx, dword [rdi + 8]
jae 0x14005ad53
mov edx, edx
mov r8, qword [rdi]
mov rdx, qword [r8 + rdx*8]
xor r15d, r15d
bt rdx, rcx
setb r15b
jmp 0x14005ad53
mov dword [rsp + 0x20], r13d
lea rbp, [rsp + 0x90]
mov rcx, rbp
mov rdx, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x30]
mov r8, rbx
mov r9d, r15d
call fcn.14005b150
xor r14d, r14d
test eax, eax
je 0x14005ae96
mov rax, qword [rsp + 0x130]
mov qword [rsp + 0x20], rax
mov rcx, r12
mov rdx, r12
mov r8, rbp
mov r9, qword [rsp + 0x58]
call fcn.140059900
mov ecx, dword [rsp + 0x60]
mov ebp, ecx
test eax, eax
mov r15d, dword [rsp + 0x3c]
jne 0x14005ad38
jmp 0x14005ae1f
xor r14d, r14d
mov rcx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
jmp 0x14005ae3d
xor r14d, r14d
mov rcx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x30]
call fcn.140059bc0
test rbx, rbx
je 0x14005ae57
test rsi, rsi
jne 0x14005ae57
movsxd rdx, r15d
mov rcx, rbx
call fcn.14009ead0
mov rcx, rsi
call fcn.14009ea90
jmp 0x14005a63c
lea rdx, [rsp + 0xa8]
mov rcx, rsi
mov r8, qword [rsp + 0x58]
mov r9, qword [rsp + 0x130]
call fcn.140059a90
xor r14d, r14d
test eax, eax
setne r14b
mov rcx, qword [rsp + 0x40]
mov r15d, dword [rsp + 0x3c]
jmp 0x14005ae33
mov rcx, qword [rsp + 0x40]
mov r15d, dword [rsp + 0x3c]
jmp 0x14005ae24