Function at 0x180024610
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x98
movdqa xmmword [rsp + 0x80], xmm6
mov rsi, r9
mov rbx, r8
mov rdi, rcx
cmp rcx, rdx
je 0x1800246e9
cmp rsi, rdx
je 0x1800246e9
cmp rdi, rbx
je 0x180024714
cmp rsi, rbx
je 0x180024714
cmp rdi, rsi
je 0x18002475e
mov rcx, qword [rbx + 0x20]
mov rax, rcx
mov qword [rsp + 0x60], rcx
dec rcx
mov qword [rsp + 0x50], rcx
je 0x1800247ab
mov r14, qword [rdx + 0x20]
mov ebp, dword [rdx]
mov qword [rsi + 0x20], r14
mov r8, qword [rdx + 0x20]
shl r8, 2
mov rcx, rsi
mov r12, rdx
call fcn.1800cf610
mov r15, r14
dec r15
jne 0x1800247d4
test ebp, ebp
jne 0x1800247d4
test rdi, rdi
je 0x180024742
mov rdx, r12
mov r8, qword [r12 + 0x20]
mov qword [rdi + 0x20], r8
shl r8, 2
mov rcx, rdi
movaps xmm6, xmmword [rsp + 0x80]
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp fcn.1800cf610
movdqu xmm0, xmmword [rdx]
movdqu xmm1, xmmword [rdx + 0x10]
movdqa xmmword [rsp + 0x30], xmm1
movdqa xmmword [rsp + 0x20], xmm0
mov rax, qword [rdx + 0x20]
mov qword [rsp + 0x40], rax
lea rdx, [rsp + 0x20]
mov rcx, rdi
mov r8, rbx
jmp 0x18002473a
movdqu xmm0, xmmword [rbx]
movdqu xmm1, xmmword [rbx + 0x10]
movdqa xmmword [rsp + 0x30], xmm1
movdqa xmmword [rsp + 0x20], xmm0
mov rax, qword [rbx + 0x20]
mov qword [rsp + 0x40], rax
lea r8, [rsp + 0x20]
mov rcx, rdi
mov r9, rsi
call fcn.180024610
movaps xmm6, xmmword [rsp + 0x80]
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x30], xmm0
movdqa xmmword [rsp + 0x20], xmm0
mov qword [rsp + 0x40], 1
lea rsi, [rsp + 0x20]
mov rcx, rdi
mov r8, rbx
mov r9, rsi
call fcn.180024610
cmp rsi, rdi
je 0x180024742
mov r8, qword [rsp + 0x40]
mov qword [rdi + 0x20], r8
shl r8, 2
lea rdx, [rsp + 0x20]
mov rcx, rdi
call fcn.1800cf610
jmp 0x180024742
mov r8d, dword [rbx]
mov rcx, rdi
mov r9, rsi
movaps xmm6, xmmword [rsp + 0x80]
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp 0x180024f60
test rdi, rdi
je 0x1800247e7
mov qword [rdi + 0x20], 1
mov dword [rdi], 0
cmp r15, qword [rsp + 0x50]
jbe 0x180024e0d
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x30], xmm0
movdqa xmmword [rsp + 0x20], xmm0
mov qword [rsp + 0x40], 1
test rdi, rdi
je 0x180024846
mov rax, r14
sub rax, qword [rsp + 0x50]
cmp rax, 8
mov ecx, 8
cmovb rcx, rax
mov qword [rdi + 0x20], rcx
cmp rax, 2
jb 0x180024846
lea rcx, [rdi + 4]
sub r14, qword [rsp + 0x60]
shl r14, 2
xor edx, edx
mov r8, r14
call fcn.1800cfcb0
mov rax, qword [rsp + 0x60]
lea rax, [rax*4]
neg rax
add rax, rsp
add rax, 0x28
mov qword [rsp + 0x78], rax
mov al, 1
mov dword [rsp + 0x5c], eax
xor r13d, r13d
mov ebp, 8
pcmpeqd xmm6, xmm6
jmp 0x18002487c
jbe 0x180024dd0
mov edx, dword [rsi + r15*4]
mov rax, qword [rsp + 0x60]
mov ecx, dword [rbx + rax*4 - 4]
test r15, r15
je 0x1800248b0
cmp edx, ecx
ja 0x1800248b0
shl rdx, 0x20
mov eax, dword [rsi + r15*4 - 4]
or rax, rdx
test rdx, rdx
je 0x1800248f3
xor edx, edx
div rcx
mov r12, rax
jmp 0x1800248fa
test r15, r15
je 0x1800248e5
shl rdx, 0x20
mov eax, dword [rsi + r15*4 - 4]
or rax, rdx
shl rcx, 0x20
mov r8, qword [rsp + 0x60]
mov r8d, dword [rbx + r8*4 - 8]
or r8, rcx
or rcx, rdx
je 0x180024c07
xor edx, edx
div r8
mov r12, rax
jmp 0x180024912
mov eax, dword [rsi]
xor edx, edx
div ecx
mov r12d, eax
xor r15d, r15d
jmp 0x180024912
xor edx, edx
div ecx
mov r12d, eax
lea rax, [r15 - 1]
mov rcx, r12
shr rcx, 0x20
mov ecx, 1
cmovne r12d, ecx
cmove r15, rax
mov r14, r15
sub r14, qword [rsp + 0x50]
test rdi, rdi
je 0x1800249f0
mov eax, dword [rdi + r14*4]
test r13b, 1
jne 0x180024950
mov ecx, eax
not ecx
cmp r12d, ecx
jae 0x18002495e
add eax, r12d
mov dword [rdi + r14*4], eax
jmp 0x1800249f0
sub eax, r12d
jbe 0x1800249a8
mov dword [rdi + r14*4], eax
jmp 0x1800249f0
lea rax, [r14 + 1]
cmp rax, 8
cmovae rax, rbp
mov qword [rsp + 0x40], rax
mov dword [rsp + r14*4 + 0x20], r12d
cmp r15, qword [rsp + 0x50]
je 0x180024996
cmp r14, 1
mov r8, r14
adc r8, 0
shl r8, 2
lea rcx, [rsp + 0x20]
xor edx, edx
call fcn.1800cfcb0
mov rcx, rdi
mov rdx, rdi
lea r8, [rsp + 0x20]
call fcn.180021530
jmp 0x1800249f0
lea rax, [r14 + 1]
cmp rax, 8
cmovae rax, rbp
mov qword [rsp + 0x40], rax
mov dword [rsp + r14*4 + 0x20], r12d
cmp r15, qword [rsp + 0x50]
je 0x1800249e0
cmp r14, 1
mov r8, r14
adc r8, 0
shl r8, 2
lea rcx, [rsp + 0x20]
xor edx, edx
call fcn.1800cfcb0
mov rcx, rdi
mov rdx, rdi
lea r8, [rsp + 0x20]
call fcn.1800212d0
mov qword [rsp + 0x70], r13
mov r13, qword [rbx + 0x20]
lea rbp, [r14 + r13]
inc rbp
cmp rbp, 8
mov eax, 8
cmovb rax, rbp
mov qword [rsp + 0x40], rax
cmp r15, qword [rsp + 0x50]
je 0x180024a34
cmp r14, 1
mov r8, r14
adc r8, 0
shl r8, 2
lea rcx, [rsp + 0x20]
xor edx, edx
call fcn.1800cfcb0
test r13, r13
je 0x180024a50
mov eax, r12d
cmp r13, 1
jne 0x180024a60
xor edx, edx
xor ecx, ecx
jmp 0x180024ab4
xor eax, eax
mov r13, qword [rsp + 0x70]
jmp 0x180024b00
mov r9, r13
and r9, 0xfffffffffffffffe
mov rcx, qword [rsp + 0x78]
lea r10, [rcx + r15*4]
xor edx, edx
xor ecx, ecx
nop word cs:[rax + rax]
mov r11d, dword [rbx + rdx*4]
imul r11, rax
add r11, rcx
mov dword [r10 + rdx*4 - 4], r11d
shr r11, 0x20
mov r8d, dword [rbx + rdx*4 + 4]
imul r8, rax
add r8, r11
mov dword [r10 + rdx*4], r8d
mov rcx, r8
shr rcx, 0x20
add rdx, 2
cmp r9, rdx
jne 0x180024a80
test r13b, 1
je 0x180024ad8
lea r9, [rsp + r14*4]
add r9, 0x20
mov r8d, dword [rbx + rdx*4]
imul r8, rax
add r8, rcx
mov dword [r9 + rdx*4], r8d
mov rcx, r8
shr rcx, 0x20
shr r8, 0x20
setne al
mov r13, qword [rsp + 0x70]
je 0x180024b00
cmp rbp, 8
ja 0x180024b00
mov rax, qword [rsp + 0x40]
mov dword [rsp + rax*4 + 0x1c], ecx
mov ebp, 8
jmp 0x180024b30
cmp rbp, 8
jbe 0x180024b40
test al, al
mov ebp, 8
je 0x180024b30
lea rax, [r15 + 1]
cmp rax, 1
adc r15, 1
cmp rax, 8
jae 0x180024c14
xor eax, eax
jmp 0x180024c50
mov rax, qword [rsp + 0x40]
jmp 0x180024b5a
mov rax, qword [rsp + 0x40]
dec rax
cmp rax, 8
mov ebp, 8
cmovae rax, rbp
mov qword [rsp + 0x40], rax
mov rcx, qword [rsi + 0x20]
mov rdx, rax
cmp rcx, rax
jne 0x180024b88
nop word cs:[rax + rax]
test rdx, rdx
jle 0x180024bb0
mov r8d, dword [rsp + rdx*4 + 0x1c]
lea r9, [rdx - 1]
cmp dword [rsi + rdx*4 - 4], r8d
mov rdx, r9
je 0x180024b70
jbe 0x180024bb0
mov rcx, rsi
mov rdx, rsi
lea r8, [rsp + 0x20]
call fcn.1800212d0
test rdi, rdi
jne 0x180024d40
jmp 0x180024d82
mov rdx, rcx
or rdx, rax
je 0x180024be9
xor edx, edx
nop word [rax + rax]
mov eax, dword [rsi + rdx*4]
mov ecx, dword [rsp + rdx*4 + 0x20]
mov dword [rsi + rdx*4], ecx
mov dword [rsp + rdx*4 + 0x20], eax
inc rdx
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsi + 0x20]
cmp rcx, rax
mov r8, rax
cmova r8, rcx
cmp rdx, r8
jb 0x180024bc0
mov qword [rsi + 0x20], rax
mov qword [rsp + 0x40], rcx
mov rcx, rsi
mov rdx, rsi
lea r8, [rsp + 0x20]
call fcn.1800212d0
jmp 0x180024d34
xor edx, edx
div r8d
mov r12d, eax
jmp 0x180024912
mov rax, r15
and rax, 0xfffffffffffffff8
xor ecx, ecx
nop dword [rax]
movdqu xmm0, xmmword [rsi + rcx*4]
movdqu xmm1, xmmword [rsi + rcx*4 + 0x10]
pxor xmm0, xmm6
pxor xmm1, xmm6
movdqu xmmword [rsi + rcx*4], xmm0
movdqu xmmword [rsi + rcx*4 + 0x10], xmm1
add rcx, 8
cmp rax, rcx
jne 0x180024c20
jmp 0x180024c56
not dword [rsi + rax*4]
inc rax
cmp r15, rax
jne 0x180024c50
mov rax, qword [rsi + 0x20]
mov rcx, rax
dec rcx
je 0x180024c9f
cmp dword [rsi + rax*4 - 4], 0
je 0x180024c83
mov ecx, dword [rsi]
cmp ecx, 0xffffffff
jne 0x180024ca6
test rax, rax
jne 0x180024cac
mov ecx, 1
xor eax, eax
jmp 0x180024ce6
mov qword [rsi + 0x20], rcx
add rax, 0xfffffffffffffffe
je 0x180024c9f
nop dword [rax]
cmp dword [rsi + rax*4], 0
jne 0x180024c9f
mov qword [rsi + 0x20], rax
dec rax
jne 0x180024c90
mov ecx, dword [rsi]
cmp ecx, 0xffffffff
je 0x180024cac
inc ecx
mov dword [rsi], ecx
jmp 0x180024d24
mov edx, 1
mov ecx, 1
nop word cs:[rax + rax]
mov eax, dword [rsi + rdx*4 - 4]
add rcx, rax
mov dword [rsi + rdx*4 - 4], ecx
shr rcx, 0x20
mov rax, qword [rsi + 0x20]
je 0x180024ce1
lea r8, [rdx + 1]
cmp rdx, rax
mov rdx, r8
jb 0x180024cc0
test rcx, rcx
je 0x180024d10
mov rdx, rax
inc rax
cmp rax, 8
cmovae rax, rbp
mov qword [rsi + 0x20], rax
cmp rax, rdx
jbe 0x180024d10
mov dword [rsi + rdx*4], ecx
mov rax, qword [rsi + 0x20]
nop word cs:[rax + rax]
dec rax
je 0x180024d24
cmp dword [rsi + rax*4], 0
jne 0x180024d24
mov qword [rsi + 0x20], rax
dec rax
jne 0x180024d15
mov rcx, rsi
mov rdx, rsi
lea r8, [rsp + 0x20]
call fcn.180021530
not r13b
and r13b, 1
test rdi, rdi
je 0x180024d82
mov eax, dword [rsp + 0x5c]
and al, 1
je 0x180024d82
mov rax, qword [rdi + 0x20]
cmp dword [rdi + rax*4 - 4], 0
jne 0x180024d7a
dec rax
nop word cs:[rax + rax]
cmp rax, 8
mov rcx, rax
cmovae rcx, rbp
lea rax, [rcx - 1]
cmp dword [rdi + rcx*4 - 4], 0
je 0x180024d60
mov qword [rdi + 0x20], rcx
mov dword [rsp + 0x5c], 0
mov rax, qword [rsi + 0x20]
lea r15, [rax - 1]
cmp r15, qword [rsp + 0x50]
jb 0x180024dd0
ja 0x18002487c
mov rcx, rax
cmp rax, qword [rbx + 0x20]
jne 0x180024876
nop word cs:[rax + rax]
test rcx, rcx
jle 0x18002487c
mov edx, dword [rbx + rcx*4 - 4]
lea r8, [rcx - 1]
cmp dword [rsi + rcx*4 - 4], edx
mov rcx, r8
je 0x180024db0
ja 0x18002487c
test r13b, 1
je 0x180024742
cmp rax, 1
jne 0x180024de9
cmp dword [rsi], 0
je 0x180024742
test rdi, rdi
je 0x180024ee1
mov dword [rsp + 0x6c], 1
mov eax, dword [rdi]
test eax, eax
je 0x180024ed1
dec eax
mov dword [rdi], eax
jmp 0x180024ee1
jb 0x180024742
mov rcx, r12
mov rax, qword [rsi + 0x20]
cmp rax, qword [rbx + 0x20]
jne 0x180024e87
test rax, rax
jle 0x180024e3c
mov edx, dword [rbx + rax*4 - 4]
lea r8, [rax - 1]
cmp dword [rsi + rax*4 - 4], edx
mov rax, r8
je 0x180024e20
jbe 0x180024742
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x30], xmm0
movdqa xmmword [rsp + 0x20], xmm0
mov qword [rsp + 0x40], 1
test r15, r15
jne 0x180024ea6
test rdi, rdi
je 0x180024e72
mov eax, dword [rcx]
xor edx, edx
div dword [rbx]
mov rcx, r12
mov qword [rdi + 0x20], 1
mov dword [rdi], eax
mov eax, dword [rcx]
xor edx, edx
div dword [rbx]
mov qword [rsi + 0x20], 1
mov dword [rsi], edx
jmp 0x180024742
jbe 0x180024742
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x30], xmm0
movdqa xmmword [rsp + 0x20], xmm0
mov qword [rsp + 0x40], 1
cmp r15, 1
jne 0x18002480b
mov rcx, qword [rcx]
mov r8, qword [rbx]
test rdi, rdi
je 0x180024f15
mov rax, rcx
or rax, r8
shr rax, 0x20
je 0x180024ef4
mov rax, rcx
xor edx, edx
div r8
jmp 0x180024efb
lea r8, [rsp + 0x6c]
mov rcx, rdi
mov rdx, rdi
call fcn.180021750
mov rcx, rsi
mov rdx, rbx
mov r8, rsi
call fcn.1800212d0
jmp 0x180024742
mov eax, ecx
xor edx, edx
div r8d
mov dword [rdi], eax
shr rax, 0x20
mov dword [rdi + 4], eax
cmp rax, 1
mov eax, 2
sbb rax, 0
mov qword [rdi + 0x20], rax
mov rax, rcx
or rax, r8
shr rax, 0x20
je 0x180024f2b
mov rax, rcx
xor edx, edx
div r8
jmp 0x180024f32
mov eax, ecx
xor edx, edx
div r8d
mov dword [rsi], edx
shr rdx, 0x20
mov dword [rsi + 4], edx
cmp rdx, 1
mov eax, 2
sbb rax, 0
mov qword [rsi + 0x20], rax
jmp 0x180024742
push rbp
push r14
push rsi
push rdi
push rbx
sub rsp, 0x80
lea rbp, [rsp + 0x80]
mov qword [rbp - 8], 0xfffffffffffffffe
cmp rcx, rdx
je 0x180024ff6
cmp r9, rdx
je 0x180024ff6
cmp rcx, r9
je 0x180025025
test r8d, r8d
je 0x18002529e
mov rdi, rcx
mov ebx, r8d
mov rsi, qword [rdx + 0x20]
mov qword [r9 + 0x20], rsi
lea r8, [rsi*4]
mov r14, r9
mov rcx, r9
call fcn.1800cf610
cmp rsi, 2
je 0x180025066
cmp rsi, 1
mov r8, rdi
mov r10d, ebx
jne 0x18002509f
mov eax, dword [r14]
cmp eax, r10d
jae 0x180025229
test r8, r8
je 0x180025016
mov qword [r8 + 0x20], 1
mov dword [r8], 0
jmp 0x180025016
movups xmm0, xmmword [rdx]
movups xmm1, xmmword [rdx + 0x10]
movaps xmmword [rbp - 0x20], xmm1
movaps xmmword [rbp - 0x30], xmm0
mov rax, qword [rdx + 0x20]
mov qword [rbp - 0x10], rax
lea rdx, [rbp - 0x30]
call 0x180024f60
nop
add rsp, 0x80
pop rbx
pop rdi
pop rsi
pop r14
pop rbp
ret
xorps xmm0, xmm0
movaps xmmword [rbp - 0x20], xmm0
movaps xmmword [rbp - 0x30], xmm0
mov qword [rbp - 0x10], 1
lea rdi, [rbp - 0x30]
mov rsi, rcx
mov r9, rdi
call 0x180024f60
cmp rdi, rsi
je 0x180025016
mov r8, qword [rbp - 0x10]
mov qword [rsi + 0x20], r8
shl r8, 2
lea rdx, [rbp - 0x30]
mov rcx, rsi
call fcn.1800cf610
jmp 0x180025016
mov r8, r14
mov ecx, dword [r14]
mov r9d, dword [r14 + 4]
shl r9, 0x20
or rcx, r9
mov r11d, ebx
mov r10d, ebx
test rdi, rdi
je 0x180025270
mov rsi, rdi
test r9, r9
je 0x18002524f
mov rax, rcx
xor edx, edx
div r10
jmp 0x180025256
lea rax, [rsi - 1]
test r8, r8
mov r9, r14
je 0x1800250ca
cmp rsi, 8
mov ecx, 8
cmovb rcx, rsi
mov qword [r8 + 0x20], rcx
cmp rcx, rax
jbe 0x1800250ca
mov dword [r8 + rsi*4 - 4], 0
mov r11d, r10d
mov esi, 8
jmp 0x1800250ee
mov eax, 0
cmp dword [r9], r10d
jb 0x1800251d4
mov rdi, rax
nop word cs:[rax + rax]
mov eax, dword [r9 + rdi*4]
test rdi, rdi
je 0x18002510e
cmp eax, r10d
jb 0x180025140
test r8, r8
je 0x180025120
xor edx, edx
div r10d
mov dword [r8 + rdi*4], eax
mov eax, dword [r9 + rdi*4]
xor edx, edx
div r10d
mov dword [r9 + rdi*4], edx
test rdi, rdi
je 0x1800250e0
test edx, edx
jne 0x180025100
dec rdi
jmp 0x1800251a0
shl rax, 0x20
mov ecx, dword [r9 + rdi*4 - 4]
or rcx, rax
test rax, rax
je 0x18002515b
mov rax, rcx
xor edx, edx
div r11
jmp 0x180025162
mov eax, ecx
xor edx, edx
div r10d
mov rcx, qword [r9 + 0x20]
dec rcx
cmp rcx, 8
cmovae rcx, rsi
mov qword [r9 + 0x20], rcx
mov dword [r9 + rdi*4 - 4], edx
test r8, r8
je 0x180025184
mov dword [r8 + rdi*4 - 4], eax
mov rax, rdi
dec rax
je 0x1800250e0
cmp dword [r9 + rdi*4 - 4], 0
jne 0x1800250ee
add rdi, 0xfffffffffffffffe
mov rax, qword [r9 + 0x20]
dec rax
cmp rax, 8
cmovae rax, rsi
mov qword [r9 + 0x20], rax
mov rax, rdi
test r8, r8
je 0x1800251c6
mov dword [r8 + rdi*4], 0
mov rax, rdi
test rax, rax
jne 0x1800250ee
jmp 0x1800250e0
test r8, r8
je 0x180025200
mov rax, qword [r8 + 0x20]
dec rax
je 0x180025200
nop word cs:[rax + rax]
cmp dword [r8 + rax*4], 0
jne 0x180025200
mov qword [r8 + 0x20], rax
dec rax
jne 0x1800251f0
mov rax, qword [r9 + 0x20]
dec rax
je 0x180025016
nop dword [rax]
cmp dword [r9 + rax*4], 0
jne 0x180025016
mov qword [r9 + 0x20], rax
dec rax
jne 0x180025210
jmp 0x180025016
mov rcx, r14
test r8, r8
je 0x180025243
xor edx, edx
div r10d
mov qword [r8 + 0x20], 1
mov dword [r8], eax
mov eax, dword [rcx]
xor edx, edx
div r10d
mov dword [rcx], edx
jmp 0x180025016
mov eax, ecx
xor edx, edx
div r11d
mov dword [rsi], eax
shr rax, 0x20
mov dword [rsi + 4], eax
cmp rax, 1
mov eax, 2
sbb rax, 0
mov qword [rsi + 0x20], rax
test r9, r9
je 0x18002527f
mov rax, rcx
xor edx, edx
div r10
jmp 0x180025286
mov eax, ecx
xor edx, edx
div r11d
mov dword [r8], edx
mov dword [r8 + 4], 0
mov qword [r8 + 0x20], 1
jmp 0x180025016
lea rax, str.W:3rdParty_boost_1_85_0_boost_multiprecision_cpp_int_divide.hpp
mov qword [rbp - 0x30], rax
lea rax, [0x1800d6558]
mov qword [rbp - 0x28], rax
movabs rax, 0x5000000157
mov qword [rbp - 0x20], rax
lea rax, vtable.std::exception.0
mov qword [rbp - 0x48], rax
lea rdx, [rbp - 0x40]
xorps xmm0, xmm0
movups xmmword [rbp - 0x40], xmm0
lea rax, str.Integer_Division_by_zero.
mov qword [rbp - 0x58], rax
mov byte [rbp - 0x50], 1
lea rcx, [rbp - 0x58]
call fcn.1800681c8
lea rax, vtable.std::overflow_error.0
mov qword [rbp - 0x48], rax
lea rcx, [rbp - 0x48]
lea rdx, [rbp - 0x30]
call fcn.180014880
int3