Function at 0x180024600
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 0x1800246d9
cmp rsi, rdx
je 0x1800246d9
cmp rdi, rbx
je 0x180024704
cmp rsi, rbx
je 0x180024704
cmp rdi, rsi
je 0x18002474e
mov rcx, qword [rbx + 0x20]
mov rax, rcx
mov qword [rsp + 0x60], rcx
dec rcx
mov qword [rsp + 0x50], rcx
je 0x18002479b
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.1800cfcb0
mov r15, r14
dec r15
jne 0x1800247c4
test ebp, ebp
jne 0x1800247c4
test rdi, rdi
je 0x180024732
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.1800cfcb0
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 0x18002472a
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.180024600
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.180024600
cmp rsi, rdi
je 0x180024732
mov r8, qword [rsp + 0x40]
mov qword [rdi + 0x20], r8
shl r8, 2
lea rdx, [rsp + 0x20]
mov rcx, rdi
call fcn.1800cfcb0
jmp 0x180024732
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 0x180024f50
test rdi, rdi
je 0x1800247d7
mov qword [rdi + 0x20], 1
mov dword [rdi], 0
cmp r15, qword [rsp + 0x50]
jbe 0x180024dfd
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x30], xmm0
movdqa xmmword [rsp + 0x20], xmm0
mov qword [rsp + 0x40], 1
test rdi, rdi
je 0x180024836
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 0x180024836
lea rcx, [rdi + 4]
sub r14, qword [rsp + 0x60]
shl r14, 2
xor edx, edx
mov r8, r14
call fcn.1800d0350
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 0x18002486c
jbe 0x180024dc0
mov edx, dword [rsi + r15*4]
mov rax, qword [rsp + 0x60]
mov ecx, dword [rbx + rax*4 - 4]
test r15, r15
je 0x1800248a0
cmp edx, ecx
ja 0x1800248a0
shl rdx, 0x20
mov eax, dword [rsi + r15*4 - 4]
or rax, rdx
test rdx, rdx
je 0x1800248e3
xor edx, edx
div rcx
mov r12, rax
jmp 0x1800248ea
test r15, r15
je 0x1800248d5
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 0x180024bf7
xor edx, edx
div r8
mov r12, rax
jmp 0x180024902
mov eax, dword [rsi]
xor edx, edx
div ecx
mov r12d, eax
xor r15d, r15d
jmp 0x180024902
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 0x1800249e0
mov eax, dword [rdi + r14*4]
test r13b, 1
jne 0x180024940
mov ecx, eax
not ecx
cmp r12d, ecx
jae 0x18002494e
add eax, r12d
mov dword [rdi + r14*4], eax
jmp 0x1800249e0
sub eax, r12d
jbe 0x180024998
mov dword [rdi + r14*4], eax
jmp 0x1800249e0
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 0x180024986
cmp r14, 1
mov r8, r14
adc r8, 0
shl r8, 2
lea rcx, [rsp + 0x20]
xor edx, edx
call fcn.1800d0350
mov rcx, rdi
mov rdx, rdi
lea r8, [rsp + 0x20]
call fcn.180021520
jmp 0x1800249e0
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 0x1800249d0
cmp r14, 1
mov r8, r14
adc r8, 0
shl r8, 2
lea rcx, [rsp + 0x20]
xor edx, edx
call fcn.1800d0350
mov rcx, rdi
mov rdx, rdi
lea r8, [rsp + 0x20]
call fcn.1800212c0
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 0x180024a24
cmp r14, 1
mov r8, r14
adc r8, 0
shl r8, 2
lea rcx, [rsp + 0x20]
xor edx, edx
call fcn.1800d0350
test r13, r13
je 0x180024a40
mov eax, r12d
cmp r13, 1
jne 0x180024a50
xor edx, edx
xor ecx, ecx
jmp 0x180024aa4
xor eax, eax
mov r13, qword [rsp + 0x70]
jmp 0x180024af0
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 0x180024a70
test r13b, 1
je 0x180024ac8
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 0x180024af0
cmp rbp, 8
ja 0x180024af0
mov rax, qword [rsp + 0x40]
mov dword [rsp + rax*4 + 0x1c], ecx
mov ebp, 8
jmp 0x180024b20
cmp rbp, 8
jbe 0x180024b30
test al, al
mov ebp, 8
je 0x180024b20
lea rax, [r15 + 1]
cmp rax, 1
adc r15, 1
cmp rax, 8
jae 0x180024c04
xor eax, eax
jmp 0x180024c40
mov rax, qword [rsp + 0x40]
jmp 0x180024b4a
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 0x180024b78
nop word cs:[rax + rax]
test rdx, rdx
jle 0x180024ba0
mov r8d, dword [rsp + rdx*4 + 0x1c]
lea r9, [rdx - 1]
cmp dword [rsi + rdx*4 - 4], r8d
mov rdx, r9
je 0x180024b60
jbe 0x180024ba0
mov rcx, rsi
mov rdx, rsi
lea r8, [rsp + 0x20]
call fcn.1800212c0
test rdi, rdi
jne 0x180024d30
jmp 0x180024d72
mov rdx, rcx
or rdx, rax
je 0x180024bd9
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 0x180024bb0
mov qword [rsi + 0x20], rax
mov qword [rsp + 0x40], rcx
mov rcx, rsi
mov rdx, rsi
lea r8, [rsp + 0x20]
call fcn.1800212c0
jmp 0x180024d24
xor edx, edx
div r8d
mov r12d, eax
jmp 0x180024902
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 0x180024c10
jmp 0x180024c46
not dword [rsi + rax*4]
inc rax
cmp r15, rax
jne 0x180024c40
mov rax, qword [rsi + 0x20]
mov rcx, rax
dec rcx
je 0x180024c8f
cmp dword [rsi + rax*4 - 4], 0
je 0x180024c73
mov ecx, dword [rsi]
cmp ecx, 0xffffffff
jne 0x180024c96
test rax, rax
jne 0x180024c9c
mov ecx, 1
xor eax, eax
jmp 0x180024cd6
mov qword [rsi + 0x20], rcx
add rax, 0xfffffffffffffffe
je 0x180024c8f
nop dword [rax]
cmp dword [rsi + rax*4], 0
jne 0x180024c8f
mov qword [rsi + 0x20], rax
dec rax
jne 0x180024c80
mov ecx, dword [rsi]
cmp ecx, 0xffffffff
je 0x180024c9c
inc ecx
mov dword [rsi], ecx
jmp 0x180024d14
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 0x180024cd1
lea r8, [rdx + 1]
cmp rdx, rax
mov rdx, r8
jb 0x180024cb0
test rcx, rcx
je 0x180024d00
mov rdx, rax
inc rax
cmp rax, 8
cmovae rax, rbp
mov qword [rsi + 0x20], rax
cmp rax, rdx
jbe 0x180024d00
mov dword [rsi + rdx*4], ecx
mov rax, qword [rsi + 0x20]
nop word cs:[rax + rax]
dec rax
je 0x180024d14
cmp dword [rsi + rax*4], 0
jne 0x180024d14
mov qword [rsi + 0x20], rax
dec rax
jne 0x180024d05
mov rcx, rsi
mov rdx, rsi
lea r8, [rsp + 0x20]
call fcn.180021520
not r13b
and r13b, 1
test rdi, rdi
je 0x180024d72
mov eax, dword [rsp + 0x5c]
and al, 1
je 0x180024d72
mov rax, qword [rdi + 0x20]
cmp dword [rdi + rax*4 - 4], 0
jne 0x180024d6a
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 0x180024d50
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 0x180024dc0
ja 0x18002486c
mov rcx, rax
cmp rax, qword [rbx + 0x20]
jne 0x180024866
nop word cs:[rax + rax]
test rcx, rcx
jle 0x18002486c
mov edx, dword [rbx + rcx*4 - 4]
lea r8, [rcx - 1]
cmp dword [rsi + rcx*4 - 4], edx
mov rcx, r8
je 0x180024da0
ja 0x18002486c
test r13b, 1
je 0x180024732
cmp rax, 1
jne 0x180024dd9
cmp dword [rsi], 0
je 0x180024732
test rdi, rdi
je 0x180024ed1
mov dword [rsp + 0x6c], 1
mov eax, dword [rdi]
test eax, eax
je 0x180024ec1
dec eax
mov dword [rdi], eax
jmp 0x180024ed1
jb 0x180024732
mov rcx, r12
mov rax, qword [rsi + 0x20]
cmp rax, qword [rbx + 0x20]
jne 0x180024e77
test rax, rax
jle 0x180024e2c
mov edx, dword [rbx + rax*4 - 4]
lea r8, [rax - 1]
cmp dword [rsi + rax*4 - 4], edx
mov rax, r8
je 0x180024e10
jbe 0x180024732
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x30], xmm0
movdqa xmmword [rsp + 0x20], xmm0
mov qword [rsp + 0x40], 1
test r15, r15
jne 0x180024e96
test rdi, rdi
je 0x180024e62
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 0x180024732
jbe 0x180024732
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x30], xmm0
movdqa xmmword [rsp + 0x20], xmm0
mov qword [rsp + 0x40], 1
cmp r15, 1
jne 0x1800247fb
mov rcx, qword [rcx]
mov r8, qword [rbx]
test rdi, rdi
je 0x180024f05
mov rax, rcx
or rax, r8
shr rax, 0x20
je 0x180024ee4
mov rax, rcx
xor edx, edx
div r8
jmp 0x180024eeb
lea r8, [rsp + 0x6c]
mov rcx, rdi
mov rdx, rdi
call fcn.180021740
mov rcx, rsi
mov rdx, rbx
mov r8, rsi
call fcn.1800212c0
jmp 0x180024732
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 0x180024f1b
mov rax, rcx
xor edx, edx
div r8
jmp 0x180024f22
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 0x180024732
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 0x180024fe6
cmp r9, rdx
je 0x180024fe6
cmp rcx, r9
je 0x180025015
test r8d, r8d
je 0x18002528e
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.1800cfcb0
cmp rsi, 2
je 0x180025056
cmp rsi, 1
mov r8, rdi
mov r10d, ebx
jne 0x18002508f
mov eax, dword [r14]
cmp eax, r10d
jae 0x180025219
test r8, r8
je 0x180025006
mov qword [r8 + 0x20], 1
mov dword [r8], 0
jmp 0x180025006
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 0x180024f50
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 0x180024f50
cmp rdi, rsi
je 0x180025006
mov r8, qword [rbp - 0x10]
mov qword [rsi + 0x20], r8
shl r8, 2
lea rdx, [rbp - 0x30]
mov rcx, rsi
call fcn.1800cfcb0
jmp 0x180025006
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 0x180025260
mov rsi, rdi
test r9, r9
je 0x18002523f
mov rax, rcx
xor edx, edx
div r10
jmp 0x180025246
lea rax, [rsi - 1]
test r8, r8
mov r9, r14
je 0x1800250ba
cmp rsi, 8
mov ecx, 8
cmovb rcx, rsi
mov qword [r8 + 0x20], rcx
cmp rcx, rax
jbe 0x1800250ba
mov dword [r8 + rsi*4 - 4], 0
mov r11d, r10d
mov esi, 8
jmp 0x1800250de
mov eax, 0
cmp dword [r9], r10d
jb 0x1800251c4
mov rdi, rax
nop word cs:[rax + rax]
mov eax, dword [r9 + rdi*4]
test rdi, rdi
je 0x1800250fe
cmp eax, r10d
jb 0x180025130
test r8, r8
je 0x180025110
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 0x1800250d0
test edx, edx
jne 0x1800250f0
dec rdi
jmp 0x180025190
shl rax, 0x20
mov ecx, dword [r9 + rdi*4 - 4]
or rcx, rax
test rax, rax
je 0x18002514b
mov rax, rcx
xor edx, edx
div r11
jmp 0x180025152
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 0x180025174
mov dword [r8 + rdi*4 - 4], eax
mov rax, rdi
dec rax
je 0x1800250d0
cmp dword [r9 + rdi*4 - 4], 0
jne 0x1800250de
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 0x1800251b6
mov dword [r8 + rdi*4], 0
mov rax, rdi
test rax, rax
jne 0x1800250de
jmp 0x1800250d0
test r8, r8
je 0x1800251f0
mov rax, qword [r8 + 0x20]
dec rax
je 0x1800251f0
nop word cs:[rax + rax]
cmp dword [r8 + rax*4], 0
jne 0x1800251f0
mov qword [r8 + 0x20], rax
dec rax
jne 0x1800251e0
mov rax, qword [r9 + 0x20]
dec rax
je 0x180025006
nop dword [rax]
cmp dword [r9 + rax*4], 0
jne 0x180025006
mov qword [r9 + 0x20], rax
dec rax
jne 0x180025200
jmp 0x180025006
mov rcx, r14
test r8, r8
je 0x180025233
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 0x180025006
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 0x18002526f
mov rax, rcx
xor edx, edx
div r10
jmp 0x180025276
mov eax, ecx
xor edx, edx
div r11d
mov dword [r8], edx
mov dword [r8 + 4], 0
mov qword [r8 + 0x20], 1
jmp 0x180025006
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.180068868
lea rax, vtable.std::overflow_error.0
mov qword [rbp - 0x48], rax
lea rcx, [rbp - 0x48]
lea rdx, [rbp - 0x30]
call fcn.180014870
int3