Function at 0x180004420
Capabilities:
Link many functions at runtime

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x308]
sub rsp, 0x3d0
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
movaps xmmword [rax - 0x68], xmm8
movaps xmmword [rax - 0x78], xmm9
movaps xmmword [rax - 0x88], xmm10
movaps xmmword [rax - 0x98], xmm11
mov rax, qword [0x180099020]
xor rax, rsp
mov qword [rbp + 0x260], rax
mov qword [rbp - 0x10], r8
mov qword [rbp - 8], rdx
mov qword [rsp + 0x50], rcx
mov qword [rbp + 0x228], rdx
mov qword [rbp + 0x230], r8
xor eax, eax
mov byte [rbp - 0x64], al
mov byte [rbp - 0x5c], al
lea rdx, [rbp - 0x40]
lea rcx, [rbp - 0x64]
call fcn.18001af10
mov rdi, rax
movsd xmm7, qword [0x180092fc8]
movsd xmm8, qword [0x180092fc0]
movsd xmm9, qword [0x180092fb8]
movsd xmm10, qword [0x180092fb0]
cmp byte [rax], 0
jne 0x180005442
mov dword [rbp - 0x70], 0
movsxd rcx, dword [rbp - 0x70]
cmp rcx, 1
jae 0x180005442
mov esi, dword [rbp - 0x70]
mov r14d, dword [rbp - 0x70]
mov r15d, dword [rbp - 0x70]
mov r12d, dword [rbp - 0x70]
mov r13d, dword [rbp - 0x70]
nop word [rax + rax]
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800047e8
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800045e6
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800045e6
mov esi, 8
jmp 0x18000467a
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000467a
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si esi, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000472c
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000472c
mov r14d, 8
jmp 0x1800047c1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800047c1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si r14d, xmm0
movsxd rax, dword [rbp - 0x70]
movzx r8d, byte [rax + rdi + 1]
and r8b, r14b
add r8b, r8b
movsxd rax, dword [rbp - 0x70]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, sil
movsxd rax, dword [rbp - 0x70]
mov byte [rax + rdi + 1], dl
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
imul ebx, ecx, 7
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180005130
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
add ebx, ebx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180004b1c
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180004918
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180004918
mov r15d, 8
jmp 0x1800049ad
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800049ad
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si r15d, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180004a60
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180004a60
mov r12d, 8
jmp 0x180004af5
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180004af5
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si r12d, xmm0
movsxd rax, dword [rbp - 0x70]
movzx r8d, byte [rax + rdi + 1]
and r8b, r12b
add r8b, r8b
movsxd rax, dword [rbp - 0x70]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, r15b
movsxd rax, dword [rbp - 0x70]
mov byte [rax + rdi + 1], dl
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180004e0f
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180004c04
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180004c04
mov r13d, 8
jmp 0x180004c99
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180004c99
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si r13d, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180004d4e
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180004d4e
mov dword [rsp + 0x70], 8
jmp 0x180004de6
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180004de6
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si eax, xmm0
mov dword [rsp + 0x70], eax
movsxd rax, dword [rbp - 0x70]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x70]
add r8b, r8b
movsxd rax, dword [rbp - 0x70]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, r13b
movsxd rax, dword [rbp - 0x70]
mov byte [rax + rdi + 1], dl
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx + rcx]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180005130
mov eax, dword [rbp - 0x70]
sub eax, 0x59
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180004f14
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180004f14
mov dword [rsp + 0x74], 8
jmp 0x180004fac
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180004fac
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si eax, xmm0
mov dword [rsp + 0x74], eax
mov eax, dword [rbp - 0x70]
sub eax, 0x59
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000506e
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000506e
mov dword [rsp + 0x78], 8
jmp 0x180005106
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180005106
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si eax, xmm0
mov dword [rsp + 0x78], eax
movsxd rax, dword [rbp - 0x70]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x78]
add r8b, r8b
movsxd rax, dword [rbp - 0x70]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, byte [rsp + 0x74]
movsxd rax, dword [rbp - 0x70]
mov byte [rax + rdi + 1], dl
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
shl ebx, 3
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000542c
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm10
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000521d
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000521d
mov dword [rsp + 0x7c], 8
jmp 0x1800052b5
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800052b5
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si eax, xmm0
mov dword [rsp + 0x7c], eax
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm10
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000536a
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000536a
mov dword [rsp + 0x60], 8
jmp 0x180005402
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180005402
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si eax, xmm0
mov dword [rsp + 0x60], eax
movsxd rax, dword [rbp - 0x70]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x60]
add r8b, r8b
movsxd rax, dword [rbp - 0x70]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, byte [rsp + 0x7c]
movsxd rax, dword [rbp - 0x70]
mov byte [rax + rdi + 1], dl
mov eax, dword [rbp - 0x70]
inc eax
mov dword [rbp - 0x70], eax
movsxd rax, dword [rbp - 0x70]
cmp rax, 1
jb 0x180004500
mov byte [rdi], 1
movzx eax, byte [rdi + 1]
mov byte [rbp - 0x5b], al
lea rdx, [rbp - 0x3c]
lea rcx, [rbp - 0x5c]
call fcn.18001adb0
mov rdi, rax
cmp byte [rax], 0
jne 0x1800063f1
mov dword [rsp + 0x60], 0
movsxd rcx, dword [rsp + 0x60]
cmp rcx, 1
jae 0x1800063f1
movsd xmm6, qword [0x180092fd0]
mov esi, dword [rsp + 0x60]
mov r14d, dword [rsp + 0x60]
mov r15d, dword [rsp + 0x60]
mov r12d, dword [rsp + 0x60]
mov r13d, dword [rsp + 0x60]
nop dword [rax]
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000578b
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180005586
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180005586
mov esi, 8
jmp 0x18000561a
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000561a
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si esi, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800056cc
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800056cc
mov r14d, 8
jmp 0x180005761
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180005761
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si r14d, xmm0
movsxd rax, dword [rsp + 0x60]
movzx r8d, byte [rax + rdi + 1]
and r8b, r14b
add r8b, r8b
movsxd rax, dword [rsp + 0x60]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, sil
movsxd rax, dword [rsp + 0x60]
mov byte [rax + rdi + 1], dl
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
imul ebx, ecx, 7
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800060dc
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
add ebx, ebx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180005ac0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800058ba
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800058ba
mov r15d, 8
jmp 0x18000594f
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000594f
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si r15d, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180005a01
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180005a01
mov r12d, 8
jmp 0x180005a96
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180005a96
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si r12d, xmm0
movsxd rax, dword [rsp + 0x60]
movzx r8d, byte [rax + rdi + 1]
and r8b, r12b
add r8b, r8b
movsxd rax, dword [rsp + 0x60]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, r15b
movsxd rax, dword [rsp + 0x60]
mov byte [rax + rdi + 1], dl
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180005db6
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180005ba8
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180005ba8
mov r13d, 8
jmp 0x180005c3d
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180005c3d
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si r13d, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180005cf2
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180005cf2
mov dword [rsp + 0x7c], 8
jmp 0x180005d8a
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180005d8a
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si eax, xmm0
mov dword [rsp + 0x7c], eax
movsxd rax, dword [rsp + 0x60]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x7c]
add r8b, r8b
movsxd rax, dword [rsp + 0x60]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, r13b
movsxd rax, dword [rsp + 0x60]
mov byte [rax + rdi + 1], dl
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx + rcx]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800060dc
mov eax, dword [rsp + 0x60]
sub eax, 0x5a
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180005ebc
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180005ebc
mov dword [rsp + 0x78], 8
jmp 0x180005f54
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180005f54
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si eax, xmm0
mov dword [rsp + 0x78], eax
mov eax, dword [rsp + 0x60]
sub eax, 0x5a
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180006017
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180006017
mov dword [rsp + 0x74], 8
jmp 0x1800060af
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800060af
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si eax, xmm0
mov dword [rsp + 0x74], eax
movsxd rax, dword [rsp + 0x60]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x74]
add r8b, r8b
movsxd rax, dword [rsp + 0x60]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, byte [rsp + 0x78]
movsxd rax, dword [rsp + 0x60]
mov byte [rax + rdi + 1], dl
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
shl ebx, 3
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800063d8
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800061c9
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800061c9
mov dword [rsp + 0x70], 8
jmp 0x180006261
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180006261
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si eax, xmm0
mov dword [rsp + 0x70], eax
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180006315
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180006315
mov dword [rbp - 0x70], 8
jmp 0x1800063ac
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800063ac
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si eax, xmm0
mov dword [rbp - 0x70], eax
movsxd rax, dword [rsp + 0x60]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rbp - 0x70]
add r8b, r8b
movsxd rax, dword [rsp + 0x60]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, byte [rsp + 0x70]
movsxd rax, dword [rsp + 0x60]
mov byte [rax + rdi + 1], dl
mov eax, dword [rsp + 0x60]
inc eax
mov dword [rsp + 0x60], eax
movsxd rax, dword [rsp + 0x60]
cmp rax, 1
jb 0x1800054a0
mov byte [rdi], 1
movzx ebx, byte [rdi + 1]
mov edx, 0xe50e7c
lea rcx, [0x18009a390]
call fcn.18005bb20
mov rcx, rax
movzx edx, bl
call fcn.18005ea30
mov rcx, rax
movzx edx, byte [rbp - 0x5b]
call fcn.18005ea30
xor eax, eax
mov byte [rbp - 0x5a], al
mov rcx, qword [rsp + 0x50]
call fcn.18005d680
mov qword [rsp + 0x68], rax
lea rdx, [rbp + 0x50]
lea rcx, [rbp - 0x5a]
call fcn.18001b070
mov rdi, rax
xor r14d, r14d
cmp byte [rax], r14b
jne 0x1800073da
mov dword [rsp + 0x60], r14d
movsxd rcx, dword [rsp + 0x60]
cmp rcx, 0x10
jae 0x1800073da
movsd xmm6, qword [0x180092fa8]
mov esi, dword [rsp + 0x60]
mov r14d, dword [rsp + 0x60]
mov r15d, dword [rsp + 0x60]
mov r12d, dword [rsp + 0x60]
mov r13d, dword [rsp + 0x60]
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180006771
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x50], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000656b
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000656b
mov esi, 8
jmp 0x1800065ff
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800065ff
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x50]
cvttsd2si esi, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x50], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800066b2
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800066b2
mov r14d, 8
jmp 0x180006747
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180006747
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x50]
cvttsd2si r14d, xmm0
movsxd rax, dword [rsp + 0x60]
movzx r8d, byte [rax + rdi + 1]
and r8b, r14b
add r8b, r8b
movsxd rax, dword [rsp + 0x60]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, sil
movsxd rax, dword [rsp + 0x60]
mov byte [rax + rdi + 1], dl
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
imul ebx, ecx, 7
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800070c4
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
add ebx, ebx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180006aa8
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rsp + 0x50], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800068a1
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800068a1
mov r15d, 8
jmp 0x180006936
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180006936
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x50]
cvttsd2si r15d, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rsp + 0x50], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800069e9
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800069e9
mov r12d, 8
jmp 0x180006a7e
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180006a7e
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x50]
cvttsd2si r12d, xmm0
movsxd rax, dword [rsp + 0x60]
movzx r8d, byte [rax + rdi + 1]
and r8b, r12b
add r8b, r8b
movsxd rax, dword [rsp + 0x60]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, r15b
movsxd rax, dword [rsp + 0x60]
mov byte [rax + rdi + 1], dl
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180006d9e
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm10
movsd qword [rsp + 0x50], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180006b90
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180006b90
mov r13d, 8
jmp 0x180006c25
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180006c25
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x50]
cvttsd2si r13d, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm10
movsd qword [rsp + 0x50], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180006cda
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180006cda
mov dword [rsp + 0x7c], 8
jmp 0x180006d72
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180006d72
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x50]
cvttsd2si eax, xmm0
mov dword [rsp + 0x7c], eax
movsxd rax, dword [rsp + 0x60]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x7c]
add r8b, r8b
movsxd rax, dword [rsp + 0x60]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, r13b
movsxd rax, dword [rsp + 0x60]
mov byte [rax + rdi + 1], dl
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx + rcx]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800070c4
mov eax, dword [rsp + 0x60]
sub eax, 0x58
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x50], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180006ea4
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180006ea4
mov dword [rsp + 0x78], 8
jmp 0x180006f3c
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180006f3c
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x50]
cvttsd2si eax, xmm0
mov dword [rsp + 0x78], eax
mov eax, dword [rsp + 0x60]
sub eax, 0x58
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x50], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180006fff
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180006fff
mov dword [rsp + 0x74], 8
jmp 0x180007097
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180007097
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x50]
cvttsd2si eax, xmm0
mov dword [rsp + 0x74], eax
movsxd rax, dword [rsp + 0x60]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x74]
add r8b, r8b
movsxd rax, dword [rsp + 0x60]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, byte [rsp + 0x78]
movsxd rax, dword [rsp + 0x60]
mov byte [rax + rdi + 1], dl
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
shl ebx, 3
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800073be
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rsp + 0x50], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800071b0
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800071b0
mov dword [rsp + 0x70], 8
jmp 0x180007248
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180007248
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x50]
cvttsd2si eax, xmm0
mov dword [rsp + 0x70], eax
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rsp + 0x50], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800072fb
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800072fb
mov dword [rbp - 0x70], 8
jmp 0x180007392
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180007392
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x50]
cvttsd2si eax, xmm0
mov dword [rbp - 0x70], eax
movsxd rax, dword [rsp + 0x60]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rbp - 0x70]
add r8b, r8b
movsxd rax, dword [rsp + 0x60]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, byte [rsp + 0x70]
movsxd rax, dword [rsp + 0x60]
mov byte [rax + rdi + 1], dl
mov eax, dword [rsp + 0x60]
inc eax
mov dword [rsp + 0x60], eax
movsxd rax, dword [rsp + 0x60]
cmp rax, 0x10
jb 0x180006484
xor r14d, r14d
mov byte [rdi], 1
lea rdx, [rdi + 1]
mov rcx, qword [0x18009b9e8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x40], r14
lea rcx, [rbp + 0x238]
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], 0x20006
mov dword [rsp + 0x20], r14d
xor r9d, r9d
xor r8d, r8d
mov rdx, qword [rsp + 0x68]
mov rcx, 0xffffffff80000001
call rax
mov esi, eax
mov dword [rsp + 0x60], eax
xor eax, eax
mov byte [rbp - 0x59], al
lea rdx, [rbp - 0x38]
lea rcx, [rbp - 0x59]
call fcn.18001b1d0
mov rdi, rax
cmp byte [rax], 0
jne 0x1800083ef
mov dword [rsp + 0x7c], r14d
movsxd rcx, dword [rsp + 0x7c]
cmp rcx, 1
jae 0x1800083ef
movsd xmm6, qword [0x180092fa0]
movsd xmm7, qword [0x180092f98]
movsd xmm8, qword [0x180092f90]
movsd xmm9, qword [0x180092f88]
mov esi, dword [rsp + 0x60]
mov r14d, dword [rsp + 0x60]
mov r15d, dword [rsp + 0x60]
mov r12d, dword [rsp + 0x60]
mov r13d, dword [rsp + 0x60]
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180007782
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000757d
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000757d
mov esi, 8
jmp 0x180007611
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180007611
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si esi, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800076c3
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800076c3
mov r14d, 8
jmp 0x180007758
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180007758
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si r14d, xmm0
movsxd rax, dword [rsp + 0x7c]
movzx r8d, byte [rax + rdi + 1]
and r8b, r14b
add r8b, r8b
movsxd rax, dword [rsp + 0x7c]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, sil
movsxd rax, dword [rsp + 0x7c]
mov byte [rax + rdi + 1], dl
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
imul ebx, ecx, 7
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800080d3
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
add ebx, ebx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180007ab7
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800078b1
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800078b1
mov r15d, 8
jmp 0x180007946
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180007946
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si r15d, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800079f8
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800079f8
mov r12d, 8
jmp 0x180007a8d
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180007a8d
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si r12d, xmm0
movsxd rax, dword [rsp + 0x7c]
movzx r8d, byte [rax + rdi + 1]
and r8b, r12b
add r8b, r8b
movsxd rax, dword [rsp + 0x7c]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, r15b
movsxd rax, dword [rsp + 0x7c]
mov byte [rax + rdi + 1], dl
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180007dad
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180007b9f
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180007b9f
mov r13d, 8
jmp 0x180007c34
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180007c34
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si r13d, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180007ce9
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180007ce9
mov dword [rsp + 0x78], 8
jmp 0x180007d81
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180007d81
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si eax, xmm0
mov dword [rsp + 0x78], eax
movsxd rax, dword [rsp + 0x7c]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x78]
add r8b, r8b
movsxd rax, dword [rsp + 0x7c]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, r13b
movsxd rax, dword [rsp + 0x7c]
mov byte [rax + rdi + 1], dl
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx + rcx]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800080d3
mov eax, dword [rsp + 0x7c]
sub eax, 0x54
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180007eb3
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180007eb3
mov dword [rsp + 0x74], 8
jmp 0x180007f4b
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180007f4b
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si eax, xmm0
mov dword [rsp + 0x74], eax
mov eax, dword [rsp + 0x7c]
sub eax, 0x54
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000800e
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000800e
mov dword [rsp + 0x70], 8
jmp 0x1800080a6
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800080a6
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si eax, xmm0
mov dword [rsp + 0x70], eax
movsxd rax, dword [rsp + 0x7c]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x70]
add r8b, r8b
movsxd rax, dword [rsp + 0x7c]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, byte [rsp + 0x74]
movsxd rax, dword [rsp + 0x7c]
mov byte [rax + rdi + 1], dl
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
shl ebx, 3
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800083cf
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800081bf
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800081bf
mov dword [rbp - 0x70], 8
jmp 0x180008256
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180008256
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si eax, xmm0
mov dword [rbp - 0x70], eax
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000830b
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000830b
mov dword [rsp + 0x50], 8
jmp 0x1800083a3
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800083a3
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si eax, xmm0
mov dword [rsp + 0x50], eax
movsxd rax, dword [rsp + 0x7c]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x50]
add r8b, r8b
movsxd rax, dword [rsp + 0x7c]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, byte [rbp - 0x70]
movsxd rax, dword [rsp + 0x7c]
mov byte [rax + rdi + 1], dl
mov eax, dword [rsp + 0x7c]
inc eax
mov dword [rsp + 0x7c], eax
movsxd rax, dword [rsp + 0x7c]
cmp rax, 1
jb 0x180007497
mov esi, dword [rsp + 0x60]
xor r14d, r14d
mov byte [rdi], 1
movzx ebx, byte [rdi + 1]
mov edx, 0xbb9d46
lea rcx, [0x18009a390]
call fcn.18005bb20
mov rcx, rax
movzx edx, bl
call fcn.18005ea30
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx + rcx*2]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000d7d6
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mov rax, r14
test esi, esi
setne al
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm1, xmm0
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180008516
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180008516
mov edi, 8
jmp 0x1800085b0
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800085ac
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si edi, xmm0
jmp 0x1800085b0
mov edi, dword [rsp + 0x50]
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
imul eax, edi
test eax, eax
je 0x18000d7d6
call qword [sym.imp.KERNEL32.dll_GetLastError]
add eax, 5
mov dword [0x18009b9f0], eax
xor eax, eax
mov byte [rbp - 0x58], al
lea rdx, [rbp - 0x34]
lea rcx, [rbp - 0x58]
call fcn.18001af10
mov rdi, rax
movsd xmm7, qword [0x180092f78]
movsd xmm8, qword [0x180092f70]
movsd xmm9, qword [0x180092f68]
cmp byte [rax], 0
jne 0x1800095ce
mov dword [rsp + 0x50], r14d
movsxd rcx, dword [rsp + 0x50]
cmp rcx, 1
jae 0x1800095ce
movsd xmm6, qword [0x180092f80]
mov esi, dword [rsp + 0x50]
mov r14d, dword [rsp + 0x50]
mov r15d, dword [rsp + 0x50]
mov r12d, dword [rsp + 0x50]
mov r13d, dword [rsp + 0x50]
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180008962
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000875d
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000875d
mov esi, 8
jmp 0x1800087f1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800087f1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si esi, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800088a3
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800088a3
mov r14d, 8
jmp 0x180008938
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180008938
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si r14d, xmm0
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, r14b
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, sil
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
imul ebx, ecx, 7
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800092b3
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
add ebx, ebx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180008c97
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180008a91
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180008a91
mov r15d, 8
jmp 0x180008b26
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180008b26
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si r15d, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180008bd8
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180008bd8
mov r12d, 8
jmp 0x180008c6d
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180008c6d
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si r12d, xmm0
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, r12b
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, r15b
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180008f8d
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180008d7f
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180008d7f
mov r13d, 8
jmp 0x180008e14
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180008e14
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si r13d, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180008ec9
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180008ec9
mov dword [rsp + 0x60], 8
jmp 0x180008f61
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180008f61
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si eax, xmm0
mov dword [rsp + 0x60], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x60]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, r13b
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx + rcx]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800092b3
mov eax, dword [rsp + 0x50]
sub eax, 0x4f
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180009093
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180009093
mov dword [rsp + 0x7c], 8
jmp 0x18000912b
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000912b
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si eax, xmm0
mov dword [rsp + 0x7c], eax
mov eax, dword [rsp + 0x50]
sub eax, 0x4f
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800091ee
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800091ee
mov dword [rsp + 0x78], 8
jmp 0x180009286
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180009286
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si eax, xmm0
mov dword [rsp + 0x78], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x78]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, byte [rsp + 0x7c]
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
shl ebx, 3
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800095b2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800093a0
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800093a0
mov dword [rsp + 0x74], 8
jmp 0x180009438
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180009438
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si eax, xmm0
mov dword [rsp + 0x74], eax
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800094ed
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800094ed
mov dword [rsp + 0x70], 8
jmp 0x180009585
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180009585
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si eax, xmm0
mov dword [rsp + 0x70], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x70]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, byte [rsp + 0x74]
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
mov eax, dword [rsp + 0x50]
inc eax
mov dword [rsp + 0x50], eax
movsxd rax, dword [rsp + 0x50]
cmp rax, 1
jb 0x180008677
xor r14d, r14d
mov byte [rdi], 1
movzx ebx, byte [rdi + 1]
mov edx, 0x894db4
lea rcx, [0x18009a390]
call fcn.18005bb20
mov rcx, rax
movzx edx, bl
call fcn.18005ea30
xor eax, eax
mov byte [rbp - 0x57], al
mov byte [rbp - 0x78], al
lea edx, [rax + 0x20]
lea rcx, [rbp + 0x68]
call fcn.18005e770
nop
mov edx, dword [0x18009b9f0]
lea rcx, [rbp + 0x88]
call fcn.18005e850
nop
lea rdx, [rbp - 0x1c]
lea rcx, [rbp - 0x78]
call fcn.18001b330
mov rdi, rax
movsd xmm10, qword [0x180092f60]
cmp byte [rax], 0
jne 0x18000a5bd
mov dword [rsp + 0x50], r14d
movsxd rcx, dword [rsp + 0x50]
cmp rcx, 2
jae 0x18000a5bd
mov esi, dword [rsp + 0x50]
mov r14d, dword [rsp + 0x50]
mov r15d, dword [rsp + 0x50]
mov r12d, dword [rsp + 0x50]
mov r13d, dword [rsp + 0x50]
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180009952
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000974d
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000974d
mov esi, 8
jmp 0x1800097e1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800097e1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si esi, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180009893
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180009893
mov r14d, 8
jmp 0x180009928
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180009928
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si r14d, xmm0
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, r14b
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, sil
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
imul ebx, ecx, 7
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000a2a5
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
add ebx, ebx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180009c89
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180009a82
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180009a82
mov r15d, 8
jmp 0x180009b17
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180009b17
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si r15d, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180009bca
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180009bca
mov r12d, 8
jmp 0x180009c5f
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180009c5f
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si r12d, xmm0
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, r12b
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, r15b
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180009f7f
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180009d71
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180009d71
mov r13d, 8
jmp 0x180009e06
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180009e06
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si r13d, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180009ebb
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180009ebb
mov dword [rsp + 0x60], 8
jmp 0x180009f53
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180009f53
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si eax, xmm0
mov dword [rsp + 0x60], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x60]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, r13b
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx + rcx]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000a2a5
mov eax, dword [rsp + 0x50]
sub eax, 0x4e
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000a085
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000a085
mov dword [rsp + 0x7c], 8
jmp 0x18000a11d
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000a11d
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si eax, xmm0
mov dword [rsp + 0x7c], eax
mov eax, dword [rsp + 0x50]
sub eax, 0x4e
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000a1e0
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000a1e0
mov dword [rsp + 0x78], 8
jmp 0x18000a278
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000a278
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si eax, xmm0
mov dword [rsp + 0x78], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x78]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, byte [rsp + 0x7c]
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
shl ebx, 3
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000a5a4
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm10
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000a392
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000a392
mov dword [rsp + 0x74], 8
jmp 0x18000a42a
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000a42a
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si eax, xmm0
mov dword [rsp + 0x74], eax
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm10
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000a4df
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000a4df
mov dword [rsp + 0x70], 8
jmp 0x18000a577
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000a577
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si eax, xmm0
mov dword [rsp + 0x70], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x70]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, byte [rsp + 0x74]
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
mov eax, dword [rsp + 0x50]
inc eax
mov dword [rsp + 0x50], eax
movsxd rax, dword [rsp + 0x50]
cmp rax, 2
jb 0x180009667
mov byte [rdi], 1
lea r8, [rdi + 1]
lea rdx, [0x18009b9f8]
lea rcx, [rbp + 0xa8]
call fcn.18005ed10
nop
lea r9, [rbp + 0x88]
mov r8, rax
movzx edx, byte [rbp - 0x78]
lea rcx, [rbp + 0xc8]
call fcn.18005fb20
nop
lea rdx, [rbp - 0x20]
lea rcx, [rbp - 0x57]
call fcn.18001b490
mov rdi, rax
movsd xmm7, qword [0x180092f58]
cmp byte [rax], 0
jne 0x18000b599
mov dword [rsp + 0x50], 0
movsxd rcx, dword [rsp + 0x50]
cmp rcx, 2
jae 0x18000b599
mov esi, dword [rsp + 0x50]
mov r14d, dword [rsp + 0x50]
mov r15d, dword [rsp + 0x50]
mov r12d, dword [rsp + 0x50]
mov r13d, dword [rsp + 0x50]
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000a930
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000a72a
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000a72a
mov esi, 8
jmp 0x18000a7be
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000a7be
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si esi, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000a871
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000a871
mov r14d, 8
jmp 0x18000a906
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000a906
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si r14d, xmm0
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, r14b
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, sil
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
imul ebx, ecx, 7
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000b283
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
add ebx, ebx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000ac67
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000aa60
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000aa60
mov r15d, 8
jmp 0x18000aaf5
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000aaf5
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si r15d, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000aba8
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000aba8
mov r12d, 8
jmp 0x18000ac3d
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000ac3d
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si r12d, xmm0
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, r12b
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, r15b
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000af5d
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm10
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000ad4f
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000ad4f
mov r13d, 8
jmp 0x18000ade4
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000ade4
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si r13d, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm10
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000ae99
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000ae99
mov dword [rsp + 0x60], 8
jmp 0x18000af31
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000af31
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si eax, xmm0
mov dword [rsp + 0x60], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x60]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, r13b
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx + rcx]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000b283
mov eax, dword [rsp + 0x50]
sub eax, 0x4d
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000b063
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000b063
mov dword [rsp + 0x7c], 8
jmp 0x18000b0fb
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000b0fb
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si eax, xmm0
mov dword [rsp + 0x7c], eax
mov eax, dword [rsp + 0x50]
sub eax, 0x4d
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000b1be
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000b1be
mov dword [rsp + 0x78], 8
jmp 0x18000b256
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000b256
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si eax, xmm0
mov dword [rsp + 0x78], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x78]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, byte [rsp + 0x7c]
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
shl ebx, 3
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000b580
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000b36f
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000b36f
mov dword [rsp + 0x74], 8
jmp 0x18000b407
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000b407
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si eax, xmm0
mov dword [rsp + 0x74], eax
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000b4bb
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000b4bb
mov dword [rsp + 0x70], 8
jmp 0x18000b553
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000b553
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si eax, xmm0
mov dword [rsp + 0x70], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x70]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, byte [rsp + 0x74]
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
mov eax, dword [rsp + 0x50]
inc eax
mov dword [rsp + 0x50], eax
movsxd rax, dword [rsp + 0x50]
cmp rax, 2
jb 0x18000a643
mov byte [rdi], 1
lea rdx, [rdi + 1]
mov r8, 0xffffffffffffffff
nop word [rax + rax]
inc r8
cmp byte [rdx + r8], 0
jne 0x18000b5b0
lea rcx, [rbp + 0xc8]
call fcn.18005d480
mov rdx, rax
lea rcx, [rbp + 0xe8]
call fcn.18005bfa0
nop
lea r9, [rbp + 0x68]
lea r8, [rbp + 0xe8]
movzx edx, byte [rbp - 0x78]
lea rcx, [rbp + 0x108]
call fcn.18005fb20
nop
mov r8d, 1
lea rdx, [0x180092638]
lea rcx, [rbp + 0x108]
call fcn.18005d480
mov rdx, rax
lea rcx, [rbp + 0x128]
call fcn.18005bfa0
xor eax, eax
mov byte [rbp - 0x56], al
movzx r8d, al
lea rdx, [rbp + 0x128]
lea rbx, [0x180099c28]
mov rcx, rbx
call fcn.18005d5f0
lea rcx, [rbp + 0x128]
call fcn.1800507b0
nop
lea rcx, [rbp + 0x108]
call fcn.1800507b0
nop
lea rcx, [rbp + 0xe8]
call fcn.1800507b0
nop
lea rcx, [rbp + 0xc8]
call fcn.1800507b0
nop
lea rcx, [rbp + 0xa8]
call fcn.1800507b0
nop
lea rcx, [rbp + 0x88]
call fcn.1800507b0
nop
lea rcx, [rbp + 0x68]
call fcn.1800507b0
xor eax, eax
mov byte [rbp - 0x55], al
lea rcx, [0x18009ba18]
call fcn.18005d680
mov qword [rsp + 0x68], rax
mov rcx, rbx
call fcn.18005d680
mov qword [rbp - 0x70], rax
lea rdx, [rbp]
lea rcx, [rbp - 0x55]
call fcn.18001b5f0
mov rdi, rax
movsd xmm9, qword [0x180092f48]
cmp byte [rax], 0
jne 0x18000c650
mov dword [rsp + 0x50], 0
movsxd rcx, dword [rsp + 0x50]
cmp rcx, 0xc
jae 0x18000c650
movsd xmm6, qword [0x180092f50]
mov esi, dword [rsp + 0x50]
mov r14d, dword [rsp + 0x50]
mov r15d, dword [rsp + 0x50]
mov r12d, dword [rsp + 0x50]
mov r13d, dword [rsp + 0x50]
nop dword [rax + rax]
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000b9f9
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm10
movsd qword [rbp - 0x80], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000b7f6
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000b7f6
mov esi, 8
jmp 0x18000b889
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000b889
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp - 0x80]
cvttsd2si esi, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm10
movsd qword [rbp - 0x80], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000b93b
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000b93b
mov r14d, 8
jmp 0x18000b9cf
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000b9cf
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp - 0x80]
cvttsd2si r14d, xmm0
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, r14b
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, sil
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
imul ebx, ecx, 7
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000c33c
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
add ebx, ebx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000bd2a
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rbp - 0x80], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000bb27
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000bb27
mov r15d, 8
jmp 0x18000bbbb
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000bbbb
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp - 0x80]
cvttsd2si r15d, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rbp - 0x80], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000bc6c
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000bc6c
mov r12d, 8
jmp 0x18000bd00
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000bd00
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp - 0x80]
cvttsd2si r12d, xmm0
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, r12b
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, r15b
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000c01a
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rbp - 0x80], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000be10
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000be10
mov r13d, 8
jmp 0x18000bea4
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000bea4
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp - 0x80]
cvttsd2si r13d, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rbp - 0x80], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000bf57
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000bf57
mov dword [rsp + 0x60], 8
jmp 0x18000bfee
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000bfee
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp - 0x80]
cvttsd2si eax, xmm0
mov dword [rsp + 0x60], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x60]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, r13b
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx + rcx]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000c33c
mov eax, dword [rsp + 0x50]
sub eax, 0x4b
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rbp - 0x80], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000c11f
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000c11f
mov dword [rsp + 0x7c], 8
jmp 0x18000c1b6
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000c1b6
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp - 0x80]
cvttsd2si eax, xmm0
mov dword [rsp + 0x7c], eax
mov eax, dword [rsp + 0x50]
sub eax, 0x4b
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rbp - 0x80], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000c278
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000c278
mov dword [rsp + 0x78], 8
jmp 0x18000c30f
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000c30f
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp - 0x80]
cvttsd2si eax, xmm0
mov dword [rsp + 0x78], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x78]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, byte [rsp + 0x7c]
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
shl ebx, 3
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000c637
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rbp - 0x80], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000c428
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000c428
mov dword [rsp + 0x74], 8
jmp 0x18000c4bf
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000c4bf
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp - 0x80]
cvttsd2si eax, xmm0
mov dword [rsp + 0x74], eax
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rbp - 0x80], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000c573
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000c573
mov dword [rsp + 0x70], 8
jmp 0x18000c60a
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000c60a
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp - 0x80]
cvttsd2si eax, xmm0
mov dword [rsp + 0x70], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x70]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, byte [rsp + 0x74]
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
mov eax, dword [rsp + 0x50]
inc eax
mov dword [rsp + 0x50], eax
movsxd rax, dword [rsp + 0x50]
cmp rax, 0xc
jb 0x18000b710
mov byte [rdi], 1
lea rdx, [rdi + 1]
mov rcx, qword [0x18009b9e0]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r9d, 0x10
mov r8, qword [rsp + 0x68]
mov rdx, qword [rbp - 0x70]
xor ecx, ecx
call rax
xor eax, eax
mov byte [rbp - 0x54], al
lea rdx, [rbp - 0x44]
lea rcx, [rbp - 0x54]
call fcn.18001b760
mov rdi, rax
cmp byte [rax], 0
jne 0x18000d620
mov dword [rsp + 0x50], 0
movsxd rcx, dword [rsp + 0x50]
cmp rcx, 1
jae 0x18000d620
movsd xmm6, qword [0x180092f40]
movsd xmm7, qword [0x180092f38]
movsd xmm8, qword [0x180092f30]
mov esi, dword [rsp + 0x50]
mov r14d, dword [rsp + 0x50]
mov r15d, dword [rsp + 0x50]
mov r12d, dword [rsp + 0x50]
mov r13d, dword [rsp + 0x50]
nop dword [rax]
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000c9c9
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rbp - 0x80], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000c7c6
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000c7c6
mov esi, 8
jmp 0x18000c859
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000c859
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp - 0x80]
cvttsd2si esi, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rbp - 0x80], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000c90b
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000c90b
mov r14d, 8
jmp 0x18000c99f
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000c99f
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp - 0x80]
cvttsd2si r14d, xmm0
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, r14b
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, sil
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
imul ebx, ecx, 7
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000d30c
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
add ebx, ebx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000ccfa
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rbp - 0x80], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000caf7
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000caf7
mov r15d, 8
jmp 0x18000cb8b
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000cb8b
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp - 0x80]
cvttsd2si r15d, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rbp - 0x80], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000cc3c
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000cc3c
mov r12d, 8
jmp 0x18000ccd0
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000ccd0
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp - 0x80]
cvttsd2si r12d, xmm0
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, r12b
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, r15b
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000cfea
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rbp - 0x80], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000cde0
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000cde0
mov r13d, 8
jmp 0x18000ce74
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000ce74
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp - 0x80]
cvttsd2si r13d, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rbp - 0x80], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000cf27
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000cf27
mov dword [rsp + 0x60], 8
jmp 0x18000cfbe
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000cfbe
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp - 0x80]
cvttsd2si eax, xmm0
mov dword [rsp + 0x60], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x60]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, r13b
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx + rcx]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000d30c
mov eax, dword [rsp + 0x50]
sub eax, 0x48
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rbp - 0x80], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000d0ef
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000d0ef
mov dword [rsp + 0x7c], 8
jmp 0x18000d186
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000d186
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp - 0x80]
cvttsd2si eax, xmm0
mov dword [rsp + 0x7c], eax
mov eax, dword [rsp + 0x50]
sub eax, 0x48
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rbp - 0x80], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000d248
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000d248
mov dword [rsp + 0x78], 8
jmp 0x18000d2df
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000d2df
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp - 0x80]
cvttsd2si eax, xmm0
mov dword [rsp + 0x78], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x78]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, byte [rsp + 0x7c]
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
shl ebx, 3
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000d607
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rbp - 0x80], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000d3f8
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000d3f8
mov dword [rsp + 0x74], 8
jmp 0x18000d48f
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000d48f
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp - 0x80]
cvttsd2si eax, xmm0
mov dword [rsp + 0x74], eax
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rbp - 0x80], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000d543
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000d543
mov dword [rsp + 0x70], 8
jmp 0x18000d5da
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000d5da
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp - 0x80]
cvttsd2si eax, xmm0
mov dword [rsp + 0x70], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x70]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, byte [rsp + 0x74]
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
mov eax, dword [rsp + 0x50]
inc eax
mov dword [rsp + 0x50], eax
movsxd rax, dword [rsp + 0x50]
cmp rax, 1
jb 0x18000c6e0
mov byte [rdi], 1
movzx ebx, byte [rdi + 1]
mov edx, 0x40e07a
lea rcx, [0x18009a390]
call fcn.18005bb20
mov rcx, rax
movzx edx, bl
call fcn.18005ea30
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*2]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm2, xmm2
cvtsi2sd xmm2, rax
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rbp - 0x80], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000d735
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
jne 0x180015c02
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000d7ca
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp - 0x80]
cvttsd2si eax, xmm0
jmp 0x18000d7ce
mov eax, dword [rsp + 0x50]
test eax, eax
jg 0x180015c02
lea r8, [rbp - 0x76]
movzx edx, byte [rbp - 0x76]
lea rcx, [rbp + 0x240]
call fcn.18005eed0
nop
mov rdx, qword [rbp - 0x10]
lea rcx, [rbp + 0x240]
call fcn.18005d500
nop
xor eax, eax
mov byte [rbp - 0x68], al
lea rdx, [rbp - 0x30]
lea rcx, [rbp - 0x68]
call fcn.18001b760
mov rdi, rax
movsd xmm7, qword [0x180092f20]
movsd xmm8, qword [0x180092f18]
movsd xmm9, qword [0x180092f10]
cmp byte [rax], 0
jne 0x18000e7b0
mov dword [rsp + 0x50], 0
movsxd rcx, dword [rsp + 0x50]
cmp rcx, 1
jae 0x18000e7b0
movsd xmm6, qword [0x180092f28]
mov esi, dword [rsp + 0x50]
mov r14d, dword [rsp + 0x50]
mov r15d, dword [rsp + 0x50]
mov r12d, dword [rsp + 0x50]
mov r13d, dword [rsp + 0x50]
nop dword [rax + rax]
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000db57
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rbp - 0x80], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000d955
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000d955
mov esi, 8
jmp 0x18000d9e8
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000d9e8
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp - 0x80]
cvttsd2si esi, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rbp - 0x80], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000da99
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000da99
mov r14d, 8
jmp 0x18000db2d
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000db2d
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp - 0x80]
cvttsd2si r14d, xmm0
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, r14b
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, sil
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
imul ebx, ecx, 7
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000e49c
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
add ebx, ebx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000de88
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rbp - 0x80], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000dc85
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000dc85
mov r15d, 8
jmp 0x18000dd19
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000dd19
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp - 0x80]
cvttsd2si r15d, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rbp - 0x80], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000ddca
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000ddca
mov r12d, 8
jmp 0x18000de5e
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000de5e
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp - 0x80]
cvttsd2si r12d, xmm0
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, r12b
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, r15b
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000e17a
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rbp - 0x80], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000df6f
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000df6f
mov r13d, 8
jmp 0x18000e003
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000e003
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp - 0x80]
cvttsd2si r13d, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rbp - 0x80], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000e0b7
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000e0b7
mov dword [rsp + 0x60], 8
jmp 0x18000e14e
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000e14e
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp - 0x80]
cvttsd2si eax, xmm0
mov dword [rsp + 0x60], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x60]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, r13b
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx + rcx]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000e49c
mov eax, dword [rsp + 0x50]
sub eax, 0x43
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rbp - 0x80], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000e27f
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000e27f
mov dword [rsp + 0x7c], 8
jmp 0x18000e316
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000e316
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp - 0x80]
cvttsd2si eax, xmm0
mov dword [rsp + 0x7c], eax
mov eax, dword [rsp + 0x50]
sub eax, 0x43
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rbp - 0x80], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000e3d8
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000e3d8
mov dword [rsp + 0x78], 8
jmp 0x18000e46f
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000e46f
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp - 0x80]
cvttsd2si eax, xmm0
mov dword [rsp + 0x78], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x78]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, byte [rsp + 0x7c]
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
shl ebx, 3
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000e797
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rbp - 0x80], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000e588
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000e588
mov dword [rsp + 0x74], 8
jmp 0x18000e61f
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000e61f
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp - 0x80]
cvttsd2si eax, xmm0
mov dword [rsp + 0x74], eax
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rbp - 0x80], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000e6d3
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000e6d3
mov dword [rsp + 0x70], 8
jmp 0x18000e76a
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000e76a
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp - 0x80]
cvttsd2si eax, xmm0
mov dword [rsp + 0x70], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x70]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, byte [rsp + 0x74]
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
mov eax, dword [rsp + 0x50]
inc eax
mov dword [rsp + 0x50], eax
movsxd rax, dword [rsp + 0x50]
cmp rax, 1
jb 0x18000d870
mov byte [rdi], 1
movzx ebx, byte [rdi + 1]
mov edx, 0x230d9e
lea rcx, [0x18009a390]
call fcn.18005bb20
mov rcx, rax
movzx edx, bl
call fcn.18005ea30
mov rcx, rax
call fcn.18005ee40
xor eax, eax
mov byte [rbp - 0x67], al
mov rax, qword [rbp + 0x250]
mov qword [rbp - 0x80], rax
lea rax, [rbp + 0x240]
cmp qword [rbp + 0x258], 0x10
cmovae rax, qword [rbp + 0x240]
mov qword [rsp + 0x68], rax
mov rax, qword [rbp - 8]
mov qword [rbp - 0x70], rax
cmp qword [rax + 0x18], 0x10
jb 0x18000e81d
mov rax, qword [rax]
mov qword [rbp - 0x70], rax
lea rdx, [rbp + 0x40]
lea rcx, [rbp - 0x67]
call fcn.18001b8b0
mov rdi, rax
cmp byte [rax], 0
jne 0x18000f7c4
mov dword [rsp + 0x50], 0
movsxd rcx, dword [rsp + 0x50]
cmp rcx, 0xf
jae 0x18000f7c4
movsd xmm6, qword [0x180092f08]
mov esi, dword [rsp + 0x50]
mov r14d, dword [rsp + 0x50]
mov r15d, dword [rsp + 0x50]
mov r12d, dword [rsp + 0x50]
mov r13d, dword [rsp + 0x50]
nop dword [rax]
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000eb5b
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000e956
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000e956
mov esi, 8
jmp 0x18000e9ea
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000e9ea
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si esi, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000ea9c
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000ea9c
mov r14d, 8
jmp 0x18000eb31
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000eb31
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si r14d, xmm0
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, r14b
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, sil
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
imul ebx, ecx, 7
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000f4ae
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
add ebx, ebx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000ee92
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000ec8b
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000ec8b
mov r15d, 8
jmp 0x18000ed20
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000ed20
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si r15d, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000edd3
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000edd3
mov r12d, 8
jmp 0x18000ee68
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000ee68
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si r12d, xmm0
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, r12b
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, r15b
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000f188
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000ef7a
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000ef7a
mov r13d, 8
jmp 0x18000f00f
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000f00f
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si r13d, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000f0c4
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000f0c4
mov dword [rsp + 0x60], 8
jmp 0x18000f15c
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000f15c
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x60], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x60]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, r13b
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx + rcx]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000f4ae
mov eax, dword [rsp + 0x50]
sub eax, 0x42
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000f28e
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000f28e
mov dword [rsp + 0x7c], 8
jmp 0x18000f326
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000f326
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x7c], eax
mov eax, dword [rsp + 0x50]
sub eax, 0x42
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000f3e9
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000f3e9
mov dword [rsp + 0x78], 8
jmp 0x18000f481
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000f481
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x78], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x78]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, byte [rsp + 0x7c]
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
shl ebx, 3
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000f7ab
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000f59a
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000f59a
mov dword [rsp + 0x74], 8
jmp 0x18000f632
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000f632
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x74], eax
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000f6e6
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000f6e6
mov dword [rsp + 0x70], 8
jmp 0x18000f77e
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000f77e
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x70], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x70]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, byte [rsp + 0x74]
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
mov eax, dword [rsp + 0x50]
inc eax
mov dword [rsp + 0x50], eax
movsxd rax, dword [rsp + 0x50]
cmp rax, 0xf
jb 0x18000e870
mov byte [rdi], 1
mov rax, qword [rbp - 0x80]
lea ebx, [rax*2 + 2]
lea rdx, [rdi + 1]
mov rcx, qword [0x18009b9e8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [rsp + 0x28], ebx
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 0x20], rcx
mov r9d, 1
xor r8d, r8d
mov rdx, qword [rbp - 0x70]
mov rcx, qword [rbp + 0x238]
call rax
mov esi, eax
mov dword [rsp + 0x50], eax
xor eax, eax
mov byte [rbp - 0x66], al
lea rdx, [rbp - 0x2c]
lea rcx, [rbp - 0x66]
call fcn.18001ba00
mov rdi, rax
movsd xmm8, qword [0x180092ef0]
movsd xmm11, qword [0x180092ee8]
cmp byte [rax], 0
jne 0x1800107d5
mov dword [rsp + 0x60], 0
movsxd rcx, dword [rsp + 0x60]
cmp rcx, 1
jae 0x1800107d5
movsd xmm6, qword [0x180092f00]
movsd xmm7, qword [0x180092ef8]
mov esi, dword [rsp + 0x50]
mov r14d, dword [rsp + 0x50]
mov r15d, dword [rsp + 0x50]
mov r12d, dword [rsp + 0x50]
mov r13d, dword [rsp + 0x50]
nop dword [rax]
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000fb6b
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000f966
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000f966
mov esi, 8
jmp 0x18000f9fa
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000f9fa
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si esi, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000faac
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000faac
mov r14d, 8
jmp 0x18000fb41
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000fb41
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si r14d, xmm0
movsxd rax, dword [rsp + 0x60]
movzx r8d, byte [rax + rdi + 1]
and r8b, r14b
add r8b, r8b
movsxd rax, dword [rsp + 0x60]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, sil
movsxd rax, dword [rsp + 0x60]
mov byte [rax + rdi + 1], dl
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
imul ebx, ecx, 7
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800104bc
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
add ebx, ebx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000fea0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000fc9a
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000fc9a
mov r15d, 8
jmp 0x18000fd2f
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000fd2f
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si r15d, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000fde1
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000fde1
mov r12d, 8
jmp 0x18000fe76
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000fe76
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si r12d, xmm0
movsxd rax, dword [rsp + 0x60]
movzx r8d, byte [rax + rdi + 1]
and r8b, r12b
add r8b, r8b
movsxd rax, dword [rsp + 0x60]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, r15b
movsxd rax, dword [rsp + 0x60]
mov byte [rax + rdi + 1], dl
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180010196
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18000ff88
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18000ff88
mov r13d, 8
jmp 0x18001001d
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001001d
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si r13d, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800100d2
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800100d2
mov dword [rsp + 0x7c], 8
jmp 0x18001016a
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001016a
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x7c], eax
movsxd rax, dword [rsp + 0x60]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x7c]
add r8b, r8b
movsxd rax, dword [rsp + 0x60]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, r13b
movsxd rax, dword [rsp + 0x60]
mov byte [rax + rdi + 1], dl
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx + rcx]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800104bc
mov eax, dword [rsp + 0x60]
sub eax, 0x3e
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001029c
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18001029c
mov dword [rsp + 0x78], 8
jmp 0x180010334
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180010334
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x78], eax
mov eax, dword [rsp + 0x60]
sub eax, 0x3e
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800103f7
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800103f7
mov dword [rsp + 0x74], 8
jmp 0x18001048f
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001048f
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x74], eax
movsxd rax, dword [rsp + 0x60]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x74]
add r8b, r8b
movsxd rax, dword [rsp + 0x60]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, byte [rsp + 0x78]
movsxd rax, dword [rsp + 0x60]
mov byte [rax + rdi + 1], dl
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
shl ebx, 3
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800107b8
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm11
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800105a9
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800105a9
mov dword [rsp + 0x70], 8
jmp 0x180010641
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180010641
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x70], eax
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm11
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800106f5
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800106f5
mov dword [rbp - 0x70], 8
jmp 0x18001078c
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001078c
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rbp - 0x70], eax
movsxd rax, dword [rsp + 0x60]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rbp - 0x70]
add r8b, r8b
movsxd rax, dword [rsp + 0x60]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, byte [rsp + 0x70]
movsxd rax, dword [rsp + 0x60]
mov byte [rax + rdi + 1], dl
mov eax, dword [rsp + 0x60]
inc eax
mov dword [rsp + 0x60], eax
movsxd rax, dword [rsp + 0x60]
cmp rax, 1
jb 0x18000f880
mov esi, dword [rsp + 0x50]
mov byte [rdi], 1
movzx ebx, byte [rdi + 1]
mov edx, 0xf6334
lea rcx, [0x18009a390]
call fcn.18005bb20
mov rcx, rax
movzx edx, bl
call fcn.18005ea30
mov rcx, rax
call fcn.18005ee40
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180016c07
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
xor eax, eax
test esi, esi
setne al
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm1, xmm0
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180010906
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180010906
mov esi, 8
jmp 0x1800109a0
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001099c
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si esi, xmm0
jmp 0x1800109a0
mov esi, dword [rsp + 0x50]
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx edi, al
imul edi, ebx
call fcn.180004400
movsx edx, al
add edx, edi
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
imul eax, esi
test eax, eax
je 0x180016c07
call qword [sym.imp.KERNEL32.dll_GetLastError]
add eax, 5
mov dword [0x18009b9f0], eax
xor eax, eax
mov byte [rbp - 0x65], al
mov byte [rbp - 0x77], al
lea edx, [rax + 0x30]
lea rcx, [rbp + 0x148]
call fcn.18005e770
nop
mov edx, dword [0x18009b9f0]
lea rcx, [rbp + 0x168]
call fcn.18005e850
nop
lea rdx, [rbp - 0x18]
lea rcx, [rbp - 0x77]
call fcn.18001bb60
mov rdi, rax
movsd xmm6, qword [0x180092ee0]
movsd xmm10, qword [0x180092ed8]
cmp byte [rax], 0
jne 0x1800119ce
mov dword [rsp + 0x50], 0
movsxd rcx, dword [rsp + 0x50]
cmp rcx, 2
jae 0x1800119ce
mov esi, dword [rsp + 0x50]
mov r14d, dword [rsp + 0x50]
mov r15d, dword [rsp + 0x50]
mov r12d, dword [rsp + 0x50]
mov r13d, dword [rsp + 0x50]
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180010d65
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180010b5f
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180010b5f
mov esi, 8
jmp 0x180010bf3
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180010bf3
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si esi, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180010ca6
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180010ca6
mov r14d, 8
jmp 0x180010d3b
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180010d3b
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si r14d, xmm0
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, r14b
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, sil
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
imul ebx, ecx, 7
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800116b6
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
add ebx, ebx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18001109c
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm11
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180010e95
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180010e95
mov r15d, 8
jmp 0x180010f2a
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180010f2a
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si r15d, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm11
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180010fdd
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180010fdd
mov r12d, 8
jmp 0x180011072
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180011072
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si r12d, xmm0
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, r12b
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, r15b
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180011390
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180011183
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180011183
mov r13d, 8
jmp 0x180011218
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180011218
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si r13d, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800112cc
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800112cc
mov dword [rsp + 0x60], 8
jmp 0x180011364
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180011364
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x60], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x60]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, r13b
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx + rcx]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800116b6
mov eax, dword [rsp + 0x50]
sub eax, 0x3c
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180011496
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180011496
mov dword [rsp + 0x7c], 8
jmp 0x18001152e
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001152e
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x7c], eax
mov eax, dword [rsp + 0x50]
sub eax, 0x3c
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800115f1
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800115f1
mov dword [rsp + 0x78], 8
jmp 0x180011689
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180011689
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x78], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x78]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, byte [rsp + 0x7c]
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
shl ebx, 3
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800119b5
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm10
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800117a3
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800117a3
mov dword [rsp + 0x74], 8
jmp 0x18001183b
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001183b
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x74], eax
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm10
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800118f0
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800118f0
mov dword [rsp + 0x70], 8
jmp 0x180011988
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180011988
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x70], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x70]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, byte [rsp + 0x74]
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
mov eax, dword [rsp + 0x50]
inc eax
mov dword [rsp + 0x50], eax
movsxd rax, dword [rsp + 0x50]
cmp rax, 2
jb 0x180010a78
mov byte [rdi], 1
lea r8, [rdi + 1]
lea rdx, [0x18009b9f8]
lea rcx, [rbp + 0x188]
call fcn.18005ed10
nop
lea r9, [rbp + 0x168]
mov r8, rax
movzx edx, byte [rbp - 0x77]
lea rcx, [rbp + 0x1a8]
call fcn.18005fb20
nop
lea rdx, [rbp - 0x14]
lea rcx, [rbp - 0x65]
call fcn.18001bcc0
mov rdi, rax
movsd xmm9, qword [0x180092ed0]
cmp byte [rax], 0
jne 0x1800129ab
mov dword [rsp + 0x50], 0
movsxd rcx, dword [rsp + 0x50]
cmp rcx, 2
jae 0x1800129ab
mov esi, dword [rsp + 0x50]
mov r14d, dword [rsp + 0x50]
mov r15d, dword [rsp + 0x50]
mov r12d, dword [rsp + 0x50]
mov r13d, dword [rsp + 0x50]
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180011d42
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm11
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180011b3c
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180011b3c
mov esi, 8
jmp 0x180011bd0
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180011bd0
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si esi, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm11
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180011c83
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180011c83
mov r14d, 8
jmp 0x180011d18
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180011d18
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si r14d, xmm0
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, r14b
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, sil
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
imul ebx, ecx, 7
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180012693
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
add ebx, ebx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180012077
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180011e71
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180011e71
mov r15d, 8
jmp 0x180011f06
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180011f06
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si r15d, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180011fb8
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180011fb8
mov r12d, 8
jmp 0x18001204d
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001204d
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si r12d, xmm0
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, r12b
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, r15b
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18001236d
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm10
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001215f
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18001215f
mov r13d, 8
jmp 0x1800121f4
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800121f4
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si r13d, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm10
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800122a9
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800122a9
mov dword [rsp + 0x60], 8
jmp 0x180012341
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180012341
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x60], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x60]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, r13b
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx + rcx]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180012693
mov eax, dword [rsp + 0x50]
sub eax, 0x3b
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180012473
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180012473
mov dword [rsp + 0x7c], 8
jmp 0x18001250b
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001250b
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x7c], eax
mov eax, dword [rsp + 0x50]
sub eax, 0x3b
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800125ce
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800125ce
mov dword [rsp + 0x78], 8
jmp 0x180012666
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180012666
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x78], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x78]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, byte [rsp + 0x7c]
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
shl ebx, 3
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180012992
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180012780
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180012780
mov dword [rsp + 0x74], 8
jmp 0x180012818
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180012818
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x74], eax
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800128cd
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800128cd
mov dword [rsp + 0x70], 8
jmp 0x180012965
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180012965
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x70], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x70]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, byte [rsp + 0x74]
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
mov eax, dword [rsp + 0x50]
inc eax
mov dword [rsp + 0x50], eax
movsxd rax, dword [rsp + 0x50]
cmp rax, 2
jb 0x180011a55
mov byte [rdi], 1
lea rdx, [rdi + 1]
mov rax, 0xffffffffffffffff
nop dword [rax]
inc rax
cmp byte [rdx + rax], 0
jne 0x1800129c0
mov r8, rax
lea rcx, [rbp + 0x1a8]
call fcn.18005d480
mov rdx, rax
lea rcx, [rbp + 0x1c8]
call fcn.18005bfa0
nop
lea r9, [rbp + 0x148]
lea r8, [rbp + 0x1c8]
movzx edx, byte [rbp - 0x77]
lea rcx, [rbp + 0x1e8]
call fcn.18005fb20
nop
mov r8d, 1
lea rdx, [0x180092638]
lea rcx, [rbp + 0x1e8]
call fcn.18005d480
mov rdx, rax
lea rcx, [rbp + 0x208]
call fcn.18005bfa0
lea rdx, [rbp + 0x208]
lea rbx, [0x180099c28]
mov rcx, rbx
call fcn.18005bf10
lea rcx, [rbp + 0x208]
call fcn.1800507b0
nop
lea rcx, [rbp + 0x1e8]
call fcn.1800507b0
nop
lea rcx, [rbp + 0x1c8]
call fcn.1800507b0
nop
lea rcx, [rbp + 0x1a8]
call fcn.1800507b0
nop
lea rcx, [rbp + 0x188]
call fcn.1800507b0
nop
lea rcx, [rbp + 0x168]
call fcn.1800507b0
nop
lea rcx, [rbp + 0x148]
call fcn.1800507b0
xor eax, eax
mov byte [rbp - 0x53], al
cmp qword [0x18009ba30], 0x10
lea rax, [0x18009ba18]
cmovae rax, qword [0x18009ba18]
mov qword [rsp + 0x58], rax
cmp qword [0x180099c40], 0x10
cmovae rbx, qword [0x180099c28]
mov qword [rbp - 0x80], rbx
lea rdx, [rbp + 0x10]
lea rcx, [rbp - 0x53]
call fcn.18001be20
mov rdi, rax
movsd xmm7, qword [0x180092ec8]
movsd xmm8, qword [0x180092ec0]
cmp byte [rax], 0
jne 0x180013a8a
mov dword [rsp + 0x50], 0
movsxd rcx, dword [rsp + 0x50]
cmp rcx, 0xc
jae 0x180013a8a
mov esi, dword [rsp + 0x50]
mov r14d, dword [rsp + 0x50]
mov r15d, dword [rsp + 0x50]
mov r12d, dword [rsp + 0x50]
mov r13d, dword [rsp + 0x50]
nop dword [rax]
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180012e1d
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm10
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180012c17
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180012c17
mov esi, 8
jmp 0x180012cab
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180012cab
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si esi, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm10
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180012d5e
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180012d5e
mov r14d, 8
jmp 0x180012df3
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180012df3
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si r14d, xmm0
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, r14b
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, sil
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
imul ebx, ecx, 7
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001376e
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
add ebx, ebx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180013154
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180012f4d
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180012f4d
mov r15d, 8
jmp 0x180012fe2
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180012fe2
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si r15d, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180013095
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180013095
mov r12d, 8
jmp 0x18001312a
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001312a
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si r12d, xmm0
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, r12b
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, r15b
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180013448
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001323b
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18001323b
mov r13d, 8
jmp 0x1800132d0
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800132d0
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si r13d, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180013384
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180013384
mov dword [rsp + 0x60], 8
jmp 0x18001341c
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001341c
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si eax, xmm0
mov dword [rsp + 0x60], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x60]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, r13b
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx + rcx]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001376e
mov eax, dword [rsp + 0x50]
sub eax, 0x39
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001354e
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18001354e
mov dword [rsp + 0x7c], 8
jmp 0x1800135e6
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800135e6
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si eax, xmm0
mov dword [rsp + 0x7c], eax
mov eax, dword [rsp + 0x50]
sub eax, 0x39
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800136a9
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800136a9
mov dword [rsp + 0x78], 8
jmp 0x180013741
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180013741
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si eax, xmm0
mov dword [rsp + 0x78], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x78]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, byte [rsp + 0x7c]
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
shl ebx, 3
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180013a6d
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001385b
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18001385b
mov dword [rsp + 0x74], 8
jmp 0x1800138f3
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800138f3
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si eax, xmm0
mov dword [rsp + 0x74], eax
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x68], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800139a8
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800139a8
mov dword [rsp + 0x70], 8
jmp 0x180013a40
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180013a40
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x68]
cvttsd2si eax, xmm0
mov dword [rsp + 0x70], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x70]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, byte [rsp + 0x74]
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
mov eax, dword [rsp + 0x50]
inc eax
mov dword [rsp + 0x50], eax
movsxd rax, dword [rsp + 0x50]
cmp rax, 0xc
jb 0x180012b30
mov rbx, qword [rbp - 0x80]
mov byte [rdi], 1
lea rdx, [rdi + 1]
mov rcx, qword [0x18009b9e0]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r9d, 0x10
mov r8, qword [rsp + 0x58]
mov rdx, rbx
xor ecx, ecx
call rax
xor eax, eax
mov byte [rbp - 0x63], al
lea rdx, [rbp + 0x20]
lea rcx, [rbp - 0x63]
call fcn.18001bf90
mov rdi, rax
cmp byte [rax], 0
jne 0x180014a59
mov dword [rsp + 0x50], 0
movsxd rcx, dword [rsp + 0x50]
cmp rcx, 0xc
jae 0x180014a59
movsd xmm6, qword [0x180092eb8]
mov esi, dword [rsp + 0x50]
mov r14d, dword [rsp + 0x50]
mov r15d, dword [rsp + 0x50]
mov r12d, dword [rsp + 0x50]
mov r13d, dword [rsp + 0x50]
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180013df2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180013bec
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180013bec
mov esi, 8
jmp 0x180013c80
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180013c80
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si esi, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180013d33
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180013d33
mov r14d, 8
jmp 0x180013dc8
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180013dc8
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si r14d, xmm0
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, r14b
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, sil
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
imul ebx, ecx, 7
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180014743
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
add ebx, ebx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180014127
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180013f21
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180013f21
mov r15d, 8
jmp 0x180013fb6
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180013fb6
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si r15d, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180014068
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180014068
mov r12d, 8
jmp 0x1800140fd
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800140fd
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si r12d, xmm0
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, r12b
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, r15b
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18001441d
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001420f
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18001420f
mov r13d, 8
jmp 0x1800142a4
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800142a4
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si r13d, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180014359
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180014359
mov dword [rsp + 0x60], 8
jmp 0x1800143f1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800143f1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x60], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x60]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, r13b
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx + rcx]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180014743
mov eax, dword [rsp + 0x50]
sub eax, 0x38
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180014523
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180014523
mov dword [rsp + 0x7c], 8
jmp 0x1800145bb
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800145bb
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x7c], eax
mov eax, dword [rsp + 0x50]
sub eax, 0x38
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001467e
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18001467e
mov dword [rsp + 0x78], 8
jmp 0x180014716
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180014716
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x78], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x78]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, byte [rsp + 0x7c]
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
shl ebx, 3
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180014a40
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001482f
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18001482f
mov dword [rsp + 0x74], 8
jmp 0x1800148c7
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800148c7
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x74], eax
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001497b
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18001497b
mov dword [rsp + 0x70], 8
jmp 0x180014a13
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180014a13
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x70], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x70]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, byte [rsp + 0x74]
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
mov eax, dword [rsp + 0x50]
inc eax
mov dword [rsp + 0x50], eax
movsxd rax, dword [rsp + 0x50]
cmp rax, 0xc
jb 0x180013b05
mov byte [rdi], 1
lea rdx, [rdi + 1]
mov rcx, qword [0x18009b9e8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbp + 0x238]
call rax
xor eax, eax
mov byte [rbp - 0x62], al
lea rdx, [rbp - 0x28]
lea rcx, [rbp - 0x62]
call fcn.18001c100
mov rdi, rax
cmp byte [rax], 0
jne 0x180015a39
mov dword [rsp + 0x50], 0
movsxd rcx, dword [rsp + 0x50]
cmp rcx, 1
jae 0x180015a39
movsd xmm6, qword [0x180092eb0]
movsd xmm7, qword [0x180092ea8]
movsd xmm8, qword [0x180092ea0]
movsd xmm9, qword [0x180092e98]
mov esi, dword [rsp + 0x50]
mov r14d, dword [rsp + 0x50]
mov r15d, dword [rsp + 0x50]
mov r12d, dword [rsp + 0x50]
mov r13d, dword [rsp + 0x50]
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180014dd0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180014bcb
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180014bcb
mov esi, 8
jmp 0x180014c5f
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180014c5f
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si esi, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180014d11
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180014d11
mov r14d, 8
jmp 0x180014da6
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180014da6
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si r14d, xmm0
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, r14b
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, sil
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
imul ebx, ecx, 7
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180015721
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
add ebx, ebx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180015105
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180014eff
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180014eff
mov r15d, 8
jmp 0x180014f94
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180014f94
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si r15d, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180015046
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180015046
mov r12d, 8
jmp 0x1800150db
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800150db
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si r12d, xmm0
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, r12b
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, r15b
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800153fb
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800151ed
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800151ed
mov r13d, 8
jmp 0x180015282
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180015282
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si r13d, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180015337
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180015337
mov dword [rsp + 0x60], 8
jmp 0x1800153cf
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800153cf
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x60], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x60]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, r13b
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx + rcx]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180015721
mov eax, dword [rsp + 0x50]
sub eax, 0x34
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180015501
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180015501
mov dword [rsp + 0x7c], 8
jmp 0x180015599
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180015599
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x7c], eax
mov eax, dword [rsp + 0x50]
sub eax, 0x34
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001565c
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18001565c
mov dword [rsp + 0x78], 8
jmp 0x1800156f4
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800156f4
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x78], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x78]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, byte [rsp + 0x7c]
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
shl ebx, 3
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180015a20
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001580e
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18001580e
mov dword [rsp + 0x74], 8
jmp 0x1800158a6
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800158a6
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x74], eax
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001595b
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18001595b
mov dword [rsp + 0x70], 8
jmp 0x1800159f3
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800159f3
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x70], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x70]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, byte [rsp + 0x74]
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
mov eax, dword [rsp + 0x50]
inc eax
mov dword [rsp + 0x50], eax
movsxd rax, dword [rsp + 0x50]
cmp rax, 1
jb 0x180014ae5
mov byte [rdi], 1
movzx ebx, byte [rdi + 1]
mov edx, 0x2d6e58a
lea rcx, [0x18009a390]
call fcn.18005bb20
mov rcx, rax
movzx edx, bl
call fcn.18005ea30
mov rcx, rax
call fcn.18005ee40
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm2, xmm2
cvtsi2sd xmm2, rax
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180015b57
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
jne 0x180015bf5
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180015bed
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
jmp 0x180015bf1
mov eax, dword [rsp + 0x50]
test eax, eax
jle 0x180015c1c
lea rcx, [rbp + 0x240]
call fcn.1800507b0
nop
mov rcx, qword [rbp - 8]
call fcn.1800507b0
nop
mov rcx, qword [rbp - 0x10]
call fcn.1800507b0
xor al, al
jmp 0x18001ad65
xor eax, eax
mov byte [rbp - 0x61], al
lea rdx, [rbp - 0x24]
lea rcx, [rbp - 0x61]
call fcn.18001c250
mov rdi, rax
cmp byte [rax], 0
jne 0x180016be4
mov dword [rsp + 0x50], 0
movsxd rcx, dword [rsp + 0x50]
cmp rcx, 1
jae 0x180016be4
movsd xmm6, qword [0x180092e90]
movsd xmm7, qword [0x180092e88]
movsd xmm8, qword [0x180092e80]
movsd xmm9, qword [0x180092e78]
mov esi, dword [rsp + 0x50]
mov r14d, dword [rsp + 0x50]
mov r15d, dword [rsp + 0x50]
mov r12d, dword [rsp + 0x50]
mov r13d, dword [rsp + 0x50]
nop dword [rax + rax]
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180015f7b
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180015d76
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180015d76
mov esi, 8
jmp 0x180015e0a
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180015e0a
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si esi, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180015ebc
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180015ebc
mov r14d, 8
jmp 0x180015f51
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180015f51
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si r14d, xmm0
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, r14b
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, sil
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
imul ebx, ecx, 7
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800168cc
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
add ebx, ebx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800162b0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800160aa
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800160aa
mov r15d, 8
jmp 0x18001613f
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001613f
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si r15d, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800161f1
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800161f1
mov r12d, 8
jmp 0x180016286
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180016286
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si r12d, xmm0
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, r12b
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, r15b
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800165a6
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180016398
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180016398
mov r13d, 8
jmp 0x18001642d
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001642d
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si r13d, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800164e2
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800164e2
mov dword [rsp + 0x60], 8
jmp 0x18001657a
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001657a
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x60], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x60]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, r13b
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx + rcx]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800168cc
mov eax, dword [rsp + 0x50]
sub eax, 0x30
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800166ac
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800166ac
mov dword [rsp + 0x7c], 8
jmp 0x180016744
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180016744
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x7c], eax
mov eax, dword [rsp + 0x50]
sub eax, 0x30
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180016807
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180016807
mov dword [rsp + 0x78], 8
jmp 0x18001689f
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001689f
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x78], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x78]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, byte [rsp + 0x7c]
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
shl ebx, 3
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180016bcb
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800169b9
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800169b9
mov dword [rsp + 0x74], 8
jmp 0x180016a51
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180016a51
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x74], eax
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180016b06
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180016b06
mov dword [rsp + 0x70], 8
jmp 0x180016b9e
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180016b9e
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x70], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x70]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, byte [rsp + 0x74]
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
mov eax, dword [rsp + 0x50]
inc eax
mov dword [rsp + 0x50], eax
movsxd rax, dword [rsp + 0x50]
cmp rax, 1
jb 0x180015c90
mov byte [rdi], 1
movzx ebx, byte [rdi + 1]
mov edx, 0x2693ac2
lea rcx, [0x18009a390]
call fcn.18005bb20
mov rcx, rax
movzx edx, bl
call fcn.18005ea30
xor eax, eax
mov byte [rbp - 0x60], al
lea rdx, [rbp - 0x50]
lea rcx, [rbp - 0x60]
call fcn.18001b1d0
mov rdi, rax
movsd xmm7, qword [0x180092e68]
movsd xmm8, qword [0x180092e60]
movsd xmm9, qword [0x180092e58]
cmp byte [rax], 0
jne 0x180017bca
mov dword [rsp + 0x50], 0
movsxd rcx, dword [rsp + 0x50]
cmp rcx, 1
jae 0x180017bca
movsd xmm6, qword [0x180092e70]
mov esi, dword [rsp + 0x50]
mov r14d, dword [rsp + 0x50]
mov r15d, dword [rsp + 0x50]
mov r12d, dword [rsp + 0x50]
mov r13d, dword [rsp + 0x50]
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180016f61
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180016d5c
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180016d5c
mov esi, 8
jmp 0x180016df0
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180016df0
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si esi, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180016ea2
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180016ea2
mov r14d, 8
jmp 0x180016f37
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180016f37
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si r14d, xmm0
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, r14b
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, sil
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
imul ebx, ecx, 7
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800178b2
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
add ebx, ebx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180017296
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180017090
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180017090
mov r15d, 8
jmp 0x180017125
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180017125
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si r15d, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800171d7
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800171d7
mov r12d, 8
jmp 0x18001726c
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001726c
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si r12d, xmm0
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, r12b
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, r15b
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18001758c
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001737e
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18001737e
mov r13d, 8
jmp 0x180017413
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180017413
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si r13d, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800174c8
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800174c8
mov dword [rsp + 0x60], 8
jmp 0x180017560
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180017560
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x60], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x60]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, r13b
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx + rcx]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800178b2
mov eax, dword [rsp + 0x50]
sub eax, 0x2c
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180017692
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180017692
mov dword [rsp + 0x7c], 8
jmp 0x18001772a
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001772a
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x7c], eax
mov eax, dword [rsp + 0x50]
sub eax, 0x2c
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800177ed
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800177ed
mov dword [rsp + 0x78], 8
jmp 0x180017885
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180017885
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x78], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x78]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, byte [rsp + 0x7c]
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
shl ebx, 3
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180017bb1
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001799f
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18001799f
mov dword [rsp + 0x74], 8
jmp 0x180017a37
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180017a37
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x74], eax
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180017aec
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180017aec
mov dword [rsp + 0x70], 8
jmp 0x180017b84
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180017b84
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x70], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x70]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, byte [rsp + 0x74]
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
mov eax, dword [rsp + 0x50]
inc eax
mov dword [rsp + 0x50], eax
movsxd rax, dword [rsp + 0x50]
cmp rax, 1
jb 0x180016c76
mov byte [rdi], 1
movzx ebx, byte [rdi + 1]
mov edx, 0x231f52a
lea rcx, [0x18009a390]
call fcn.18005bb20
mov rcx, rax
movzx edx, bl
call fcn.18005ea30
xor eax, eax
mov byte [rbp - 0x5f], al
lea rdx, [rbp + 0x30]
lea rcx, [rbp - 0x5f]
call fcn.18001c3a0
mov rdi, rax
cmp byte [rax], 0
jne 0x180018b96
mov dword [rsp + 0x50], 0
movsxd rcx, dword [rsp + 0x50]
cmp rcx, 0xc
jae 0x180018b96
movsd xmm6, qword [0x180092e50]
mov esi, dword [rsp + 0x50]
mov r14d, dword [rsp + 0x50]
mov r15d, dword [rsp + 0x50]
mov r12d, dword [rsp + 0x50]
mov r13d, dword [rsp + 0x50]
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180017f2d
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180017d28
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180017d28
mov esi, 8
jmp 0x180017dbc
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180017dbc
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si esi, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180017e6e
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180017e6e
mov r14d, 8
jmp 0x180017f03
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180017f03
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si r14d, xmm0
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, r14b
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, sil
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
imul ebx, ecx, 7
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180018880
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
add ebx, ebx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180018264
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001805d
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18001805d
mov r15d, 8
jmp 0x1800180f2
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800180f2
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si r15d, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800181a5
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800181a5
mov r12d, 8
jmp 0x18001823a
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001823a
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si r12d, xmm0
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, r12b
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, r15b
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18001855a
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001834c
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18001834c
mov r13d, 8
jmp 0x1800183e1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800183e1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si r13d, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180018496
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180018496
mov dword [rsp + 0x60], 8
jmp 0x18001852e
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001852e
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x60], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x60]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, r13b
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx + rcx]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180018880
mov eax, dword [rsp + 0x50]
sub eax, 0x2b
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180018660
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180018660
mov dword [rsp + 0x7c], 8
jmp 0x1800186f8
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800186f8
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x7c], eax
mov eax, dword [rsp + 0x50]
sub eax, 0x2b
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800187bb
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800187bb
mov dword [rsp + 0x78], 8
jmp 0x180018853
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180018853
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x78], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x78]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, byte [rsp + 0x7c]
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
shl ebx, 3
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180018b7d
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001896c
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18001896c
mov dword [rsp + 0x74], 8
jmp 0x180018a04
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180018a04
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x74], eax
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180018ab8
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180018ab8
mov dword [rsp + 0x70], 8
jmp 0x180018b50
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180018b50
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x70], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x70]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, byte [rsp + 0x74]
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
mov eax, dword [rsp + 0x50]
inc eax
mov dword [rsp + 0x50], eax
movsxd rax, dword [rsp + 0x50]
cmp rax, 0xc
jb 0x180017c42
mov byte [rdi], 1
lea rdx, [rdi + 1]
mov rcx, qword [0x18009b9e8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbp + 0x238]
call rax
xor eax, eax
mov byte [rbp - 0x5e], al
lea rdx, [rbp - 0x4c]
lea rcx, [rbp - 0x5e]
call fcn.18001af10
mov rdi, rax
cmp byte [rax], 0
jne 0x180019b76
mov dword [rsp + 0x50], 0
movsxd rcx, dword [rsp + 0x50]
cmp rcx, 1
jae 0x180019b76
movsd xmm6, qword [0x180092e48]
movsd xmm7, qword [0x180092e40]
movsd xmm8, qword [0x180092e38]
movsd xmm9, qword [0x180092e30]
mov esi, dword [rsp + 0x50]
mov r14d, dword [rsp + 0x50]
mov r15d, dword [rsp + 0x50]
mov r12d, dword [rsp + 0x50]
mov r13d, dword [rsp + 0x50]
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180018f0d
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180018d08
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180018d08
mov esi, 8
jmp 0x180018d9c
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180018d9c
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si esi, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180018e4e
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180018e4e
mov r14d, 8
jmp 0x180018ee3
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180018ee3
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si r14d, xmm0
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, r14b
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, sil
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
imul ebx, ecx, 7
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001985e
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
add ebx, ebx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180019242
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001903c
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18001903c
mov r15d, 8
jmp 0x1800190d1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800190d1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si r15d, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180019183
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180019183
mov r12d, 8
jmp 0x180019218
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180019218
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si r12d, xmm0
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, r12b
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, r15b
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180019538
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001932a
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18001932a
mov r13d, 8
jmp 0x1800193bf
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800193bf
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si r13d, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180019474
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180019474
mov dword [rsp + 0x60], 8
jmp 0x18001950c
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001950c
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x60], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x60]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, r13b
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx + rcx]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001985e
mov eax, dword [rsp + 0x50]
sub eax, 0x27
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001963e
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18001963e
mov dword [rsp + 0x7c], 8
jmp 0x1800196d6
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800196d6
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x7c], eax
mov eax, dword [rsp + 0x50]
sub eax, 0x27
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180019799
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180019799
mov dword [rsp + 0x78], 8
jmp 0x180019831
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180019831
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x78], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x78]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, byte [rsp + 0x7c]
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
shl ebx, 3
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180019b5d
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001994b
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18001994b
mov dword [rsp + 0x74], 8
jmp 0x1800199e3
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800199e3
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x74], eax
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180019a98
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180019a98
mov dword [rsp + 0x70], 8
jmp 0x180019b30
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180019b30
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x70], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x70]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, byte [rsp + 0x74]
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
mov eax, dword [rsp + 0x50]
inc eax
mov dword [rsp + 0x50], eax
movsxd rax, dword [rsp + 0x50]
cmp rax, 1
jb 0x180018c22
mov byte [rdi], 1
movzx ebx, byte [rdi + 1]
mov edx, 0x1d81084
lea rcx, [0x18009a390]
call fcn.18005bb20
mov rcx, rax
movzx edx, bl
call fcn.18005ea30
mov rcx, rax
call fcn.18005ee40
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx + rcx*2]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm2, xmm2
cvtsi2sd xmm2, rax
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180019c91
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
jne 0x180019d2f
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180019d27
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
jmp 0x180019d2b
mov eax, dword [rsp + 0x50]
test eax, eax
jle 0x180019d56
lea rcx, [rbp + 0x240]
call fcn.1800507b0
nop
mov rcx, qword [rbp - 8]
call fcn.1800507b0
nop
mov rcx, qword [rbp - 0x10]
call fcn.1800507b0
mov al, 1
jmp 0x18001ad65
xor eax, eax
mov byte [rbp - 0x5d], al
lea rdx, [rbp - 0x48]
lea rcx, [rbp - 0x5d]
call fcn.18001adb0
mov rdi, rax
cmp byte [rax], 0
jne 0x18001ad19
mov dword [rsp + 0x50], 0
movsxd rcx, dword [rsp + 0x50]
cmp rcx, 1
jae 0x18001ad19
movsd xmm6, qword [0x180092e28]
movsd xmm7, qword [0x180092e20]
movsd xmm8, qword [0x180092e18]
movsd xmm9, qword [0x180092e10]
mov esi, dword [rsp + 0x50]
mov r14d, dword [rsp + 0x50]
mov r15d, dword [rsp + 0x50]
mov r12d, dword [rsp + 0x50]
mov r13d, dword [rsp + 0x50]
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18001a0b2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180019eac
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180019eac
mov r14d, 8
jmp 0x180019f41
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180019f41
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si r14d, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180019ff3
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180019ff3
mov r15d, 8
jmp 0x18001a088
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001a088
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si r15d, xmm0
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, r15b
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, r14b
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
imul ebx, ecx, 7
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001aa01
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
add ebx, ebx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18001a3e5
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001a1e0
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18001a1e0
mov esi, 8
jmp 0x18001a274
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001a274
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si esi, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001a326
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18001a326
mov r12d, 8
jmp 0x18001a3bb
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001a3bb
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si r12d, xmm0
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, r12b
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, sil
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18001a6db
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001a4cd
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18001a4cd
mov r13d, 8
jmp 0x18001a562
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001a562
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si r13d, xmm0
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001a617
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18001a617
mov dword [rsp + 0x60], 8
jmp 0x18001a6af
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001a6af
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x60], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x60]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, r13b
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx + rcx]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001aa01
mov eax, dword [rsp + 0x50]
sub eax, 0x22
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001a7e1
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18001a7e1
mov dword [rsp + 0x7c], 8
jmp 0x18001a879
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001a879
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x7c], eax
mov eax, dword [rsp + 0x50]
sub eax, 0x22
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001a93c
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18001a93c
mov dword [rsp + 0x78], 8
jmp 0x18001a9d4
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001a9d4
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x78], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x78]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, byte [rsp + 0x7c]
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
call fcn.1800043e0
movsx ecx, al
movsx ebx, byte [0x18009b9f4]
imul ebx, ecx
shl ebx, 3
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18001ad00
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001aaee
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18001aaee
mov dword [rsp + 0x74], 8
jmp 0x18001ab86
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001ab86
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x74], eax
movsx eax, byte [0x180099c22]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [0x180099c24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rsp + 0x58], xmm1
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea ebx, [rcx*4]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001ac3b
call fcn.1800043e0
movsx ecx, al
movsx edx, byte [0x18009b9f4]
imul edx, ecx
lea ebx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub ebx, ecx
call fcn.1800043f0
movsx edx, al
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18001ac3b
mov dword [rsp + 0x70], 8
jmp 0x18001acd3
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18001acd3
call fcn.1800043d0
movsx ebx, al
call fcn.1800043c0
movsx ecx, al
imul ecx, ebx
lea eax, [rcx + rcx*4]
lea ebx, [rax + rax]
call fcn.180004400
movsx edx, al
add edx, ebx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x58]
cvttsd2si eax, xmm0
mov dword [rsp + 0x70], eax
movsxd rax, dword [rsp + 0x50]
movzx r8d, byte [rax + rdi + 1]
and r8b, byte [rsp + 0x70]
add r8b, r8b
movsxd rax, dword [rsp + 0x50]
movzx edx, byte [rax + rdi + 1]
sub dl, r8b
add dl, byte [rsp + 0x74]
movsxd rax, dword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
mov eax, dword [rsp + 0x50]
inc eax
mov dword [rsp + 0x50], eax
movsxd rax, dword [rsp + 0x50]
cmp rax, 1
jb 0x180019dc5
mov byte [rdi], 1
movzx ebx, byte [rdi + 1]
mov edx, 0x180d4ec
lea rcx, [0x18009a390]
call fcn.18005bb20
mov rcx, rax
movzx edx, bl
call fcn.18005ea30
mov rcx, rax
call fcn.18005ee40
nop
lea rcx, [rbp + 0x240]
call fcn.1800507b0
nop
mov rcx, qword [rbp - 8]
call fcn.1800507b0
nop
mov rcx, qword [rbp - 0x10]
call fcn.1800507b0
mov rcx, qword [rbp + 0x260]
xor rcx, rsp
call fcn.180062640
lea r11, [rsp + 0x3d0]
mov rbx, qword [r11 + 0x58]
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 rdi
pop rsi
pop rbp
ret