Function at 0x429520
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xf8
lea rax, [sym.__gxx_personality_sj0]
mov qword [rsp + 0x90], rax
lea rax, [0x006892b4]
mov qword [rsp + 0x98], rax
lea rax, [rsp + 0xf0]
mov qword [rsp + 0xa0], rax
lea rax, [0x00429e47]
mov qword [rsp + 0xa8], rax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x140], rcx
mov rcx, rax
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x148], rdx
mov qword [rsp + 0xb0], rsp
call dbg._Unwind_SjLj_Register
mov rax, qword [rsp + 0x140]
mov esi, dword [rax + 0x94]
sub esi, dword [rax + 0x98]
cmp esi, 0x3f
ja 0x4295f3
mov rdx, qword [rsp + 0x148]
mov rcx, rax
mov dword [rsp + 0x68], 0xffffffff
call method.CryptoPP::QuotientRing_CryptoPP::EuclideanDomainOf_CryptoPP::PolynomialMod2___.MultiplicativeInverse_CryptoPP::PolynomialMod2_const__const
mov qword [rsp + 0x28], rax
mov rcx, qword [rsp + 0x48]
call sym._Unwind_SjLj_Unregister
mov rax, qword [rsp + 0x28]
add rsp, 0xf8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [rsp + 0x140]
mov rax, qword [rax + 0x80]
mov qword [rsp + 0x58], rax
shl rax, 2
mov rdx, rax
mov qword [rsp + 0x50], rax
movabs rax, 0x1fffffffffffffff
cmp rdx, rax
ja 0x429dab
cmp qword [rsp + 0x50], 0
je 0x429d6e
mov rcx, qword [rsp + 0x58]
mov dword [rsp + 0x68], 0xffffffff
shl rcx, 5
call method.CryptoPP.UnalignedAllocate_unsigned_long_long_
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x140]
mov rax, qword [rax + 0x80]
mov qword [rsp + 0x38], rax
mov rdi, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x40]
lea rax, [rdi*8]
lea rsi, [rdx + rax]
lea rcx, [rdi + rdi*2]
mov qword [rsp + 0xc8], rsi
add rsi, rax
add rax, rsi
test rcx, rcx
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x30], rax
mov rax, rdx
lea rdx, [rdx + rcx*8]
je 0x4296b0
nop
mov qword [rax], 0
add rax, 8
cmp rdx, rax
jne 0x4296a0
mov rax, qword [rsp + 0x40]
mov qword [rax], 1
mov rax, qword [rsp + 0x148]
mov rdx, qword [rax + 0x18]
cmp qword [rsp + 0x28], rdx
je 0x4296e9
mov rax, qword [rsp + 0x148]
mov rcx, qword [rsp + 0x28]
mov r8, qword [rax + 0x10]
shl r8, 3
call sym.memcpy
mov rax, qword [rsp + 0x140]
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rax + 0x88]
cmp rcx, rdx
je 0x429712
mov r8, qword [rax + 0x80]
shl r8, 3
call sym.memcpy
mov rdx, qword [rsp + 0x40]
xor eax, eax
mov r8d, 1
mov r11d, 0x40
mov r9, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x38]
mov r10, qword [rsp + 0xc8]
mov r12, qword [rsp + 0x30]
nop dword [rax]
mov rcx, qword [r9]
test rcx, rcx
jne 0x4297ba
lea rbp, [r9 + rdi*8 - 8]
mov rsi, rbp
test rdi, rdi
je 0x429779
cmp rdi, 1
mov rcx, r9
jbe 0x429771
nop
mov rbx, qword [rcx + 8]
add rcx, 8
mov qword [rcx - 8], rbx
cmp rsi, rcx
jne 0x429760
mov qword [rbp], 0
cmp qword [r10 + r8*8 - 8], 1
sbb r8, 0xffffffffffffffff
test r8, r8
je 0x4297af
lea rcx, [r10 + r8*8 - 0x10]
cmp r8, 1
jne 0x429798
jmp 0x4297a8
mov rcx, rbx
mov rbx, qword [rcx]
cmp r10, rcx
mov qword [rcx + 8], rbx
lea rbx, [rcx - 8]
jne 0x429795
mov qword [r10], 0
mov rcx, qword [r9]
add eax, 0x40
test rcx, rcx
je 0x429750
xor esi, esi
test cl, 1
jne 0x429bd0
shr rcx, 1
add esi, 1
test cl, 1
je 0x4297c5
lea rbx, [rdi*8 - 8]
add eax, esi
mov qword [rsp + 0x30], rbx
add rbx, r9
cmp rcx, 1
mov qword [rsp + 0x28], rbx
je 0x429930
cmp esi, 1
je 0x429974
test esi, esi
je 0x42989a
test rdi, rdi
je 0x429848
mov r14d, r11d
xor ebx, ebx
mov rbp, qword [rsp + 0x28]
sub r14d, esi
mov r15, rbx
jmp 0x429823
mov rbp, rcx
mov r13, qword [rbp]
mov ecx, esi
mov rbx, r13
shr rbx, cl
mov ecx, r14d
or rbx, r15
mov r15, r13
shl r15, cl
cmp r9, rbp
mov qword [rbp], rbx
lea rcx, [rbp - 8]
jne 0x429820
test r8, r8
je 0x429c3e
mov r15d, r11d
mov rbp, r10
xor ebx, ebx
mov dword [rsp + 0x38], eax
lea r14, [r10 + r8*8]
sub r15d, esi
mov r13, qword [rbp]
mov ecx, esi
add rbp, 8
mov rax, r13
shl rax, cl
mov ecx, r15d
or rbx, rax
mov qword [rbp - 8], rbx
mov rbx, r13
shr rbx, cl
cmp r14, rbp
jne 0x429864
mov eax, dword [rsp + 0x38]
test rbx, rbx
je 0x42989a
mov qword [r10 + r8*8], rbx
add r8, 1
mov rsi, qword [rsp + 0x28]
mov rbx, qword [rsi]
mov rsi, qword [rsp + 0x30]
mov rcx, qword [r12 + rsi]
mov rsi, rbx
or rsi, rcx
jne 0x4298c9
sub rdi, 1
lea rcx, [rdi*8]
mov rbx, qword [r9 + rcx - 8]
mov rcx, qword [r12 + rcx - 8]
cmp rbx, rcx
jae 0x4298e0
mov rcx, r9
mov r9, r12
mov r12, rcx
mov rcx, rdx
mov rdx, r10
mov r10, rcx
xor ecx, ecx
test rdi, rdi
je 0x429901
nop word [rax + rax]
mov rbx, qword [r12 + rcx*8]
xor qword [r9 + rcx*8], rbx
add rcx, 1
cmp rdi, rcx
jne 0x4298f0
test r8, r8
je 0x429740
xor ecx, ecx
nop dword [rax]
mov rbx, qword [r10 + rcx*8]
xor qword [rdx + rcx*8], rbx
add rcx, 1
cmp r8, rcx
jne 0x429910
jmp 0x429740
test rdi, rdi
je 0x429c46
mov rbx, qword [rsp + 0x28]
mov rcx, rdi
mov rbx, qword [rbx]
test rbx, rbx
je 0x42995c
jmp 0x429a00
cmp qword [r9 + rcx*8 - 8], 0
jne 0x429a00
sub rcx, 1
jne 0x429950
cmp esi, 1
je 0x429981
test esi, esi
jne 0x429807
jmp 0x42989a
test rdi, rdi
je 0x4299b4
mov rsi, qword [rsp + 0x28]
mov rbx, qword [rsi]
xor ecx, ecx
mov rbp, qword [rsp + 0x28]
mov rsi, rcx
jmp 0x429997
mov rbx, qword [rbp - 8]
mov rbp, rcx
mov rcx, rbx
shr rcx, 1
or rcx, rsi
mov rsi, rbx
shl rsi, 0x3f
cmp r9, rbp
mov qword [rbp], rcx
lea rcx, [rbp - 8]
jne 0x429990
test r8, r8
je 0x429c3e
lea rbp, [r10 + r8*8]
xor ebx, ebx
mov rcx, r10
mov r13, rbx
nop dword [rax]
mov rsi, qword [rcx]
add rcx, 8
lea rbx, [rsi + rsi]
shr rsi, 0x3f
or rbx, r13
mov r13, rsi
mov qword [rcx - 8], rbx
cmp rbp, rcx
jne 0x4299d0
mov rbx, rsi
jmp 0x42988d
cmp rcx, 1
jne 0x429962
cmp eax, 0x3f
jbe 0x429b36
mov rbx, qword [rsp + 0x140]
mov dword [rsp + 0xc8], eax
mov rsi, qword [rsp + 0x140]
mov rdi, qword [rsp + 0x140]
mov r14d, dword [rbx + 0x98]
mov esi, dword [rsi + 0x94]
mov r8d, dword [rdi + 0x90]
mov edi, eax
mov ebx, r14d
mov r13d, r14d
shr ebx, 6
and r13d, 0x3f
lea ecx, [rbx - 1]
mov dword [rsp + 0x30], ebx
mov ebx, 0x40
add r8, 0x3f
lea r15, [rdx + rcx*8]
sub ebx, r13d
shr r8, 6
mov dword [rsp + 0x38], ebx
lea rbp, [rdx + r8*8 - 8]
mov ebx, esi
shr ebx, 6
lea ecx, [rbx - 1]
mov dword [rsp + 0x28], ebx
lea r12, [rdx + rcx*8]
nop dword [rax]
xor ecx, ecx
cmp r8, 1
mov rax, qword [rdx]
mov r9d, 1
jbe 0x429ab8
mov r10, qword [rdx + r9*8]
mov r9d, ecx
mov qword [rdx + r9*8], r10
lea r9d, [rcx + 2]
add ecx, 1
cmp r9, r8
jb 0x429aa1
cmp r14d, 0x3f
mov qword [rbp], 0
jbe 0x429c00
mov rbx, rax
mov ecx, r13d
shl rbx, cl
xor qword [r15], rbx
test r13d, r13d
je 0x429aef
mov r9d, dword [rsp + 0x30]
mov rbx, rax
movzx ecx, byte [rsp + 0x38]
shr rbx, cl
xor qword [rdx + r9*8], rbx
mov ecx, esi
mov r9, qword [r12]
and ecx, 0x3f
je 0x429bc0
mov r10, rax
mov ebx, 0x40
shl r10, cl
sub ebx, ecx
xor r9, r10
mov ecx, ebx
mov qword [r12], r9
mov r9d, dword [rsp + 0x28]
shr rax, cl
xor qword [rdx + r9*8], rax
sub edi, 0x40
cmp edi, 0x3f
ja 0x429a90
mov eax, dword [rsp + 0xc8]
and eax, 0x3f
test eax, eax
jne 0x429c5c
mov rax, qword [rsp + 0x140]
mov rcx, qword [rax + 0xb8]
cmp rcx, rdx
je 0x429b62
mov r8, qword [rax + 0xb0]
shl r8, 3
call sym.memcpy
mov rax, qword [rsp + 0x140]
mov rdi, qword [rsp + 0x50]
add rax, 0xa0
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x58]
lea rdx, [rdi - 1]
shl rax, 5
add rax, qword [rsp + 0x40]
test rdi, rdi
je 0x429ba6
sub rdx, 1
sub rax, 8
mov qword [rax], 0
cmp rdx, 0xffffffffffffffff
jne 0x429b91
mov rcx, qword [rsp + 0x40]
mov dword [rsp + 0x68], 0
call method.CryptoPP.UnalignedDeallocate_void_
jmp 0x4295d0
xor rax, r9
mov qword [r12], rax
jmp 0x429b20
lea rbx, [rdi*8 - 8]
mov qword [rsp + 0x30], rbx
add rbx, r9
cmp rcx, 1
mov qword [rsp + 0x28], rbx
jne 0x42989a
test rdi, rdi
jne 0x429939
jmp 0x42989a
mov ebx, 0x40
mov r10d, r14d
xor r9d, r9d
sub ebx, r14d
nop
cmp r10d, 0x3f
ja 0x429c2c
mov r11, rax
mov ecx, r9d
shr r11, cl
mov ecx, r10d
and r11d, 1
shl r11, cl
xor rax, r11
add r9d, 1
add r10d, 1
cmp r9d, ebx
jne 0x429c10
jmp 0x429ad6
xor r8d, r8d
jmp 0x42989a
cmp esi, 1
je 0x4299b4
test esi, esi
jne 0x429848
jmp 0x42989a
mov r11, qword [rdx]
mov ebx, 0x40
mov rdi, qword [rsp + 0x140]
sub ebx, eax
mov ecx, ebx
shl r11, cl
mov ecx, dword [rdi + 0x90]
add rcx, 0x3f
shr rcx, 6
test rcx, rcx
je 0x429cb8
lea r9, [rdx + rcx*8 - 8]
xor r8d, r8d
jmp 0x429c93
mov r9, rcx
mov r10, qword [r9]
mov ecx, eax
mov rdi, r10
shr rdi, cl
mov rcx, rdi
or rcx, r8
mov r8, r10
mov qword [r9], rcx
mov ecx, ebx
shl r8, cl
cmp r9, rdx
lea rcx, [r9 - 8]
jne 0x429c90
mov rax, qword [rsp + 0x140]
mov r9d, dword [rax + 0x98]
mov esi, r9d
and esi, 0x3f
cmp r9d, 0x3f
ja 0x429d86
mov ebx, 0x40
mov r8d, r9d
xor eax, eax
sub ebx, r9d
cmp r8d, 0x3f
ja 0x429cff
mov r10, r11
mov ecx, eax
shr r10, cl
mov ecx, r8d
and r10d, 1
shl r10, cl
xor r11, r10
add eax, 1
add r8d, 1
cmp eax, ebx
jne 0x429ce4
test esi, esi
je 0x429d25
mov eax, r9d
mov ecx, 0x40
mov rdi, r11
shr eax, 6
sub ecx, esi
shr rdi, cl
xor qword [rdx + rax*8], rdi
mov rax, qword [rsp + 0x140]
mov eax, dword [rax + 0x94]
mov r8d, eax
shr r8d, 6
and eax, 0x3f
lea ecx, [r8 - 1]
lea r9, [rdx + rcx*8]
mov r10, qword [r9]
je 0x429da0
mov rdi, r11
mov ecx, eax
shl rdi, cl
mov rcx, rdi
xor rcx, r10
mov qword [r9], rcx
mov ecx, 0x40
sub ecx, eax
shr r11, cl
xor qword [rdx + r8*8], r11
jmp 0x429b3e
mov qword [rsp + 0x40], 0
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x38], rax
jmp 0x429661
mov eax, r9d
mov rdi, r11
mov ecx, esi
shr eax, 6
shl rdi, cl
sub eax, 1
xor qword [rdx + rax*8], rdi
jmp 0x429d0a
xor r11, r10
mov qword [r9], r11
jmp 0x429b3e
mov ecx, 0x30
call sym.__cxa_allocate_exception
lea rdx, [rsp + 0xd0]
mov dword [rsp + 0x68], 1
mov qword [rsp + 0x28], rax
mov rax, rdx
lea rdx, [0x00623da0]
mov rcx, rax
mov qword [rsp + 0x30], rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.80_
mov r8, qword [rsp + 0x30]
mov edx, 1
mov dword [rsp + 0x68], 2
mov rcx, qword [rsp + 0x28]
call fcn.004e29b0
mov rax, qword [rsp + 0x30]
lea rsi, fcn.004a5c00
mov rcx, qword [rsp + 0xd0]
mov rdi, qword [rsp + 0x28]
add rax, 0x10
cmp rcx, rax
mov qword [rdi], rsi
je 0x429e27
call sym.operator_delete_void_
mov rcx, qword [rsp + 0x28]
lea r8, [fcn.004a5c00]
mov dword [rsp + 0x68], 0xffffffff
lea rdx, [0x0063d3a0]
call sym.__cxa_throw
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x68]
test eax, eax
jne 0x429e75
mov rcx, qword [rsp + 0x28]
call sym.__cxa_free_exception
mov rcx, qword [rsp + 0x30]
mov dword [rsp + 0x68], 0xffffffff
call dbg._Unwind_SjLj_Resume
sub eax, 1
jne 0x429e96
mov rcx, qword [rsp + 0xd0]
lea rax, [rsp + 0xe0]
cmp rcx, rax
je 0x429e59
call sym.operator_delete_void_
jmp 0x429e59
ud2