Function at 0x180038c20
Capabilities:
Access peb ldr_data

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x10]
sub rsp, 0x110
movaps xmmword [rsp + 0x100], xmm6
mov rax, qword [0x180099020]
xor rax, rsp
mov qword [rbp - 0x10], rax
mov qword [rbp - 0x48], rdx
mov rsi, rcx
mov qword [rbp - 0x70], rcx
mov qword [rbp - 0x40], rdx
mov eax, dword [rcx]
mov r8, qword gs:[rax]
mov rax, qword [r8 + 0x18]
mov rax, qword [rax + 0x20]
mov qword [rsp + 0x28], rax
call fcn.1800043d0
movsx ecx, al
mov dword [rsp + 0x78], ecx
call fcn.1800043c0
movsx r13d, al
mov dword [rsp + 0x6c], r13d
mov r9d, r13d
imul r9d, ecx
mov dword [rsp + 0x30], r9d
call fcn.180004400
movsx edi, al
movsx eax, byte [0x180099c21]
add eax, edi
lea eax, [rax + r9*8]
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 + 0x38], xmm1
lea edx, [r9*4]
add edx, edi
mov dword [rsp + 0x60], edx
movsx eax, byte [0x180099c21]
add eax, edx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
mov r12d, 8
cmp eax, ecx
je 0x180038d73
call fcn.1800043e0
movsx edx, al
movsx eax, byte [0x18009b9f4]
imul edx, eax
lea edx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub edx, ecx
call fcn.1800043f0
movsx ecx, al
add edx, ecx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180038d73
mov eax, r12d
lea r15d, [r9 + r9*4]
add r15d, r15d
mov dword [rsp + 0x40], r15d
jmp 0x180038de4
lea eax, [r9 + r9*4]
lea r15d, [rax + rax]
mov dword [rsp + 0x40], r15d
lea r9d, [r15 + rdi]
movsx eax, byte [0x180099c21]
add eax, r9d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180038ddb
movsx eax, byte [0x180099c21]
add eax, r9d
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 + 0x38]
cvttsd2si eax, xmm0
mov dword [rsp + 0x40], r15d
jmp 0x180038ddf
mov eax, dword [rsp + 0x38]
mov r9d, dword [rsp + 0x30]
test eax, eax
jle 0x180038df9
movzx eax, word [0x180092678]
mov word [rbp - 0x80], ax
lea r14, [rbp - 0x80]
jmp 0x180038dfd
mov r14, qword [rbp - 0x40]
xor eax, eax
cmp byte [r14], al
jne 0x18003989e
mov dword [rsp + 0x20], eax
movsxd rax, dword [rsp + 0x20]
cmp rax, 1
jae 0x18003989e
call fcn.1800043e0
movsx r11d, al
call fcn.180004410
movsx ebx, al
call fcn.1800043f0
movsx esi, al
imul r10d, r9d, 7
add r10d, edi
mov dword [rsp + 0x70], r10d
movsd xmm3, qword [0x180092c28]
movsd xmm4, qword [0x180092c30]
movsd xmm5, qword [0x180092c38]
movsd xmm6, qword [0x180092c40]
mov r13d, dword [rsp + 0x38]
jmp 0x180038e75
mov r9d, dword [rsp + 0x30]
movsx edx, byte [0x18009b9f4]
imul edx, r11d
sub edx, ebx
add edx, esi
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18003905f
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, xmm3
movsd qword [rsp + 0x38], xmm1
movsx ecx, byte [0x180099c21]
mov eax, dword [rsp + 0x60]
add eax, ecx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180038f08
movsx ecx, byte [0x18009b9f4]
imul ecx, r11d
lea edx, [rcx + rcx*2]
sub edx, ebx
add edx, esi
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180038f08
mov r13d, r12d
jmp 0x180038f5d
lea r9d, [rdi + r15]
movsx eax, byte [0x180099c21]
add eax, r9d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180038f5d
movsx eax, byte [0x180099c21]
add eax, r9d
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 + 0x38]
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, xmm3
movsd qword [rsp + 0x38], xmm1
movsx ecx, byte [0x180099c21]
mov eax, dword [rsp + 0x60]
add eax, ecx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180038fd4
movsx ecx, byte [0x18009b9f4]
imul ecx, r11d
lea edx, [rcx + rcx*2]
sub edx, ebx
add edx, esi
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180038fd4
mov dword [rsp + 0x64], r12d
jmp 0x18003902c
lea r9d, [r15 + rdi]
movsx eax, byte [0x180099c21]
add eax, r9d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003902c
movsx eax, byte [0x180099c21]
add eax, r9d
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 + 0x38]
cvttsd2si eax, xmm0
mov dword [rsp + 0x64], eax
movsxd rax, dword [rsp + 0x20]
movzx r8d, byte [rax + r14 + 1]
and r8b, byte [rsp + 0x64]
add r8b, r8b
movsxd rax, dword [rsp + 0x20]
movzx edx, byte [rax + r14 + 1]
sub dl, r8b
add dl, r13b
movsxd rax, dword [rsp + 0x20]
mov byte [rax + r14 + 1], dl
mov r9d, dword [rsp + 0x30]
movsx eax, byte [0x180099c21]
add eax, r10d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003967f
movsx ecx, byte [0x18009b9f4]
imul ecx, r11d
lea eax, [rcx + rcx*2]
lea edx, [rax + rax]
sub edx, ebx
add edx, esi
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180039279
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, xmm4
movsd qword [rsp + 0x38], xmm1
lea r10d, [r9*4]
add r10d, edi
movsx eax, byte [0x180099c21]
add eax, r10d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180039126
movsx ecx, byte [0x18009b9f4]
imul ecx, r11d
lea edx, [rcx + rcx*2]
sub edx, ebx
add edx, esi
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180039126
mov dword [rsp + 0x44], r12d
jmp 0x18003917e
lea r9d, [rdi + r15]
movsx eax, byte [0x180099c21]
add eax, r9d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003917e
movsx eax, byte [0x180099c21]
add eax, r9d
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 + 0x38]
cvttsd2si eax, xmm0
mov dword [rsp + 0x44], 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, xmm4
movsd qword [rsp + 0x38], xmm1
movsx eax, byte [0x180099c21]
add eax, r10d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800391f2
movsx ecx, byte [0x18009b9f4]
imul ecx, r11d
lea edx, [rcx + rcx*2]
sub edx, ebx
add edx, esi
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800391f2
mov dword [rsp + 0x68], r12d
jmp 0x18003924a
lea r9d, [rdi + r15]
movsx eax, byte [0x180099c21]
add eax, r9d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003924a
movsx eax, byte [0x180099c21]
add eax, r9d
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 + 0x38]
cvttsd2si eax, xmm0
mov dword [rsp + 0x68], eax
movsxd rax, dword [rsp + 0x20]
movzx r8d, byte [rax + r14 + 1]
and r8b, byte [rsp + 0x68]
add r8b, r8b
movsxd rax, dword [rsp + 0x20]
movzx edx, byte [rax + r14 + 1]
sub dl, r8b
add dl, byte [rsp + 0x44]
movsxd rax, dword [rsp + 0x20]
mov byte [rax + r14 + 1], dl
movsx edx, byte [0x18009b9f4]
imul edx, r11d
sub edx, ebx
add edx, esi
mov r9d, dword [rsp + 0x30]
lea r10d, [r9*4]
add r10d, edi
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180039473
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, xmm5
movsd qword [rsp + 0x38], xmm1
movsx eax, byte [0x180099c21]
add eax, r10d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003931b
movsx ecx, byte [0x18009b9f4]
imul ecx, r11d
lea edx, [rcx + rcx*2]
sub edx, ebx
add edx, esi
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18003931b
mov dword [rsp + 0x4c], r12d
jmp 0x180039373
lea r9d, [rdi + r15]
movsx eax, byte [0x180099c21]
add eax, r9d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180039373
movsx eax, byte [0x180099c21]
add eax, r9d
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 + 0x38]
cvttsd2si eax, xmm0
mov dword [rsp + 0x4c], 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, xmm5
movsd qword [rsp + 0x38], xmm1
movsx eax, byte [0x180099c21]
add eax, r10d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800393e7
movsx ecx, byte [0x18009b9f4]
imul ecx, r11d
lea edx, [rcx + rcx*2]
sub edx, ebx
add edx, esi
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800393e7
mov dword [rsp + 0x48], r12d
jmp 0x18003943f
lea r9d, [r15 + rdi]
movsx eax, byte [0x180099c21]
add eax, r9d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003943f
movsx eax, byte [0x180099c21]
add eax, r9d
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 + 0x38]
cvttsd2si eax, xmm0
mov dword [rsp + 0x48], eax
movsxd rax, dword [rsp + 0x20]
movzx r8d, byte [rax + r14 + 1]
and r8b, byte [rsp + 0x48]
add r8b, r8b
movsxd rax, dword [rsp + 0x20]
movzx edx, byte [rax + r14 + 1]
sub dl, r8b
add dl, byte [rsp + 0x4c]
movsxd rax, dword [rsp + 0x20]
mov byte [rax + r14 + 1], dl
mov r9d, dword [rsp + 0x30]
movsx eax, byte [0x180099c21]
add eax, edi
lea eax, [rax + r9*2]
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180039684
mov eax, dword [rsp + 0x20]
add eax, 0x5c
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 + 0x38], xmm1
movsx eax, byte [0x180099c21]
add eax, r10d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003951d
movsx ecx, byte [0x18009b9f4]
imul ecx, r11d
lea edx, [rcx + rcx*2]
sub edx, ebx
add edx, esi
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18003951d
mov dword [rsp + 0x54], r12d
jmp 0x180039575
lea r9d, [r15 + rdi]
movsx eax, byte [0x180099c21]
add eax, r9d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180039575
movsx eax, byte [0x180099c21]
add eax, r9d
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 + 0x38]
cvttsd2si eax, xmm0
mov dword [rsp + 0x54], eax
mov eax, dword [rsp + 0x20]
add eax, 0x5c
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 + 0x38], xmm1
movsx eax, byte [0x180099c21]
add eax, r10d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800395f8
movsx ecx, byte [0x18009b9f4]
imul ecx, r11d
lea edx, [rcx + rcx*2]
sub edx, ebx
add edx, esi
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800395f8
mov dword [rsp + 0x50], r12d
jmp 0x180039650
lea r9d, [r15 + rdi]
movsx eax, byte [0x180099c21]
add eax, r9d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180039650
movsx eax, byte [0x180099c21]
add eax, r9d
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 + 0x38]
cvttsd2si eax, xmm0
mov dword [rsp + 0x50], eax
movsxd rax, dword [rsp + 0x20]
movzx r8d, byte [rax + r14 + 1]
and r8b, byte [rsp + 0x50]
add r8b, r8b
movsxd rax, dword [rsp + 0x20]
movzx edx, byte [rax + r14 + 1]
sub dl, r8b
add dl, byte [rsp + 0x54]
movsxd rax, dword [rsp + 0x20]
mov byte [rax + r14 + 1], dl
mov r9d, dword [rsp + 0x30]
movsx edx, byte [0x18009b9f4]
imul edx, r11d
shl edx, 3
sub edx, ebx
add edx, esi
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180039877
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 + 0x38], xmm1
lea r10d, [r9*4]
add r10d, edi
movsx eax, byte [0x180099c21]
add eax, r10d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180039728
movsx ecx, byte [0x18009b9f4]
imul ecx, r11d
lea edx, [rcx + rcx*2]
sub edx, ebx
add edx, esi
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180039728
mov dword [rsp + 0x5c], r12d
lea r9d, [rdi + r15]
jmp 0x180039780
lea r9d, [r15 + rdi]
movsx eax, byte [0x180099c21]
add eax, r9d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180039780
movsx eax, byte [0x180099c21]
add eax, r9d
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 + 0x38]
cvttsd2si eax, xmm0
mov dword [rsp + 0x5c], 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 + 0x38], xmm1
movsx eax, byte [0x180099c21]
add eax, r10d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x1800397f4
movsx ecx, byte [0x18009b9f4]
imul ecx, r11d
lea edx, [rcx + rcx*2]
sub edx, ebx
add edx, esi
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x1800397f4
mov dword [rsp + 0x58], r12d
jmp 0x180039848
movsx eax, byte [0x180099c21]
add eax, r9d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180039848
movsx eax, byte [0x180099c21]
add eax, r9d
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 + 0x38]
cvttsd2si eax, xmm0
mov dword [rsp + 0x58], eax
movsxd rax, dword [rsp + 0x20]
movzx r8d, byte [rax + r14 + 1]
and r8b, byte [rsp + 0x58]
add r8b, r8b
movsxd rax, dword [rsp + 0x20]
movzx edx, byte [rax + r14 + 1]
sub dl, r8b
add dl, byte [rsp + 0x5c]
movsxd rax, dword [rsp + 0x20]
mov byte [rax + r14 + 1], dl
mov eax, dword [rsp + 0x20]
inc eax
mov dword [rsp + 0x20], eax
movsxd rax, dword [rsp + 0x20]
cmp rax, 1
mov r10d, dword [rsp + 0x70]
jb 0x180038e70
mov rsi, qword [rbp - 0x70]
mov r13d, dword [rsp + 0x6c]
mov byte [r14], 1
movzx ebx, byte [r14 + 1]
mov edx, 0x1f4a09a
call fcn.18005bb20
mov rcx, rax
movzx edx, bl
call fcn.18005ea30
mov rax, qword [rsp + 0x28]
mov rdx, qword [rax + 0x40]
xor ebx, ebx
mov qword [rbp - 0x68], rbx
mov qword [rbp - 0x58], rbx
mov qword [rbp - 0x50], 7
mov word [rbp - 0x68], bx
mov r8, 0xffffffffffffffff
inc r8
cmp word [rdx + r8*2], bx
jne 0x1800398e2
lea rcx, [rbp - 0x68]
call fcn.18005d010
nop
lea r8, [rbp - 0x68]
lea rdx, [rbp - 0x30]
lea rcx, [rbp - 0x37]
call fcn.18003c050
nop
mov rdx, qword [rbp - 0x50]
cmp rdx, 8
jb 0x180039948
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180039943
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18003c041
call fcn.180062660
mov qword [rbp - 0x58], rbx
mov qword [rbp - 0x50], 7
mov word [rbp - 0x68], bx
lea rdx, [rbp - 0x30]
lea rcx, [rbp - 0x38]
call fcn.18003cee0
lea rdx, [rsi + 8]
mov qword [rbp - 0x70], rdx
lea rcx, [rbp - 0x38]
call fcn.18003cee0
mov esi, dword [rsp + 0x78]
imul esi, r13d
mov dword [rsp + 0x38], esi
movsx eax, byte [0x180099c21]
add eax, edi
add eax, esi
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 + 0x28], xmm1
movsx ecx, byte [0x180099c21]
mov eax, dword [rsp + 0x60]
add eax, ecx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180039a30
call fcn.1800043e0
movsx edx, al
movsx eax, byte [0x18009b9f4]
imul edx, eax
lea edx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub edx, ecx
call fcn.1800043f0
movsx ecx, al
add edx, ecx
movsx ecx, byte [0x180099c24]
add ecx, edx
jne 0x180039a8e
lea r9d, [rdi + r15]
movsx eax, byte [0x180099c21]
add eax, r9d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180039a86
movsx eax, byte [0x180099c21]
add eax, r9d
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 + 0x28]
cvttsd2si eax, xmm0
jmp 0x180039a8a
mov eax, dword [rsp + 0x38]
test eax, eax
jle 0x180039a9f
movzx eax, word [0x180092678]
mov word [rbp - 0x7c], ax
lea r14, [rbp - 0x7c]
jmp 0x180039aa3
mov r14, qword [rbp - 0x40]
cmp byte [r14], 0
jne 0x18003a535
mov dword [rsp + 0x20], ebx
movsxd rax, dword [rsp + 0x20]
cmp rax, 1
jae 0x18003a535
call fcn.1800043e0
movsx r10d, al
call fcn.180004410
movsx r11d, al
call fcn.1800043f0
movsx ebx, al
imul eax, esi, 7
add eax, edi
mov dword [rsp + 0x70], eax
movsd xmm3, qword [0x180092c68]
movsd xmm4, qword [0x180092c70]
movsd xmm5, qword [0x180092c78]
movsd xmm6, qword [0x180092c80]
mov r13d, dword [rsp + 0x38]
nop dword [rax + rax]
movsx edx, byte [0x18009b9f4]
imul edx, r10d
sub edx, r11d
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180039d06
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, xmm3
movsd qword [rsp + 0x28], xmm1
movsx ecx, byte [0x180099c21]
mov eax, dword [rsp + 0x60]
add eax, ecx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180039baa
movsx ecx, byte [0x18009b9f4]
imul ecx, r10d
lea edx, [rcx + rcx*2]
sub edx, r11d
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180039baa
mov esi, r12d
mov dword [rsp + 0x5c], r12d
jmp 0x180039c08
lea r9d, [rdi + r15]
movsx eax, byte [0x180099c21]
add eax, r9d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180039c04
movsx eax, byte [0x180099c21]
add eax, r9d
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 + 0x28]
cvttsd2si esi, xmm0
mov dword [rsp + 0x5c], esi
jmp 0x180039c08
mov esi, dword [rsp + 0x5c]
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, xmm3
movsd qword [rsp + 0x28], xmm1
movsx ecx, byte [0x180099c21]
mov eax, dword [rsp + 0x60]
add eax, ecx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180039c80
movsx ecx, byte [0x18009b9f4]
imul ecx, r10d
lea edx, [rcx + rcx*2]
sub edx, r11d
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180039c80
mov dword [rsp + 0x58], r12d
jmp 0x180039cd8
lea r9d, [r15 + rdi]
movsx eax, byte [0x180099c21]
add eax, r9d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180039cd8
movsx eax, byte [0x180099c21]
add eax, r9d
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 + 0x28]
cvttsd2si eax, xmm0
mov dword [rsp + 0x58], eax
movsxd rax, dword [rsp + 0x20]
movzx r8d, byte [rax + r14 + 1]
and r8b, byte [rsp + 0x58]
add r8b, r8b
movsxd rax, dword [rsp + 0x20]
movzx edx, byte [rax + r14 + 1]
sub dl, r8b
add dl, sil
movsxd rax, dword [rsp + 0x20]
mov byte [rax + r14 + 1], dl
movsx ecx, byte [0x180099c21]
mov eax, dword [rsp + 0x70]
add eax, ecx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003a328
movsx ecx, byte [0x18009b9f4]
imul ecx, r10d
lea eax, [rcx + rcx*2]
lea edx, [rax + rax]
sub edx, r11d
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180039f26
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, xmm4
movsd qword [rsp + 0x28], xmm1
mov ecx, dword [rsp + 0x30]
lea esi, [rcx*4]
add esi, edi
movsx eax, byte [0x180099c21]
add eax, esi
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180039dd3
movsx ecx, byte [0x18009b9f4]
imul ecx, r10d
lea edx, [rcx + rcx*2]
sub edx, r11d
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180039dd3
mov dword [rsp + 0x50], r12d
jmp 0x180039e2b
lea r9d, [rdi + r15]
movsx eax, byte [0x180099c21]
add eax, r9d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180039e2b
movsx eax, byte [0x180099c21]
add eax, r9d
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 + 0x28]
cvttsd2si eax, xmm0
mov dword [rsp + 0x50], 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, xmm4
movsd qword [rsp + 0x28], xmm1
movsx eax, byte [0x180099c21]
add eax, esi
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180039e9f
movsx ecx, byte [0x18009b9f4]
imul ecx, r10d
lea edx, [rcx + rcx*2]
sub edx, r11d
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180039e9f
mov dword [rsp + 0x54], r12d
jmp 0x180039ef7
lea r9d, [rdi + r15]
movsx eax, byte [0x180099c21]
add eax, r9d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180039ef7
movsx eax, byte [0x180099c21]
add eax, r9d
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 + 0x28]
cvttsd2si eax, xmm0
mov dword [rsp + 0x54], eax
movsxd rax, dword [rsp + 0x20]
movzx r8d, byte [rax + r14 + 1]
and r8b, byte [rsp + 0x54]
add r8b, r8b
movsxd rax, dword [rsp + 0x20]
movzx edx, byte [rax + r14 + 1]
sub dl, r8b
add dl, byte [rsp + 0x50]
movsxd rax, dword [rsp + 0x20]
mov byte [rax + r14 + 1], dl
movsx edx, byte [0x18009b9f4]
imul edx, r10d
sub edx, r11d
add edx, ebx
mov ecx, dword [rsp + 0x30]
lea esi, [rcx*4]
add esi, edi
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18003a119
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, xmm5
movsd qword [rsp + 0x28], xmm1
movsx eax, byte [0x180099c21]
add eax, esi
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x180039fc6
movsx ecx, byte [0x18009b9f4]
imul ecx, r10d
lea edx, [rcx + rcx*2]
sub edx, r11d
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x180039fc6
mov dword [rsp + 0x48], r12d
jmp 0x18003a01e
lea r9d, [rdi + r15]
movsx eax, byte [0x180099c21]
add eax, r9d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003a01e
movsx eax, byte [0x180099c21]
add eax, r9d
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 + 0x28]
cvttsd2si eax, xmm0
mov dword [rsp + 0x48], 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, xmm5
movsd qword [rsp + 0x28], xmm1
movsx eax, byte [0x180099c21]
add eax, esi
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003a092
movsx ecx, byte [0x18009b9f4]
imul ecx, r10d
lea edx, [rcx + rcx*2]
sub edx, r11d
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18003a092
mov dword [rsp + 0x4c], r12d
jmp 0x18003a0ea
lea r9d, [rdi + r15]
movsx eax, byte [0x180099c21]
add eax, r9d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003a0ea
movsx eax, byte [0x180099c21]
add eax, r9d
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 + 0x28]
cvttsd2si eax, xmm0
mov dword [rsp + 0x4c], eax
movsxd rax, dword [rsp + 0x20]
movzx r8d, byte [rax + r14 + 1]
and r8b, byte [rsp + 0x4c]
add r8b, r8b
movsxd rax, dword [rsp + 0x20]
movzx edx, byte [rax + r14 + 1]
sub dl, r8b
add dl, byte [rsp + 0x48]
movsxd rax, dword [rsp + 0x20]
mov byte [rax + r14 + 1], dl
movsx eax, byte [0x180099c21]
add eax, edi
mov ecx, dword [rsp + 0x38]
lea eax, [rax + rcx*2]
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003a328
mov eax, dword [rsp + 0x20]
add eax, 0x64
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 + 0x28], xmm1
movsx eax, byte [0x180099c21]
add eax, esi
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003a1c6
movsx ecx, byte [0x18009b9f4]
imul ecx, r10d
lea edx, [rcx + rcx*2]
sub edx, r11d
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18003a1c6
mov dword [rsp + 0x68], r12d
jmp 0x18003a21e
lea r9d, [r15 + rdi]
movsx eax, byte [0x180099c21]
add eax, r9d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003a21e
movsx eax, byte [0x180099c21]
add eax, r9d
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 + 0x28]
cvttsd2si eax, xmm0
mov dword [rsp + 0x68], eax
mov eax, dword [rsp + 0x20]
add eax, 0x64
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 + 0x28], xmm1
movsx eax, byte [0x180099c21]
add eax, esi
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003a2a1
movsx ecx, byte [0x18009b9f4]
imul ecx, r10d
lea edx, [rcx + rcx*2]
sub edx, r11d
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18003a2a1
mov dword [rsp + 0x44], r12d
jmp 0x18003a2f9
lea r9d, [r15 + rdi]
movsx eax, byte [0x180099c21]
add eax, r9d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003a2f9
movsx eax, byte [0x180099c21]
add eax, r9d
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 + 0x28]
cvttsd2si eax, xmm0
mov dword [rsp + 0x44], eax
movsxd rax, dword [rsp + 0x20]
movzx r8d, byte [rax + r14 + 1]
and r8b, byte [rsp + 0x44]
add r8b, r8b
movsxd rax, dword [rsp + 0x20]
movzx edx, byte [rax + r14 + 1]
sub dl, r8b
add dl, byte [rsp + 0x68]
movsxd rax, dword [rsp + 0x20]
mov byte [rax + r14 + 1], dl
movsx edx, byte [0x18009b9f4]
imul edx, r10d
shl edx, 3
sub edx, r11d
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18003a517
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 + 0x28], xmm1
mov ecx, dword [rsp + 0x30]
lea esi, [rcx*4]
add esi, edi
movsx eax, byte [0x180099c21]
add eax, esi
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003a3cf
movsx ecx, byte [0x18009b9f4]
imul ecx, r10d
lea edx, [rcx + rcx*2]
sub edx, r11d
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18003a3cf
mov dword [rsp + 0x64], r12d
lea r9d, [r15 + rdi]
jmp 0x18003a427
lea r9d, [r15 + rdi]
movsx eax, byte [0x180099c21]
add eax, r9d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003a427
movsx eax, byte [0x180099c21]
add eax, r9d
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 + 0x28]
cvttsd2si eax, xmm0
mov dword [rsp + 0x64], 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 + 0x28], xmm1
movsx eax, byte [0x180099c21]
add eax, esi
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003a499
movsx ecx, byte [0x18009b9f4]
imul ecx, r10d
lea edx, [rcx + rcx*2]
sub edx, r11d
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18003a499
mov r13d, r12d
jmp 0x18003a4ea
movsx eax, byte [0x180099c21]
add eax, r9d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003a4ea
movsx eax, byte [0x180099c21]
add eax, r9d
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 + 0x28]
cvttsd2si r13d, xmm0
movsxd rax, dword [rsp + 0x20]
movzx r8d, byte [rax + r14 + 1]
and r8b, r13b
add r8b, r8b
movsxd rax, dword [rsp + 0x20]
movzx edx, byte [rax + r14 + 1]
sub dl, r8b
add dl, byte [rsp + 0x64]
movsxd rax, dword [rsp + 0x20]
mov byte [rax + r14 + 1], dl
mov eax, dword [rsp + 0x20]
inc eax
mov dword [rsp + 0x20], eax
movsxd rax, dword [rsp + 0x20]
cmp rax, 1
jb 0x180039b10
mov r13d, dword [rsp + 0x6c]
mov byte [r14], 1
movzx ebx, byte [r14 + 1]
mov edx, 0x168828c
call fcn.18005bb20
mov rcx, rax
movzx edx, bl
call fcn.18005ea30
mov r14d, dword [rsp + 0x78]
imul r14d, r13d
mov dword [rsp + 0x78], r14d
lea edx, [r14 + rdi]
movsx ecx, byte [0x180099c21]
lea eax, [rdx + r14*4]
add eax, ecx
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 + 0x28], xmm1
movsx eax, byte [0x180099c21]
mov esi, dword [rsp + 0x60]
add eax, esi
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003a615
call fcn.1800043e0
movsx edx, al
movsx eax, byte [0x18009b9f4]
imul edx, eax
lea edx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub edx, ecx
call fcn.1800043f0
movsx ecx, al
add edx, ecx
movsx ecx, byte [0x180099c24]
add ecx, edx
jne 0x18003a673
lea r9d, [rdi + r15]
movsx eax, byte [0x180099c21]
add eax, r9d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003a66b
movsx eax, byte [0x180099c21]
add eax, r9d
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 + 0x28]
cvttsd2si eax, xmm0
jmp 0x18003a66f
mov eax, dword [rsp + 0x38]
test eax, eax
jle 0x18003a684
movzx eax, word [0x180092678]
mov word [rbp - 0x78], ax
lea r9, [rbp - 0x78]
jmp 0x18003a688
mov r9, qword [rbp - 0x40]
cmp byte [r9], 0
jne 0x18003b122
mov dword [rsp + 0x20], 0
movsxd rax, dword [rsp + 0x20]
cmp rax, 1
jae 0x18003b122
call fcn.1800043e0
movsx r10d, al
call fcn.180004410
movsx r11d, al
call fcn.1800043f0
movsx ebx, al
imul r14d, r14d, 7
add r14d, edi
mov dword [rsp + 0x38], r14d
movsd xmm3, qword [0x180092c88]
movsd xmm4, qword [0x180092c90]
movsd xmm5, qword [0x180092c98]
movsd xmm6, qword [0x180092ca0]
mov r15d, dword [rsp + 0x38]
mov r13d, dword [rsp + 0x38]
nop dword [rax]
movsx edx, byte [0x18009b9f4]
imul edx, r10d
sub edx, r11d
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18003a8dd
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, xmm3
movsd qword [rsp + 0x28], xmm1
movsx eax, byte [0x180099c21]
add eax, esi
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003a791
movsx ecx, byte [0x18009b9f4]
imul ecx, r10d
lea edx, [rcx + rcx*2]
sub edx, r11d
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18003a791
mov r15d, r12d
jmp 0x18003a7e6
mov esi, dword [rsp + 0x40]
add esi, edi
movsx eax, byte [0x180099c21]
add eax, esi
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003a7e6
movsx eax, byte [0x180099c21]
add eax, esi
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 + 0x28]
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, xmm3
movsd qword [rsp + 0x28], xmm1
movsx ecx, byte [0x180099c21]
mov eax, dword [rsp + 0x60]
add eax, ecx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003a85c
movsx ecx, byte [0x18009b9f4]
imul ecx, r10d
lea edx, [rcx + rcx*2]
sub edx, r11d
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18003a85c
mov r13d, r12d
jmp 0x18003a8b1
mov esi, dword [rsp + 0x40]
add esi, edi
movsx eax, byte [0x180099c21]
add eax, esi
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003a8b1
movsx eax, byte [0x180099c21]
add eax, esi
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 + 0x28]
cvttsd2si r13d, xmm0
movsxd rax, dword [rsp + 0x20]
movzx r8d, byte [rax + r9 + 1]
and r8b, r13b
add r8b, r8b
movsxd rax, dword [rsp + 0x20]
movzx edx, byte [rax + r9 + 1]
sub dl, r8b
add dl, r15b
movsxd rax, dword [rsp + 0x20]
mov byte [rax + r9 + 1], dl
movsx eax, byte [0x180099c21]
add eax, r14d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003af06
movsx ecx, byte [0x18009b9f4]
imul ecx, r10d
lea eax, [rcx + rcx*2]
lea edx, [rax + rax]
sub edx, r11d
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18003aafe
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, xmm4
movsd qword [rsp + 0x28], xmm1
mov ecx, dword [rsp + 0x30]
lea r14d, [rcx*4]
add r14d, edi
movsx eax, byte [0x180099c21]
add eax, r14d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003a9aa
movsx ecx, byte [0x18009b9f4]
imul ecx, r10d
lea edx, [rcx + rcx*2]
sub edx, r11d
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18003a9aa
mov dword [rsp + 0x5c], r12d
jmp 0x18003aa02
mov esi, dword [rsp + 0x40]
add esi, edi
movsx eax, byte [0x180099c21]
add eax, esi
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003aa02
movsx eax, byte [0x180099c21]
add eax, esi
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 + 0x28]
cvttsd2si eax, xmm0
mov dword [rsp + 0x5c], 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, xmm4
movsd qword [rsp + 0x28], xmm1
movsx eax, byte [0x180099c21]
add eax, r14d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003aa77
movsx ecx, byte [0x18009b9f4]
imul ecx, r10d
lea edx, [rcx + rcx*2]
sub edx, r11d
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18003aa77
mov dword [rsp + 0x6c], r12d
jmp 0x18003aacf
mov esi, dword [rsp + 0x40]
add esi, edi
movsx eax, byte [0x180099c21]
add eax, esi
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003aacf
movsx eax, byte [0x180099c21]
add eax, esi
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 + 0x28]
cvttsd2si eax, xmm0
mov dword [rsp + 0x6c], eax
movsxd rax, dword [rsp + 0x20]
movzx r8d, byte [rax + r9 + 1]
and r8b, byte [rsp + 0x6c]
add r8b, r8b
movsxd rax, dword [rsp + 0x20]
movzx edx, byte [rax + r9 + 1]
sub dl, r8b
add dl, byte [rsp + 0x5c]
movsxd rax, dword [rsp + 0x20]
mov byte [rax + r9 + 1], dl
movsx edx, byte [0x18009b9f4]
imul edx, r10d
sub edx, r11d
add edx, ebx
mov ecx, dword [rsp + 0x30]
lea r14d, [rcx*4]
add r14d, edi
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18003acf5
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, xmm5
movsd qword [rsp + 0x28], xmm1
movsx eax, byte [0x180099c21]
add eax, r14d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003aba1
movsx ecx, byte [0x18009b9f4]
imul ecx, r10d
lea edx, [rcx + rcx*2]
sub edx, r11d
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18003aba1
mov dword [rsp + 0x54], r12d
jmp 0x18003abf9
mov esi, dword [rsp + 0x40]
add esi, edi
movsx eax, byte [0x180099c21]
add eax, esi
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003abf9
movsx eax, byte [0x180099c21]
add eax, esi
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 + 0x28]
cvttsd2si eax, xmm0
mov dword [rsp + 0x54], 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, xmm5
movsd qword [rsp + 0x28], xmm1
movsx eax, byte [0x180099c21]
add eax, r14d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003ac6e
movsx ecx, byte [0x18009b9f4]
imul ecx, r10d
lea edx, [rcx + rcx*2]
sub edx, r11d
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18003ac6e
mov dword [rsp + 0x58], r12d
jmp 0x18003acc6
mov esi, dword [rsp + 0x40]
add esi, edi
movsx eax, byte [0x180099c21]
add eax, esi
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003acc6
movsx eax, byte [0x180099c21]
add eax, esi
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 + 0x28]
cvttsd2si eax, xmm0
mov dword [rsp + 0x58], eax
movsxd rax, dword [rsp + 0x20]
movzx r8d, byte [rax + r9 + 1]
and r8b, byte [rsp + 0x58]
add r8b, r8b
movsxd rax, dword [rsp + 0x20]
movzx edx, byte [rax + r9 + 1]
sub dl, r8b
add dl, byte [rsp + 0x54]
movsxd rax, dword [rsp + 0x20]
mov byte [rax + r9 + 1], dl
movsx eax, byte [0x180099c21]
add eax, edi
mov ecx, dword [rsp + 0x78]
lea eax, [rax + rcx*2]
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003af06
mov eax, dword [rsp + 0x20]
add eax, 0x68
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 + 0x28], xmm1
movsx eax, byte [0x180099c21]
add eax, r14d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003ada3
movsx ecx, byte [0x18009b9f4]
imul ecx, r10d
lea edx, [rcx + rcx*2]
sub edx, r11d
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18003ada3
mov dword [rsp + 0x4c], r12d
jmp 0x18003adfb
mov esi, dword [rsp + 0x40]
add esi, edi
movsx eax, byte [0x180099c21]
add eax, esi
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003adfb
movsx eax, byte [0x180099c21]
add eax, esi
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 + 0x28]
cvttsd2si eax, xmm0
mov dword [rsp + 0x4c], eax
mov eax, dword [rsp + 0x20]
add eax, 0x68
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 + 0x28], xmm1
movsx eax, byte [0x180099c21]
add eax, r14d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003ae7f
movsx ecx, byte [0x18009b9f4]
imul ecx, r10d
lea edx, [rcx + rcx*2]
sub edx, r11d
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18003ae7f
mov dword [rsp + 0x50], r12d
jmp 0x18003aed7
mov esi, dword [rsp + 0x40]
add esi, edi
movsx eax, byte [0x180099c21]
add eax, esi
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003aed7
movsx eax, byte [0x180099c21]
add eax, esi
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 + 0x28]
cvttsd2si eax, xmm0
mov dword [rsp + 0x50], eax
movsxd rax, dword [rsp + 0x20]
movzx r8d, byte [rax + r9 + 1]
and r8b, byte [rsp + 0x50]
add r8b, r8b
movsxd rax, dword [rsp + 0x20]
movzx edx, byte [rax + r9 + 1]
sub dl, r8b
add dl, byte [rsp + 0x4c]
movsxd rax, dword [rsp + 0x20]
mov byte [rax + r9 + 1], dl
movsx edx, byte [0x18009b9f4]
imul edx, r10d
shl edx, 3
sub edx, r11d
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18003b100
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 + 0x28], xmm1
mov ecx, dword [rsp + 0x30]
lea r14d, [rcx*4]
add r14d, edi
movsx eax, byte [0x180099c21]
add eax, r14d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003afb2
movsx ecx, byte [0x18009b9f4]
imul ecx, r10d
lea edx, [rcx + rcx*2]
sub edx, r11d
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18003afb2
mov dword [rsp + 0x44], r12d
mov esi, dword [rsp + 0x40]
add esi, edi
jmp 0x18003b00a
mov esi, dword [rsp + 0x40]
add esi, edi
movsx eax, byte [0x180099c21]
add eax, esi
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003b00a
movsx eax, byte [0x180099c21]
add eax, esi
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 + 0x28]
cvttsd2si eax, xmm0
mov dword [rsp + 0x44], 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 + 0x28], xmm1
movsx eax, byte [0x180099c21]
add eax, r14d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003b07f
movsx ecx, byte [0x18009b9f4]
imul ecx, r10d
lea edx, [rcx + rcx*2]
sub edx, r11d
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18003b07f
mov dword [rsp + 0x48], r12d
jmp 0x18003b0d1
movsx eax, byte [0x180099c21]
add eax, esi
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003b0d1
movsx eax, byte [0x180099c21]
add eax, esi
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 + 0x28]
cvttsd2si eax, xmm0
mov dword [rsp + 0x48], eax
movsxd rax, dword [rsp + 0x20]
movzx r8d, byte [rax + r9 + 1]
and r8b, byte [rsp + 0x48]
add r8b, r8b
movsxd rax, dword [rsp + 0x20]
movzx edx, byte [rax + r9 + 1]
sub dl, r8b
add dl, byte [rsp + 0x44]
movsxd rax, dword [rsp + 0x20]
mov byte [rax + r9 + 1], dl
mov eax, dword [rsp + 0x20]
inc eax
mov dword [rsp + 0x20], eax
movsxd rax, dword [rsp + 0x20]
cmp rax, 1
mov r14d, dword [rsp + 0x38]
mov esi, dword [rsp + 0x60]
jb 0x18003a700
mov byte [r9], 1
movzx ebx, byte [r9 + 1]
mov edx, 0x11376f4
call fcn.18005bb20
mov rcx, rax
movzx edx, bl
call fcn.18005ea30
mov rax, qword [rbp - 0x70]
mov rsi, rax
cmp qword [rax + 0x18], 0x10
jb 0x18003b151
mov rsi, qword [rax]
lea r14, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae r14, qword [rbp - 0x30]
mov rbx, qword [rax + 0x10]
mov rcx, qword [rbp - 0x20]
cmp rbx, rcx
ja 0x18003b1d3
test rbx, rbx
jne 0x18003b176
xor r15d, r15d
jmp 0x18003b1da
mov r13, r14
sub r13, rbx
add r13, rcx
movsx edx, byte [rsi]
lea r8, [r13 + 1]
sub r8, r14
mov rcx, r14
call fcn.180064e40
mov r15, rax
test rax, rax
je 0x18003b1d3
nop dword [rax]
mov r8, rbx
mov rdx, rsi
mov rcx, r15
call fcn.180064ec0
test eax, eax
je 0x18003b2c4
inc r15
lea r8, [r13 + 1]
sub r8, r15
movsx edx, byte [rsi]
mov rcx, r15
call fcn.180064e40
mov r15, rax
test rax, rax
jne 0x18003b1a0
mov r15, 0xffffffffffffffff
mov qword [rsp + 0x78], r15
mov r9d, dword [rsp + 0x30]
lea r14d, [rdi + r9*8]
add r14d, r9d
mov dword [rsp + 0x70], r14d
movsx eax, byte [0x180099c21]
add eax, r14d
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 + 0x28], xmm1
lea r13d, [r9*4]
add r13d, edi
mov dword [rsp + 0x64], r13d
movsx eax, byte [0x180099c21]
add eax, r13d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003b2cc
call fcn.1800043e0
movsx edx, al
movsx eax, byte [0x18009b9f4]
imul edx, eax
lea edx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub edx, ecx
call fcn.1800043f0
movsx ecx, al
add edx, ecx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18003b2cc
lea esi, [r9 + r9*4]
add esi, esi
movzx eax, word [0x180092758]
mov word [rbp - 0x74], ax
lea r9, [rbp - 0x74]
jmp 0x18003b346
sub r15, r14
jmp 0x18003b1da
lea eax, [r9 + r9*4]
lea esi, [rax + rax]
lea r9d, [rdi + rsi]
movsx eax, byte [0x180099c21]
add eax, r9d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003b329
movsx eax, byte [0x180099c21]
add eax, r9d
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 + 0x28]
cvttsd2si eax, xmm0
jmp 0x18003b32d
mov eax, dword [rsp + 0x38]
test eax, eax
jle 0x18003b342
movzx eax, word [0x180092758]
mov word [rbp - 0x74], ax
lea r9, [rbp - 0x74]
jmp 0x18003b346
mov r9, qword [rbp - 0x40]
cmp byte [r9], 0
jne 0x18003be05
mov dword [rsp + 0x20], 0
movsxd rax, dword [rsp + 0x20]
cmp rax, 1
jae 0x18003be05
call fcn.1800043e0
movsx r10d, al
call fcn.180004410
movsx r11d, al
call fcn.1800043f0
movsx ebx, al
mov r14d, dword [rsp + 0x30]
imul eax, r14d, 7
add eax, edi
mov dword [rsp + 0x38], eax
movsd xmm3, qword [0x180092ca8]
movsd xmm4, qword [0x180092cb0]
movsd xmm5, qword [0x180092cb8]
movsd xmm6, qword [0x180092cc0]
mov r15d, dword [rsp + 0x38]
nop word [rax + rax]
movsx edx, byte [0x18009b9f4]
imul edx, r10d
sub edx, r11d
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18003b5a7
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, xmm3
movsd qword [rsp + 0x28], xmm1
movsx eax, byte [0x180099c21]
add eax, r13d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003b452
movsx ecx, byte [0x18009b9f4]
imul ecx, r10d
lea edx, [rcx + rcx*2]
sub edx, r11d
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18003b452
mov r15d, r12d
jmp 0x18003b4a7
lea r14d, [rsi + rdi]
movsx eax, byte [0x180099c21]
add eax, r14d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003b4a7
movsx eax, byte [0x180099c21]
add eax, r14d
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 + 0x28]
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, xmm3
movsd qword [rsp + 0x28], xmm1
movsx eax, byte [0x180099c21]
add eax, r13d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003b51c
movsx ecx, byte [0x18009b9f4]
imul ecx, r10d
lea edx, [rcx + rcx*2]
sub edx, r11d
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18003b51c
mov dword [rsp + 0x6c], r12d
jmp 0x18003b574
lea r14d, [rsi + rdi]
movsx eax, byte [0x180099c21]
add eax, r14d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003b574
movsx eax, byte [0x180099c21]
add eax, r14d
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 + 0x28]
cvttsd2si eax, xmm0
mov dword [rsp + 0x6c], eax
movsxd rax, dword [rsp + 0x20]
movzx r8d, byte [rax + r9 + 1]
and r8b, byte [rsp + 0x6c]
add r8b, r8b
movsxd rax, dword [rsp + 0x20]
movzx edx, byte [rax + r9 + 1]
sub dl, r8b
add dl, r15b
movsxd rax, dword [rsp + 0x20]
mov byte [rax + r9 + 1], dl
mov r14d, dword [rsp + 0x30]
movsx ecx, byte [0x180099c21]
mov eax, dword [rsp + 0x38]
add eax, ecx
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003bbdd
movsx ecx, byte [0x18009b9f4]
imul ecx, r10d
lea eax, [rcx + rcx*2]
lea edx, [rax + rax]
sub edx, r11d
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18003b7c7
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, xmm4
movsd qword [rsp + 0x28], xmm1
lea r13d, [r14*4]
add r13d, edi
movsx eax, byte [0x180099c21]
add eax, r13d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003b673
movsx ecx, byte [0x18009b9f4]
imul ecx, r10d
lea edx, [rcx + rcx*2]
sub edx, r11d
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18003b673
mov dword [rsp + 0x58], r12d
jmp 0x18003b6cb
lea r14d, [rsi + rdi]
movsx eax, byte [0x180099c21]
add eax, r14d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003b6cb
movsx eax, byte [0x180099c21]
add eax, r14d
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 + 0x28]
cvttsd2si eax, xmm0
mov dword [rsp + 0x58], 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, xmm4
movsd qword [rsp + 0x28], xmm1
movsx eax, byte [0x180099c21]
add eax, r13d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003b740
movsx ecx, byte [0x18009b9f4]
imul ecx, r10d
lea edx, [rcx + rcx*2]
sub edx, r11d
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18003b740
mov dword [rsp + 0x5c], r12d
jmp 0x18003b798
lea r14d, [rsi + rdi]
movsx eax, byte [0x180099c21]
add eax, r14d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003b798
movsx eax, byte [0x180099c21]
add eax, r14d
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 + 0x28]
cvttsd2si eax, xmm0
mov dword [rsp + 0x5c], eax
movsxd rax, dword [rsp + 0x20]
movzx r8d, byte [rax + r9 + 1]
and r8b, byte [rsp + 0x5c]
add r8b, r8b
movsxd rax, dword [rsp + 0x20]
movzx edx, byte [rax + r9 + 1]
sub dl, r8b
add dl, byte [rsp + 0x58]
movsxd rax, dword [rsp + 0x20]
mov byte [rax + r9 + 1], dl
movsx edx, byte [0x18009b9f4]
imul edx, r10d
sub edx, r11d
add edx, ebx
mov r13d, dword [rsp + 0x30]
lea r14d, [r13*4]
add r14d, edi
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18003b9c4
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, xmm5
movsd qword [rsp + 0x28], xmm1
movsx eax, byte [0x180099c21]
add eax, r14d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003b86b
movsx ecx, byte [0x18009b9f4]
imul ecx, r10d
lea edx, [rcx + rcx*2]
sub edx, r11d
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18003b86b
mov dword [rsp + 0x50], r12d
jmp 0x18003b8c3
lea r13d, [rsi + rdi]
movsx eax, byte [0x180099c21]
add eax, r13d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003b8c3
movsx eax, byte [0x180099c21]
add eax, r13d
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 + 0x28]
cvttsd2si eax, xmm0
mov dword [rsp + 0x50], 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, xmm5
movsd qword [rsp + 0x28], xmm1
movsx eax, byte [0x180099c21]
add eax, r14d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003b938
movsx ecx, byte [0x18009b9f4]
imul ecx, r10d
lea edx, [rcx + rcx*2]
sub edx, r11d
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18003b938
mov dword [rsp + 0x54], r12d
jmp 0x18003b990
lea r13d, [rsi + rdi]
movsx eax, byte [0x180099c21]
add eax, r13d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003b990
movsx eax, byte [0x180099c21]
add eax, r13d
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 + 0x28]
cvttsd2si eax, xmm0
mov dword [rsp + 0x54], eax
movsxd rax, dword [rsp + 0x20]
movzx r8d, byte [rax + r9 + 1]
and r8b, byte [rsp + 0x54]
add r8b, r8b
movsxd rax, dword [rsp + 0x20]
movzx edx, byte [rax + r9 + 1]
sub dl, r8b
add dl, byte [rsp + 0x50]
movsxd rax, dword [rsp + 0x20]
mov byte [rax + r9 + 1], dl
mov r13d, dword [rsp + 0x30]
movsx eax, byte [0x180099c21]
add eax, edi
lea eax, [rax + r13*2]
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003bbe2
mov eax, dword [rsp + 0x20]
add eax, 0x6c
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 + 0x28], xmm1
movsx eax, byte [0x180099c21]
add eax, r14d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003ba72
movsx ecx, byte [0x18009b9f4]
imul ecx, r10d
lea edx, [rcx + rcx*2]
sub edx, r11d
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18003ba72
mov r13d, r12d
mov dword [rsp + 0x4c], r12d
jmp 0x18003bad3
lea r13d, [rsi + rdi]
movsx eax, byte [0x180099c21]
add eax, r13d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003bace
movsx eax, byte [0x180099c21]
add eax, r13d
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 + 0x28]
cvttsd2si r13d, xmm0
mov dword [rsp + 0x4c], r13d
jmp 0x18003bad3
mov r13d, dword [rsp + 0x4c]
mov eax, dword [rsp + 0x20]
add eax, 0x6c
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 + 0x28], xmm1
movsx eax, byte [0x180099c21]
add eax, r14d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003bb57
movsx ecx, byte [0x18009b9f4]
imul ecx, r10d
lea edx, [rcx + rcx*2]
sub edx, r11d
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18003bb57
mov dword [rsp + 0x48], r12d
jmp 0x18003bbaf
lea r14d, [rsi + rdi]
movsx eax, byte [0x180099c21]
add eax, r14d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003bbaf
movsx eax, byte [0x180099c21]
add eax, r14d
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 + 0x28]
cvttsd2si eax, xmm0
mov dword [rsp + 0x48], eax
movsxd rax, dword [rsp + 0x20]
movzx r8d, byte [rax + r9 + 1]
and r8b, byte [rsp + 0x48]
add r8b, r8b
movsxd rax, dword [rsp + 0x20]
movzx edx, byte [rax + r9 + 1]
sub dl, r8b
add dl, r13b
movsxd rax, dword [rsp + 0x20]
mov byte [rax + r9 + 1], dl
mov r13d, dword [rsp + 0x30]
movsx edx, byte [0x18009b9f4]
imul edx, r10d
shl edx, 3
sub edx, r11d
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18003bdd8
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 + 0x28], xmm1
lea r13d, [r13*4]
add r13d, edi
movsx eax, byte [0x180099c21]
add eax, r13d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003bc88
movsx ecx, byte [0x18009b9f4]
imul ecx, r10d
lea edx, [rcx + rcx*2]
sub edx, r11d
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18003bc88
mov dword [rsp + 0x68], r12d
lea r14d, [rsi + rdi]
jmp 0x18003bce0
lea r14d, [rsi + rdi]
movsx eax, byte [0x180099c21]
add eax, r14d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003bce0
movsx eax, byte [0x180099c21]
add eax, r14d
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 + 0x28]
cvttsd2si eax, xmm0
mov dword [rsp + 0x68], 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 + 0x28], xmm1
movsx eax, byte [0x180099c21]
add eax, r13d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003bd55
movsx ecx, byte [0x18009b9f4]
imul ecx, r10d
lea edx, [rcx + rcx*2]
sub edx, r11d
add edx, ebx
movsx ecx, byte [0x180099c24]
add ecx, edx
je 0x18003bd55
mov dword [rsp + 0x44], r12d
jmp 0x18003bda9
movsx eax, byte [0x180099c21]
add eax, r14d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003bda9
movsx eax, byte [0x180099c21]
add eax, r14d
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 + 0x28]
cvttsd2si eax, xmm0
mov dword [rsp + 0x44], eax
movsxd rax, dword [rsp + 0x20]
movzx r8d, byte [rax + r9 + 1]
and r8b, byte [rsp + 0x44]
add r8b, r8b
movsxd rax, dword [rsp + 0x20]
movzx edx, byte [rax + r9 + 1]
sub dl, r8b
add dl, byte [rsp + 0x68]
movsxd rax, dword [rsp + 0x20]
mov byte [rax + r9 + 1], dl
mov eax, dword [rsp + 0x20]
inc eax
mov dword [rsp + 0x20], eax
movsxd rax, dword [rsp + 0x20]
cmp rax, 1
mov r13d, dword [rsp + 0x64]
mov r14d, dword [rsp + 0x30]
jb 0x18003b3c0
mov r15, qword [rsp + 0x78]
mov r14d, dword [rsp + 0x70]
mov byte [r9], 1
movzx ebx, byte [r9 + 1]
mov edx, 0xeef3bc
call fcn.18005bb20
mov rcx, rax
movzx edx, bl
call fcn.18005ea30
mov rcx, rax
call fcn.18005ee40
movsx eax, byte [0x180099c21]
add eax, r13d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003bf6a
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
cmp r15, 0xffffffffffffffff
sete al
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm1, xmm0
movsd qword [rsp + 0x28], xmm1
movsx eax, byte [0x180099c21]
add eax, r13d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003bee4
call fcn.1800043e0
movsx edx, al
movsx eax, byte [0x18009b9f4]
imul edx, eax
lea edx, [rdx + rdx*2]
call fcn.180004410
movsx ecx, al
sub edx, ecx
call fcn.1800043f0
movsx ecx, al
add edx, ecx
movsx ecx, byte [0x180099c24]
add ecx, edx
jne 0x18003bf40
lea r9d, [rsi + rdi]
movsx eax, byte [0x180099c21]
add eax, r9d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
cmp eax, ecx
je 0x18003bf3b
movsx eax, byte [0x180099c21]
add eax, r9d
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 + 0x28]
cvttsd2si r12d, xmm0
jmp 0x18003bf40
mov r12d, dword [rsp + 0x38]
movsx eax, byte [0x180099c21]
add eax, r14d
movsx ecx, byte [0x180099c20]
xor edx, edx
div ecx
movsx ecx, byte [0x180099c23]
sub eax, ecx
imul eax, r12d
test eax, eax
jne 0x18003c047
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x18003bfa5
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18003bfa0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18003c035
call fcn.180062660
mov qword [rbp - 0x20], 0
mov qword [rbp - 0x18], 0xf
mov byte [rbp - 0x30], 0
mov rbx, qword [rbp - 0x48]
mov rdx, qword [rbx + 0x18]
cmp rdx, 0x10
jb 0x18003bff3
inc rdx
mov rcx, qword [rbx]
cmp rdx, 0x1000
jb 0x18003bfee
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x18003c03b
mov rcx, r8
call fcn.180062660
mov qword [rbx + 0x10], 0
mov qword [rbx + 0x18], 0xf
mov byte [rbx], 0
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.180062640
mov rbx, qword [rsp + 0x160]
movaps xmm6, xmmword [rsp + 0x100]
add rsp, 0x110
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.18006ab08
nop
call fcn.18006ab08
nop
call fcn.18006ab08
int3
xor ecx, ecx
call fcn.180068c30
int3