Function at 0x14015dce0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x168]
sub rsp, 0x240
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm9
movaps xmmword [rax - 0x78], xmm10
movaps xmmword [rax - 0x88], xmm11
mov rax, qword [0x140a480a8]
xor rax, rsp
mov qword [rbp + 0xd8], rax
mov rdi, rcx
mov qword [rsp + 0x70], rcx
lea rcx, [rsp + 0x78]
call fcn.1400e3480
nop
xor ebx, ebx
lea rsi, [rdi + 0x20]
mov rcx, rsi
call fcn.1401261b0
test rax, rax
je 0x14015dd89
xor edi, edi
nop
mov rdx, rdi
mov rcx, rsi
call fcn.1400fdfd0
mov rdx, rax
lea rcx, [rsp + 0x78]
call fcn.1400fe100
inc ebx
mov edi, ebx
mov rcx, rsi
call fcn.1401261b0
cmp rdi, rax
jb 0x14015dd60
xorps xmm3, xmm3
movsd qword [rsp + 0x28], xmm3
movsd qword [rsp + 0x38], xmm3
movsd qword [rsp + 0x28], xmm3
movsd qword [rsp + 0x38], xmm3
movsd qword [rsp + 0x38], xmm3
movsd xmm0, qword [rsp + 0x38]
movsd xmm4, qword [0x1408ba260]
comisd xmm4, xmm0
jbe 0x14015de91
movsd xmm7, qword [0x1408b9d18]
movsd xmm8, qword [0x1408b5bf8]
movsd xmm9, qword [0x1408b7f80]
movsd xmm10, qword [0x1408b9cb8]
movsd xmm5, qword [0x1408b9bc0]
movsd xmm6, qword [0x1408b4358]
nop word [rax + rax]
movsd xmm2, qword [rsp + 0x38]
mulsd xmm2, xmm7
mulsd xmm2, qword [rsp + 0x38]
movsd xmm1, qword [rsp + 0x38]
movsd xmm0, qword [rsp + 0x38]
mulsd xmm1, xmm0
subsd xmm2, xmm1
movsd xmm0, qword [rsp + 0x38]
mulsd xmm0, xmm8
mulsd xmm0, qword [rsp + 0x38]
addsd xmm0, xmm9
divsd xmm2, xmm0
addsd xmm2, qword [rsp + 0x28]
movsd qword [rsp + 0x28], xmm2
movsd xmm0, qword [rsp + 0x28]
comisd xmm0, xmm10
jbe 0x14015de71
movsd xmm1, qword [rsp + 0x28]
movsd xmm0, qword [rsp + 0x38]
mulsd xmm0, xmm5
subsd xmm1, xmm0
movsd qword [rsp + 0x28], xmm1
movsd xmm0, qword [rsp + 0x38]
addsd xmm0, xmm6
movsd qword [rsp + 0x38], xmm0
movsd xmm1, qword [rsp + 0x38]
comisd xmm4, xmm1
ja 0x14015de00
movsd xmm0, qword [rsp + 0x28]
comisd xmm3, xmm0
jbe 0x14015deac
call fcn.14087af77
call fcn.14087af4d
jmp 0x14015f355
movss xmm0, dword [0x1408ba55c]
movss dword [rsp + 0x40], xmm0
movss xmm1, dword [0x1408ba498]
movss dword [rsp + 0x20], xmm1
movss xmm0, dword [0x1408ba3e8]
movss dword [rsp + 0x50], xmm0
movss xmm1, dword [0x1408ba320]
movss dword [rsp + 0x30], xmm1
movss xmm2, dword [rsp + 0x20]
movss xmm0, dword [rsp + 0x30]
subss xmm2, xmm0
movss dword [rsp + 0x20], xmm2
movss xmm1, dword [rsp + 0x30]
movss xmm0, dword [rsp + 0x20]
addss xmm1, xmm0
movss dword [rsp + 0x20], xmm1
movss xmm2, dword [rsp + 0x20]
movss xmm0, dword [rsp + 0x30]
subss xmm2, xmm0
movss dword [rsp + 0x20], xmm2
movss xmm1, dword [rsp + 0x20]
movss xmm0, dword [rsp + 0x30]
subss xmm1, xmm0
movss dword [rsp + 0x20], xmm1
movss xmm1, dword [rsp + 0x20]
movss xmm0, dword [rsp + 0x40]
comiss xmm1, xmm0
jbe 0x14015dfac
movss xmm1, dword [rsp + 0x20]
movss xmm0, dword [rsp + 0x30]
subss xmm1, xmm0
movss dword [rsp + 0x20], xmm1
movss xmm2, dword [rsp + 0x50]
movss xmm0, dword [rsp + 0x40]
mulss xmm2, xmm0
movss dword [rsp + 0x40], xmm2
movss xmm1, dword [rsp + 0x30]
movss xmm0, dword [rsp + 0x20]
subss xmm1, xmm0
movss dword [rsp + 0x30], xmm1
movss xmm2, dword [rsp + 0x20]
movss xmm0, dword [rsp + 0x30]
subss xmm2, xmm0
movss dword [rsp + 0x20], xmm2
mov r12, qword [rsp + 0x70]
jmp 0x14015e00b
movss xmm1, dword [rsp + 0x40]
movss xmm0, dword [rsp + 0x50]
subss xmm1, xmm0
movss dword [rsp + 0x40], xmm1
movss xmm2, dword [rsp + 0x50]
movss xmm0, dword [rsp + 0x40]
mulss xmm2, xmm0
movss dword [rsp + 0x50], xmm2
lea r12, [fcn.14087af4d]
movss xmm1, dword [rsp + 0x50]
movss xmm0, dword [rsp + 0x40]
addss xmm1, xmm0
movss dword [rsp + 0x40], xmm1
movss xmm2, dword [rsp + 0x40]
movss xmm0, dword [rsp + 0x50]
subss xmm2, xmm0
movss dword [rsp + 0x40], xmm2
xor eax, eax
lea rcx, [rbp - 0x40]
mov byte [rcx], al
inc eax
lea rcx, [rcx + 1]
cmp eax, 0x100
jb 0x14015e011
xor r9d, r9d
xor cl, cl
mov r10d, 0xff
lea rsi, [fcn.14087af77]
xor edi, edi
mov r11d, 1
cmp r10d, r11d
jbe 0x14015e050
nop
lea r11d, [r11*2 + 1]
cmp r11d, r10d
jb 0x14015e040
nop dword [rax]
movzx eax, cl
movzx edx, byte [rbp + rax - 0x40]
mov eax, r9d
test r9d, r9d
je 0x14015e0a9
sub eax, 1
je 0x14015e099
sub eax, 1
je 0x14015e089
cmp eax, 1
je 0x14015e079
lea eax, [r9 - 4]
movzx eax, byte [rax + rsi]
jmp 0x14015e0b4
movsd xmm0, qword [rsp + 0x28]
cvttsd2si rax, xmm0
shr eax, 0x18
jmp 0x14015e0b4
movsd xmm0, qword [rsp + 0x28]
cvttsd2si rax, xmm0
shr eax, 0x10
jmp 0x14015e0b4
movsd xmm0, qword [rsp + 0x28]
cvttsd2si rax, xmm0
shr eax, 8
jmp 0x14015e0b4
movsd xmm0, qword [rsp + 0x28]
cvttsd2si rax, xmm0
add al, dl
movzx edx, al
lea r8d, [r9 + 1]
lea eax, [rdx + 0x1b]
movzx ecx, al
cmp r8d, 0x1b
cmovb ecx, edx
movzx ebx, cl
xor r9d, r9d
cmp r8d, 0x1b
cmovb r9d, r8d
mov eax, ebx
and eax, r11d
inc edi
cmp edi, 0xb
jbe 0x14015e0eb
xor edx, edx
div r10d
mov eax, edx
movzx ecx, bl
cmp eax, r10d
ja 0x14015e050
je 0x14015e118
mov edx, eax
mov ecx, r10d
movzx eax, byte [rbp + rdx - 0x40]
xor al, byte [rbp + rcx - 0x40]
mov byte [rbp + rcx - 0x40], al
xor byte [rbp + rdx - 0x40], al
movzx eax, byte [rbp + rdx - 0x40]
xor byte [rbp + rcx - 0x40], al
add r10d, 0xffffffff
movzx ecx, bl
jne 0x14015e032
movzx r14d, byte [rbp - 0x3b]
movzx edx, byte [rbp - 0x39]
movzx ecx, byte [rbp + rbx - 0x40]
movzx r11d, byte [r12]
sub r11b, 5
shl r11b, 4
movzx eax, byte [r12 + 1]
add al, 0x73
or r11b, al
mov r9d, ecx
movzx r10d, byte [rbp + rcx - 0x40]
movzx eax, byte [rbp - 0x3f]
lea esi, [rax + 1]
movzx r15d, byte [rbp - 0x3d]
add r15b, byte [rbp + rax - 0x40]
movzx r8d, r15b
movzx eax, byte [rbp + r8 - 0x40]
mov byte [rbp + rcx - 0x40], al
movzx eax, byte [rbp + rdx - 0x40]
mov byte [rbp + r8 - 0x40], al
movzx ecx, sil
movzx eax, byte [rbp + rcx - 0x40]
mov byte [rbp + rdx - 0x40], al
mov byte [rbp + rcx - 0x40], r10b
add r14b, byte [rbp + r10 - 0x40]
movzx eax, r14b
movzx ecx, byte [rbp + rax - 0x40]
movzx eax, byte [rbp + r9 - 0x40]
add rcx, rax
movzx eax, byte [rbp + rdx - 0x40]
add rcx, rax
movzx eax, cl
movzx edx, byte [rbp + rax - 0x40]
movzx ecx, byte [rbp + r8 - 0x40]
add rcx, r10
movzx eax, cl
movzx ecx, byte [rbp + rdx - 0x40]
xor cl, byte [rbp + rax - 0x40]
xor cl, r11b
movzx ebx, byte [r12 + 2]
sub bl, 5
shl bl, 4
movzx eax, byte [r12 + 3]
add al, 0x73
or bl, al
movzx r9d, r11b
movzx r11d, byte [rbp + r9 - 0x40]
inc sil
add r15b, r10b
movzx r8d, r15b
movzx eax, byte [rbp + r8 - 0x40]
mov byte [rbp + r9 - 0x40], al
movzx edx, cl
movzx eax, byte [rbp + rdx - 0x40]
mov byte [rbp + r8 - 0x40], al
movzx ecx, sil
movzx eax, byte [rbp + rcx - 0x40]
mov byte [rbp + rdx - 0x40], al
mov byte [rbp + rcx - 0x40], r11b
add r14b, byte [rbp + r11 - 0x40]
movzx eax, r14b
movzx ecx, byte [rbp + rax - 0x40]
movzx eax, byte [rbp + rdx - 0x40]
add rcx, rax
movzx eax, byte [rbp + r9 - 0x40]
add rcx, rax
movzx eax, cl
movzx edx, byte [rbp + rax - 0x40]
movzx ecx, byte [rbp + r8 - 0x40]
add rcx, r11
movzx eax, cl
movzx r8d, byte [rbp + rdx - 0x40]
xor r8b, byte [rbp + rax - 0x40]
xor r8b, bl
mov byte [rbp + 0xc0], r8b
mov edi, 2
movzx r13d, byte [r12 + 4]
sub r13b, 5
shl r13b, 4
movzx eax, byte [r12 + 5]
add al, 0x73
or r13b, al
movzx r10d, bl
movzx ecx, byte [rbp + r10 - 0x40]
inc sil
add r15b, r11b
movzx r9d, r15b
movzx eax, byte [rbp + r9 - 0x40]
mov byte [rbp + r10 - 0x40], al
movzx r8d, r8b
movzx eax, byte [rbp + r8 - 0x40]
mov byte [rbp + r9 - 0x40], al
movzx eax, sil
lea rdx, [rbp - 0x40]
add rdx, rax
mov qword [rsp + 0x68], rdx
movzx eax, byte [rdx]
mov byte [rbp + r8 - 0x40], al
mov byte [rdx], cl
mov edx, ecx
add r14b, byte [rbp + rcx - 0x40]
movzx eax, r14b
movzx ecx, byte [rbp + rax - 0x40]
movzx eax, byte [rbp + r8 - 0x40]
add rcx, rax
movzx eax, byte [rbp + r10 - 0x40]
add rcx, rax
movzx eax, cl
movzx ecx, byte [rbp + rax - 0x40]
movzx eax, byte [rbp + r9 - 0x40]
add rax, rdx
movzx eax, al
movzx edx, byte [rbp + rcx - 0x40]
xor dl, byte [rbp + rax - 0x40]
xor dl, r13b
mov byte [rbp + 0xc1], dl
mov eax, 4
mov dword [rsp + 0x38], eax
mov qword [rsp + 0x60], 7
movsd xmm3, qword [0x1408ba1b0]
movsd xmm4, qword [0x1408ba020]
movsd xmm5, qword [0x1408b9e50]
movss xmm6, dword [0x1408ba59c]
movss xmm7, dword [0x1408b5880]
movss xmm8, dword [0x1408ba4b0]
movss xmm9, dword [0x1408ba420]
movss xmm10, dword [0x1408ba37c]
movss xmm11, dword [0x1408ba2e0]
nop word [rax + rax]
movsd qword [rsp + 0x28], xmm3
movsd qword [rsp + 0x20], xmm4
movsd qword [rsp + 0x30], xmm5
movsd xmm1, qword [rsp + 0x30]
movsd xmm0, qword [rsp + 0x28]
addsd xmm1, xmm0
movsd qword [rsp + 0x28], xmm1
movsd xmm2, qword [rsp + 0x30]
movsd xmm0, qword [rsp + 0x20]
addsd xmm2, xmm0
movsd qword [rsp + 0x20], xmm2
movsd xmm1, qword [rsp + 0x28]
movsd xmm0, qword [rsp + 0x30]
subsd xmm1, xmm0
movsd qword [rsp + 0x28], xmm1
movsd xmm1, qword [rsp + 0x28]
movsd xmm0, qword [rsp + 0x30]
comisd xmm1, xmm0
jbe 0x14015e436
movsd xmm1, qword [rsp + 0x30]
movsd xmm0, qword [rsp + 0x28]
mulsd xmm1, xmm0
movsd qword [rsp + 0x30], xmm1
inc edi
add eax, 2
mov dword [rsp + 0x38], eax
movsd xmm1, qword [rsp + 0x30]
movsd xmm0, qword [rsp + 0x28]
mulsd xmm1, xmm0
movsd qword [rsp + 0x30], xmm1
movsd xmm2, qword [rsp + 0x30]
movsd xmm0, qword [rsp + 0x20]
mulsd xmm2, xmm0
movsd qword [rsp + 0x20], xmm2
jmp 0x14015e552
movsd xmm1, qword [rsp + 0x20]
movsd xmm0, qword [rsp + 0x28]
divsd xmm1, xmm0
movsd qword [rsp + 0x20], xmm1
movsd xmm2, qword [rsp + 0x28]
movsd xmm0, qword [rsp + 0x30]
subsd xmm2, xmm0
movsd qword [rsp + 0x28], xmm2
movsd xmm1, qword [rsp + 0x20]
movsd xmm0, qword [rsp + 0x28]
mulsd xmm1, xmm0
movsd qword [rsp + 0x20], xmm1
movsd xmm2, qword [rsp + 0x30]
movsd xmm0, qword [rsp + 0x20]
addsd xmm2, xmm0
movsd qword [rsp + 0x20], xmm2
movsd xmm1, qword [rsp + 0x30]
movsd xmm0, qword [rsp + 0x28]
mulsd xmm1, xmm0
movsd qword [rsp + 0x30], xmm1
movsd xmm2, qword [rsp + 0x30]
movsd xmm0, qword [rsp + 0x28]
subsd xmm2, xmm0
movsd qword [rsp + 0x30], xmm2
movsd xmm1, qword [rsp + 0x28]
movsd xmm0, qword [rsp + 0x30]
comisd xmm1, xmm0
jbe 0x14015e510
movsd xmm1, qword [rsp + 0x20]
movsd xmm0, qword [rsp + 0x28]
addsd xmm1, xmm0
movsd qword [rsp + 0x20], xmm1
movsd xmm2, qword [rsp + 0x20]
movsd xmm0, qword [rsp + 0x28]
mulsd xmm2, xmm0
movsd qword [rsp + 0x20], xmm2
movsd xmm1, qword [rsp + 0x28]
movsd xmm0, qword [rsp + 0x30]
subsd xmm1, xmm0
movsd qword [rsp + 0x28], xmm1
jmp 0x14015e552
movsd xmm1, qword [rsp + 0x30]
movsd xmm0, qword [rsp + 0x28]
addsd xmm1, xmm0
movsd qword [rsp + 0x28], xmm1
movsd xmm2, qword [rsp + 0x20]
movsd xmm0, qword [rsp + 0x28]
addsd xmm2, xmm0
movsd qword [rsp + 0x20], xmm2
movsd xmm1, qword [rsp + 0x20]
movsd xmm0, qword [rsp + 0x28]
addsd xmm1, xmm0
movsd qword [rsp + 0x20], xmm1
cdqe
movzx r11d, byte [rax + r12]
movzx ecx, byte [rax + r12 + 1]
movss dword [rsp + 0x30], xmm6
movss dword [rsp + 0x50], xmm7
movss dword [rsp + 0x48], xmm8
movss dword [rsp + 0x20], xmm9
movss dword [rsp + 0x28], xmm10
movss dword [rsp + 0x40], xmm11
movss xmm1, dword [rsp + 0x28]
movss xmm0, dword [rsp + 0x40]
subss xmm1, xmm0
movss dword [rsp + 0x28], xmm1
movss xmm2, dword [rsp + 0x40]
movss xmm0, dword [rsp + 0x48]
mulss xmm2, xmm0
movss dword [rsp + 0x48], xmm2
movss xmm1, dword [rsp + 0x40]
movss xmm0, dword [rsp + 0x20]
addss xmm1, xmm0
movss dword [rsp + 0x20], xmm1
movss xmm2, dword [rsp + 0x40]
movss xmm0, dword [rsp + 0x20]
mulss xmm2, xmm0
movss dword [rsp + 0x20], xmm2
movss xmm1, dword [rsp + 0x40]
movss xmm0, dword [rsp + 0x20]
addss xmm1, xmm0
movss dword [rsp + 0x20], xmm1
movss xmm2, dword [rsp + 0x30]
movss xmm0, dword [rsp + 0x40]
subss xmm2, xmm0
movss dword [rsp + 0x30], xmm2
movss xmm1, dword [rsp + 0x28]
movss xmm0, dword [rsp + 0x20]
comiss xmm0, xmm1
jbe 0x14015e6a9
movss xmm1, dword [rsp + 0x40]
movss xmm0, dword [rsp + 0x20]
addss xmm1, xmm0
movss dword [rsp + 0x20], xmm1
movss xmm2, dword [rsp + 0x50]
movss xmm0, dword [rsp + 0x20]
subss xmm2, xmm0
movss dword [rsp + 0x50], xmm2
movss xmm1, dword [rsp + 0x50]
movss xmm0, dword [rsp + 0x20]
subss xmm1, xmm0
movss dword [rsp + 0x50], xmm1
movss xmm2, dword [rsp + 0x20]
movss xmm0, dword [rsp + 0x50]
addss xmm2, xmm0
movss dword [rsp + 0x50], xmm2
movss xmm1, dword [rsp + 0x48]
movss xmm0, dword [rsp + 0x28]
subss xmm1, xmm0
movss dword [rsp + 0x48], xmm1
movss xmm2, dword [rsp + 0x48]
movss xmm0, dword [rsp + 0x30]
addss xmm2, xmm0
movss dword [rsp + 0x30], xmm2
jmp 0x14015e72d
movss xmm1, dword [rsp + 0x50]
movss xmm0, dword [rsp + 0x48]
divss xmm1, xmm0
movss dword [rsp + 0x50], xmm1
movss xmm2, dword [rsp + 0x40]
movss xmm0, dword [rsp + 0x30]
divss xmm2, xmm0
movss dword [rsp + 0x40], xmm2
movss xmm1, dword [rsp + 0x40]
movss xmm0, dword [rsp + 0x30]
mulss xmm1, xmm0
movss dword [rsp + 0x40], xmm1
movss xmm2, dword [rsp + 0x50]
movss xmm0, dword [rsp + 0x48]
divss xmm2, xmm0
movss dword [rsp + 0x50], xmm2
movss xmm1, dword [rsp + 0x30]
movss xmm0, dword [rsp + 0x50]
divss xmm1, xmm0
movss dword [rsp + 0x30], xmm1
movss xmm2, dword [rsp + 0x28]
movss xmm0, dword [rsp + 0x40]
subss xmm2, xmm0
movss dword [rsp + 0x28], xmm2
add r11b, 0xb
shl r11b, 4
add cl, 0x73
or r11b, cl
movzx r9d, r13b
movzx ebx, byte [rbp + r9 - 0x40]
inc sil
mov rax, qword [rsp + 0x68]
add r15b, byte [rax]
movzx r10d, r15b
movzx eax, byte [rbp + r10 - 0x40]
mov byte [rbp + r9 - 0x40], al
movzx r8d, dl
movzx eax, byte [rbp + r8 - 0x40]
mov byte [rbp + r10 - 0x40], al
movzx eax, sil
lea rcx, [rbp - 0x40]
add rcx, rax
mov qword [rsp + 0x68], rcx
movzx eax, byte [rcx]
mov byte [rbp + r8 - 0x40], al
mov byte [rcx], bl
add r14b, byte [rbp + rbx - 0x40]
movzx eax, r14b
movzx ecx, byte [rbp + rax - 0x40]
movzx eax, byte [rbp + r9 - 0x40]
add rcx, rax
movzx eax, byte [rbp + r8 - 0x40]
add rcx, rax
movzx eax, cl
movzx ecx, byte [rbp + rax - 0x40]
movzx eax, byte [rbp + r10 - 0x40]
add rax, rbx
movzx eax, al
movzx edx, byte [rbp + rcx - 0x40]
xor dl, byte [rbp + rax - 0x40]
xor dl, r11b
movzx r13d, r11b
test edi, edi
je 0x14015e7da
lea eax, [rdi - 1]
mov byte [rbp + rax + 0xc0], dl
sub qword [rsp + 0x60], 1
mov eax, dword [rsp + 0x38]
jne 0x14015e380
lea r8d, [rdi + 1]
cmp r8d, 0x13
jge 0x14015e8df
lea ecx, [rdi + rdi]
mov eax, reloc.WS2_32.dll_send
sub eax, r8d
mov r8d, eax
mov qword [rsp + 0x60], r8
nop dword [rax + rax]
mov dword [rsp + 0x38], edi
add ecx, 2
mov dword [rsp + 0x28], ecx
movsxd rax, ecx
movzx r11d, byte [rax + r12 + 1]
add r11b, 0x73
movzx ecx, byte [rax + r12]
sub cl, 5
shl cl, 4
or r11b, cl
movzx r9d, r13b
movzx r13d, byte [rbp + r9 - 0x40]
inc sil
add r15b, bl
movzx r10d, r15b
movzx eax, byte [rbp + r10 - 0x40]
mov byte [rbp + r9 - 0x40], al
movzx r8d, dl
movzx eax, byte [rbp + r8 - 0x40]
mov byte [rbp + r10 - 0x40], al
movzx ecx, sil
movzx eax, byte [rbp + rcx - 0x40]
mov byte [rbp + r8 - 0x40], al
mov byte [rbp + rcx - 0x40], r13b
add r14b, byte [rbp + r13 - 0x40]
movzx eax, r14b
movzx ecx, byte [rbp + rax - 0x40]
movzx eax, byte [rbp + r9 - 0x40]
add rcx, rax
movzx eax, byte [rbp + r8 - 0x40]
add rcx, rax
movzx eax, cl
movzx ecx, byte [rbp + rax - 0x40]
movzx eax, byte [rbp + r10 - 0x40]
add rax, r13
movzx eax, al
movzx edx, byte [rbp + rcx - 0x40]
xor dl, byte [rbp + rax - 0x40]
xor dl, r11b
add edi, 1
je 0x14015e8c7
mov eax, dword [rsp + 0x38]
mov byte [rbp + rax + 0xc0], dl
sub qword [rsp + 0x60], 1
movzx ebx, r13b
movzx r13d, r11b
mov ecx, dword [rsp + 0x28]
jne 0x14015e810
mov dword [rsp + 0x38], edi
inc edi
mov dword [rsp + 0x28], edi
lea eax, [rdi + rdi]
cdqe
movzx r8d, byte [rax + r12]
sub r8b, 5
shl r8b, 4
movzx eax, byte [rax + r12 + 1]
add al, 0x73
or r8b, al
movzx r9d, r13b
movzx ebx, byte [rbp + r9 - 0x40]
movzx eax, sil
inc sil
add r15b, byte [rbp + rax - 0x40]
movzx r10d, r15b
movzx eax, byte [rbp + r10 - 0x40]
mov byte [rbp + r9 - 0x40], al
movzx r11d, dl
movzx eax, byte [rbp + r11 - 0x40]
mov byte [rbp + r10 - 0x40], al
movzx ecx, sil
movzx eax, byte [rbp + rcx - 0x40]
mov byte [rbp + r11 - 0x40], al
mov byte [rbp + rcx - 0x40], bl
add r14b, byte [rbp + rbx - 0x40]
movss xmm0, dword [0x1408ba5b8]
movss dword [rsp + 0x20], xmm0
movss xmm1, dword [0x1408ba54c]
movss dword [rsp + 0x50], xmm1
movss xmm0, dword [0x1408ba48c]
movss dword [rsp + 0x40], xmm0
movss xmm1, dword [0x1408ba3e4]
movss dword [rsp + 0x30], xmm1
movss xmm0, dword [0x1408ba31c]
movss dword [rsp + 0x48], xmm0
movss xmm1, dword [rsp + 0x48]
movss xmm0, dword [rsp + 0x50]
mulss xmm1, xmm0
movss dword [rsp + 0x50], xmm1
movss xmm2, dword [rsp + 0x48]
movss xmm0, dword [rsp + 0x40]
mulss xmm2, xmm0
movss dword [rsp + 0x40], xmm2
movss xmm1, dword [rsp + 0x40]
movss xmm0, dword [rsp + 0x48]
subss xmm1, xmm0
movss dword [rsp + 0x40], xmm1
movss xmm2, dword [rsp + 0x40]
movss xmm0, dword [rsp + 0x48]
subss xmm2, xmm0
movss dword [rsp + 0x40], xmm2
movss xmm1, dword [rsp + 0x48]
movss xmm0, dword [rsp + 0x20]
addss xmm1, xmm0
movss dword [rsp + 0x20], xmm1
movss xmm1, dword [rsp + 0x50]
movss xmm0, dword [rsp + 0x48]
comiss xmm0, xmm1
jbe 0x14015ebed
movss xmm1, dword [rsp + 0x48]
movss xmm0, dword [rsp + 0x40]
mulss xmm1, xmm0
movss dword [rsp + 0x40], xmm1
movss xmm2, dword [rsp + 0x48]
movss xmm0, dword [rsp + 0x50]
subss xmm2, xmm0
movss dword [rsp + 0x48], xmm2
movss xmm1, dword [rsp + 0x30]
movss xmm0, dword [rsp + 0x20]
mulss xmm1, xmm0
movss dword [rsp + 0x30], xmm1
movss xmm2, dword [rsp + 0x48]
movss xmm0, dword [rsp + 0x50]
addss xmm2, xmm0
movss dword [rsp + 0x48], xmm2
movss xmm1, dword [rsp + 0x40]
movss xmm0, dword [rsp + 0x20]
addss xmm1, xmm0
movss dword [rsp + 0x20], xmm1
movss xmm2, dword [rsp + 0x30]
movss xmm0, dword [rsp + 0x50]
mulss xmm2, xmm0
movss dword [rsp + 0x50], xmm2
movss xmm1, dword [rsp + 0x20]
movss xmm0, dword [rsp + 0x40]
subss xmm1, xmm0
movss dword [rsp + 0x20], xmm1
movss xmm2, dword [rsp + 0x48]
movss xmm0, dword [rsp + 0x50]
mulss xmm2, xmm0
movss dword [rsp + 0x48], xmm2
movss xmm1, dword [rsp + 0x30]
movss xmm0, dword [rsp + 0x50]
addss xmm1, xmm0
movss dword [rsp + 0x50], xmm1
movss xmm2, dword [rsp + 0x50]
movss xmm0, dword [rsp + 0x30]
subss xmm2, xmm0
movss dword [rsp + 0x50], xmm2
movss xmm1, dword [rsp + 0x30]
movss xmm0, dword [rsp + 0x20]
comiss xmm0, xmm1
jbe 0x14015eb7a
movss xmm1, dword [rsp + 0x50]
movss xmm0, dword [rsp + 0x20]
mulss xmm1, xmm0
movss dword [rsp + 0x20], xmm1
movss xmm2, dword [rsp + 0x50]
movss xmm0, dword [rsp + 0x40]
subss xmm2, xmm0
movss dword [rsp + 0x50], xmm2
movss xmm1, dword [rsp + 0x48]
movss xmm0, dword [rsp + 0x20]
divss xmm1, xmm0
movss dword [rsp + 0x48], xmm1
movss xmm2, dword [rsp + 0x30]
movss xmm0, dword [rsp + 0x40]
mulss xmm2, xmm0
movss dword [rsp + 0x40], xmm2
movss xmm1, dword [rsp + 0x48]
movss xmm0, dword [rsp + 0x20]
mulss xmm1, xmm0
movss dword [rsp + 0x48], xmm1
jmp 0x14015ec96
movss xmm1, dword [rsp + 0x40]
movss xmm0, dword [rsp + 0x20]
mulss xmm1, xmm0
movss dword [rsp + 0x20], xmm1
movss xmm2, dword [rsp + 0x20]
movss xmm0, dword [rsp + 0x40]
divss xmm2, xmm0
movss dword [rsp + 0x20], xmm2
movss xmm1, dword [rsp + 0x20]
movss xmm0, dword [rsp + 0x40]
divss xmm1, xmm0
movss dword [rsp + 0x20], xmm1
movss xmm2, dword [rsp + 0x40]
movss xmm0, dword [rsp + 0x48]
divss xmm2, xmm0
movss dword [rsp + 0x40], xmm2
movss xmm1, dword [rsp + 0x48]
movss xmm0, dword [rsp + 0x50]
mulss xmm1, xmm0
movss dword [rsp + 0x48], xmm1
jmp 0x14015ec96
movss xmm1, dword [rsp + 0x30]
movss xmm0, dword [rsp + 0x50]
addss xmm1, xmm0
movss dword [rsp + 0x50], xmm1
movss xmm2, dword [rsp + 0x48]
movss xmm0, dword [rsp + 0x50]
addss xmm2, xmm0
movss dword [rsp + 0x48], xmm2
movss xmm1, dword [rsp + 0x30]
movss xmm0, dword [rsp + 0x50]
addss xmm1, xmm0
movss dword [rsp + 0x50], xmm1
movss xmm2, dword [rsp + 0x48]
movss xmm0, dword [rsp + 0x40]
addss xmm2, xmm0
movss dword [rsp + 0x40], xmm2
movzx eax, r14b
movzx ecx, byte [rbp + rax - 0x40]
movzx eax, byte [rbp + r9 - 0x40]
add rcx, rax
movzx eax, byte [rbp + r11 - 0x40]
add rcx, rax
movzx eax, cl
movzx ecx, byte [rbp + rax - 0x40]
movzx eax, byte [rbp + r10 - 0x40]
add rax, rbx
movzx eax, al
movzx edx, byte [rbp + rcx - 0x40]
xor dl, byte [rbp + rax - 0x40]
xor dl, r8b
movss xmm1, dword [rsp + 0x20]
movss xmm0, dword [rsp + 0x40]
subss xmm1, xmm0
movss dword [rsp + 0x20], xmm1
test edi, edi
je 0x14015eca5
mov eax, dword [rsp + 0x38]
mov byte [rbp + rax + 0xc0], dl
inc edi
mov r13d, edi
lea eax, [rdi + rdi]
cdqe
movzx r10d, byte [rax + r12]
sub r10b, 5
shl r10b, 4
movzx eax, byte [rax + r12 + 1]
add al, 0x73
or r10b, al
movzx r9d, r8b
movzx r11d, byte [rbp + r9 - 0x40]
inc sil
add r15b, bl
movzx r8d, r15b
movzx eax, byte [rbp + r8 - 0x40]
mov byte [rbp + r9 - 0x40], al
movzx edx, dl
movzx eax, byte [rbp + rdx - 0x40]
mov byte [rbp + r8 - 0x40], al
movzx ecx, sil
movzx eax, byte [rbp + rcx - 0x40]
mov byte [rbp + rdx - 0x40], al
mov byte [rbp + rcx - 0x40], r11b
add r14b, byte [rbp + r11 - 0x40]
movzx eax, r14b
movzx ecx, byte [rbp + rax - 0x40]
movzx eax, byte [rbp + rdx - 0x40]
add rcx, rax
movzx eax, byte [rbp + r9 - 0x40]
add rcx, rax
movzx eax, cl
movzx edx, byte [rbp + rax - 0x40]
movzx ecx, byte [rbp + r8 - 0x40]
add rcx, r11
movzx eax, cl
movzx ecx, byte [rbp + rdx - 0x40]
xor cl, byte [rbp + rax - 0x40]
xor cl, r10b
test edi, edi
je 0x14015ed53
mov eax, dword [rsp + 0x28]
mov byte [rbp + rax + 0xc0], cl
inc edi
movzx r10d, r10b
movzx edx, byte [rbp + r10 - 0x40]
inc sil
add r15b, r11b
movzx r11d, r15b
movzx eax, byte [rbp + r11 - 0x40]
mov byte [rbp + r10 - 0x40], al
movzx r9d, cl
movzx eax, byte [rbp + r9 - 0x40]
mov byte [rbp + r11 - 0x40], al
movzx ecx, sil
movzx eax, byte [rbp + rcx - 0x40]
mov byte [rbp + r9 - 0x40], al
mov byte [rbp + rcx - 0x40], dl
mov r8d, edx
add r14b, byte [rbp + rdx - 0x40]
lea eax, [rdi + rdi]
cdqe
movzx edx, byte [rax + r12]
sub dl, 5
shl dl, 4
movzx eax, byte [rax + r12 + 1]
add al, 0x73
or dl, al
movzx eax, r14b
movzx ecx, byte [rbp + rax - 0x40]
movzx eax, byte [rbp + r10 - 0x40]
add rcx, rax
movzx eax, byte [rbp + r9 - 0x40]
add rcx, rax
movzx eax, cl
movzx ecx, byte [rbp + rax - 0x40]
xor dl, byte [rbp + rcx - 0x40]
movzx eax, byte [rbp + r11 - 0x40]
add rax, r8
movzx ecx, al
xor dl, byte [rbp + rcx - 0x40]
movsd xmm0, qword [0x1408ba198]
movsd qword [rsp + 0x28], xmm0
movsd xmm1, qword [0x1408ba120]
movsd qword [rsp + 0x30], xmm1
movsd xmm0, qword [0x1408ba050]
movsd qword [rsp + 0x40], xmm0
movsd xmm1, qword [0x1408b9f80]
movsd qword [rsp + 0x60], xmm1
movsd xmm0, qword [0x1408b9ed0]
movsd qword [rsp + 0x20], xmm0
movsd xmm1, qword [0x1408b9e08]
movsd qword [rsp + 0x50], xmm1
movsd xmm0, qword [0x1408b9d40]
movsd qword [rsp + 0x38], xmm0
movsd xmm1, qword [rsp + 0x20]
movsd xmm0, qword [rsp + 0x38]
subsd xmm1, xmm0
movsd qword [rsp + 0x20], xmm1
movsd xmm2, qword [rsp + 0x38]
movsd xmm0, qword [rsp + 0x50]
mulsd xmm2, xmm0
movsd qword [rsp + 0x50], xmm2
movsd xmm1, qword [rsp + 0x28]
movsd xmm0, qword [rsp + 0x38]
subsd xmm1, xmm0
movsd qword [rsp + 0x28], xmm1
movsd xmm2, qword [rsp + 0x30]
movsd xmm0, qword [rsp + 0x38]
subsd xmm2, xmm0
movsd qword [rsp + 0x30], xmm2
movsd xmm1, qword [rsp + 0x38]
movsd xmm0, qword [rsp + 0x20]
mulsd xmm1, xmm0
movsd qword [rsp + 0x20], xmm1
movsd xmm2, qword [rsp + 0x38]
movsd xmm0, qword [rsp + 0x40]
addsd xmm2, xmm0
movsd qword [rsp + 0x40], xmm2
movsd xmm1, qword [rsp + 0x38]
movsd xmm0, qword [rsp + 0x40]
mulsd xmm1, xmm0
movsd qword [rsp + 0x40], xmm1
movsd xmm1, qword [rsp + 0x40]
movsd xmm0, qword [rsp + 0x38]
comisd xmm0, xmm1
jbe 0x14015ef9f
movsd xmm1, qword [rsp + 0x30]
movsd xmm0, qword [rsp + 0x28]
mulsd xmm1, xmm0
movsd qword [rsp + 0x28], xmm1
movsd xmm2, qword [rsp + 0x20]
movsd xmm0, qword [rsp + 0x50]
divsd xmm2, xmm0
movsd qword [rsp + 0x20], xmm2
movsd xmm1, qword [rsp + 0x28]
movsd xmm0, qword [rsp + 0x30]
divsd xmm1, xmm0
movsd qword [rsp + 0x28], xmm1
movsd xmm2, qword [rsp + 0x38]
movsd xmm0, qword [rsp + 0x28]
divsd xmm2, xmm0
movsd qword [rsp + 0x38], xmm2
movsd xmm1, qword [rsp + 0x40]
movsd xmm0, qword [rsp + 0x30]
addsd xmm1, xmm0
movsd qword [rsp + 0x30], xmm1
movsd xmm2, qword [rsp + 0x28]
movsd xmm0, qword [rsp + 0x30]
divsd xmm2, xmm0
movsd qword [rsp + 0x28], xmm2
movsd xmm1, qword [rsp + 0x30]
movsd xmm0, qword [rsp + 0x28]
mulsd xmm1, xmm0
movsd qword [rsp + 0x28], xmm1
jmp 0x14015f039
movsd xmm1, qword [rsp + 0x38]
movsd xmm0, qword [rsp + 0x30]
addsd xmm1, xmm0
movsd qword [rsp + 0x38], xmm1
movsd xmm2, qword [rsp + 0x20]
movsd xmm0, qword [rsp + 0x38]
subsd xmm2, xmm0
movsd qword [rsp + 0x20], xmm2
movsd xmm1, qword [rsp + 0x38]
movsd xmm0, qword [rsp + 0x30]
mulsd xmm1, xmm0
movsd qword [rsp + 0x38], xmm1
movsd xmm2, qword [rsp + 0x20]
movsd xmm0, qword [rsp + 0x40]
addsd xmm2, xmm0
movsd qword [rsp + 0x40], xmm2
movsd xmm1, qword [rsp + 0x50]
movsd xmm0, qword [rsp + 0x28]
addsd xmm1, xmm0
movsd qword [rsp + 0x50], xmm1
movsd xmm2, qword [rsp + 0x40]
movsd xmm0, qword [rsp + 0x28]
mulsd xmm2, xmm0
movsd qword [rsp + 0x28], xmm2
movsd xmm1, qword [rsp + 0x60]
movsd xmm0, qword [rsp + 0x30]
addsd xmm1, xmm0
movsd qword [rsp + 0x30], xmm1
test edi, edi
je 0x14015f045
mov byte [rbp + r13 + 0xc0], dl
movsd xmm0, qword [0x1408ba1e8]
movsd qword [rsp + 0x20], xmm0
movsd xmm1, qword [0x1408ba150]
movsd qword [rsp + 0x40], xmm1
movsd xmm0, qword [0x1408ba048]
movsd qword [rsp + 0x28], xmm0
movsd xmm1, qword [0x1408b9f20]
movsd qword [rsp + 0x38], xmm1
movsd xmm0, qword [0x1408b9dc8]
movsd qword [rsp + 0x30], xmm0
movsd xmm1, qword [rsp + 0x28]
movsd xmm0, qword [rsp + 0x30]
subsd xmm1, xmm0
movsd qword [rsp + 0x28], xmm1
movsd xmm2, qword [rsp + 0x30]
movsd xmm0, qword [rsp + 0x28]
mulsd xmm2, xmm0
movsd qword [rsp + 0x28], xmm2
movsd xmm1, qword [rsp + 0x30]
movsd xmm0, qword [rsp + 0x20]
mulsd xmm1, xmm0
movsd qword [rsp + 0x20], xmm1
movsd xmm2, qword [rsp + 0x30]
movsd xmm0, qword [rsp + 0x38]
mulsd xmm2, xmm0
movsd qword [rsp + 0x38], xmm2
movsd xmm1, qword [rsp + 0x30]
movsd xmm0, qword [rsp + 0x28]
addsd xmm1, xmm0
movsd qword [rsp + 0x28], xmm1
movsd xmm1, qword [rsp + 0x20]
movsd xmm0, qword [rsp + 0x30]
comisd xmm0, xmm1
jbe 0x14015f2e0
movsd xmm1, qword [rsp + 0x30]
movsd xmm0, qword [rsp + 0x28]
mulsd xmm1, xmm0
movsd qword [rsp + 0x28], xmm1
movsd xmm2, qword [rsp + 0x38]
movsd xmm0, qword [rsp + 0x20]
subsd xmm2, xmm0
movsd qword [rsp + 0x38], xmm2
movsd xmm1, qword [rsp + 0x30]
movsd xmm0, qword [rsp + 0x40]
divsd xmm1, xmm0
movsd qword [rsp + 0x30], xmm1
movsd xmm2, qword [rsp + 0x30]
movsd xmm0, qword [rsp + 0x28]
mulsd xmm2, xmm0
movsd qword [rsp + 0x28], xmm2
movsd xmm1, qword [rsp + 0x38]
movsd xmm0, qword [rsp + 0x20]
addsd xmm1, xmm0
movsd qword [rsp + 0x38], xmm1
movsd xmm2, qword [rsp + 0x38]
movsd xmm0, qword [rsp + 0x20]
addsd xmm2, xmm0
movsd qword [rsp + 0x38], xmm2
movsd xmm1, qword [rsp + 0x38]
movsd xmm0, qword [rsp + 0x40]
addsd xmm1, xmm0
movsd qword [rsp + 0x40], xmm1
movsd xmm2, qword [rsp + 0x38]
movsd xmm0, qword [rsp + 0x20]
addsd xmm2, xmm0
movsd qword [rsp + 0x38], xmm2
movsd xmm1, qword [rsp + 0x30]
movsd xmm0, qword [rsp + 0x28]
addsd xmm1, xmm0
movsd qword [rsp + 0x28], xmm1
movsd xmm2, qword [rsp + 0x38]
movsd xmm0, qword [rsp + 0x20]
subsd xmm2, xmm0
movsd qword [rsp + 0x38], xmm2
movsd xmm1, qword [rsp + 0x40]
movsd xmm0, qword [rsp + 0x38]
comisd xmm0, xmm1
jbe 0x14015f270
movsd xmm1, qword [rsp + 0x38]
movsd xmm0, qword [rsp + 0x30]
subsd xmm1, xmm0
movsd qword [rsp + 0x38], xmm1
movsd xmm2, qword [rsp + 0x38]
movsd xmm0, qword [rsp + 0x28]
addsd xmm2, xmm0
movsd qword [rsp + 0x28], xmm2
movsd xmm1, qword [rsp + 0x30]
movsd xmm0, qword [rsp + 0x20]
divsd xmm1, xmm0
movsd qword [rsp + 0x30], xmm1
movsd xmm2, qword [rsp + 0x30]
movsd xmm0, qword [rsp + 0x38]
addsd xmm2, xmm0
movsd qword [rsp + 0x38], xmm2
movsd xmm1, qword [rsp + 0x30]
movsd xmm0, qword [rsp + 0x38]
mulsd xmm1, xmm0
movsd qword [rsp + 0x38], xmm1
jmp 0x14015f355
movsd xmm1, qword [rsp + 0x20]
movsd xmm0, qword [rsp + 0x40]
subsd xmm1, xmm0
movsd qword [rsp + 0x20], xmm1
movsd xmm2, qword [rsp + 0x38]
movsd xmm0, qword [rsp + 0x28]
addsd xmm2, xmm0
movsd qword [rsp + 0x28], xmm2
movsd xmm1, qword [rsp + 0x28]
movsd xmm0, qword [rsp + 0x38]
divsd xmm1, xmm0
movsd qword [rsp + 0x28], xmm1
movsd xmm2, qword [rsp + 0x30]
movsd xmm0, qword [rsp + 0x38]
addsd xmm2, xmm0
movsd qword [rsp + 0x38], xmm2
movsd xmm1, qword [rsp + 0x40]
movsd xmm0, qword [rsp + 0x28]
subsd xmm1, xmm0
movsd qword [rsp + 0x40], xmm1
jmp 0x14015f355
movsd xmm1, qword [rsp + 0x38]
movsd xmm0, qword [rsp + 0x28]
mulsd xmm1, xmm0
movsd qword [rsp + 0x28], xmm1
movsd xmm2, qword [rsp + 0x30]
movsd xmm0, qword [rsp + 0x38]
mulsd xmm2, xmm0
movsd qword [rsp + 0x38], xmm2
movsd xmm1, qword [rsp + 0x30]
movsd xmm0, qword [rsp + 0x38]
addsd xmm1, xmm0
movsd qword [rsp + 0x38], xmm1
movsd xmm2, qword [rsp + 0x30]
movsd xmm0, qword [rsp + 0x20]
subsd xmm2, xmm0
movsd qword [rsp + 0x30], xmm2
mov byte [rbp + 0xd4], 0
movsd xmm1, qword [rsp + 0x40]
movsd xmm0, qword [rsp + 0x20]
addsd xmm1, xmm0
movsd qword [rsp + 0x20], xmm1
lea rcx, [rsp + 0x78]
call fcn.1400e2220
mov r8, rax
lea r9, [rbp + 0xc0]
lea rdx, [rbp - 0x68]
mov rcx, qword [rsp + 0x70]
call fcn.140167eb0
mov rdx, rax
mov rcx, qword [rsp + 0x70]
call fcn.14010e2b0
lea rcx, [rbp - 0x68]
call fcn.1400bb000
nop
lea rcx, [rsp + 0x78]
call fcn.1400bb000
mov rcx, qword [rbp + 0xd8]
xor rcx, rsp
call fcn.14087bc90
lea r11, [rsp + 0x240]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret