Function at 0x18003dcb0
Capabilities:
Create thread

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x58]
sub rsp, 0x120
movaps xmmword [rax - 0x48], xmm6
mov rdi, rdx
movaps xmmword [rax - 0x58], xmm7
mov r15, rcx
movaps xmmword [rax - 0x68], xmm8
call fcn.180034e40
movsx r9d, al
call fcn.180034e3c
movsx r8d, al
imul r9d, r8d
call fcn.180034e4c
movsx r10d, al
xor edx, edx
movsx eax, byte [0x180090ea2]
xor r12d, r12d
movsx ecx, byte [0x180090ea1]
add eax, r10d
add eax, r9d
div ecx
movsx ecx, byte [0x180090ea4]
lea ebx, [r12 + 0xa]
cmp eax, ecx
je 0x180040dd2
movsx eax, byte [0x180090ea3]
cmp rdi, 1
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
mov eax, r12d
sete al
xor edx, edx
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
lea eax, [r9 + r9*4]
lea r14d, [r10 + rax*2]
mulsd xmm1, xmm0
movsd qword [rbp + 0x78], xmm1
movsx eax, byte [0x180090ea2]
movsx ecx, byte [0x180090ea1]
add eax, r14d
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003dde0
call fcn.180034e44
movsx edx, al
movsx eax, byte [0x180092db0]
imul edx, eax
lea r8d, [rdx + rdx*4]
call fcn.180034e50
movsx ecx, al
sub r8d, ecx
call fcn.180034e48
movsx ecx, al
add r8d, ecx
movsx ecx, byte [0x180090ea5]
add ecx, r8d
je 0x18003dde0
mov r11d, ebx
lea edi, [r9 + r9]
jmp 0x18003de43
movsx eax, byte [0x180090ea2]
lea edi, [r9 + r9]
movsx ecx, byte [0x180090ea1]
add eax, edi
add eax, r10d
xor edx, edx
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003de3f
movsx eax, byte [0x180090ea2]
lea edx, [r9 + r9*2]
movsx ecx, byte [0x180090ea1]
add eax, r10d
xorps xmm0, xmm0
lea eax, [rax + rdx*2]
xor edx, edx
div ecx
movsx ecx, byte [0x180090ea4]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp + 0x78]
cvttsd2si r11d, xmm0
jmp 0x18003de43
mov r11d, dword [rbp + 0x78]
lea eax, [r9 + r9*2]
xor edx, edx
lea esi, [r10 + rax*2]
movsx eax, byte [0x180090ea2]
movsx ecx, byte [0x180090ea1]
add eax, esi
div ecx
movsx ecx, byte [0x180090ea4]
sub eax, ecx
imul eax, r11d
test eax, eax
je 0x180040dce
movsx eax, byte [0x180090ea2]
add edi, r10d
movsx ecx, byte [0x180090ea1]
add eax, edi
xor edx, edx
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x180040bc8
lea rcx, str.gmod.exe
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, r12
xorps xmm2, xmm2
test rax, rax
movsx eax, byte [0x180090ea3]
sete cl
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtsi2sd xmm2, rcx
movd xmm0, eax
cvtdq2pd xmm1, xmm1
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rbp + 0x78], xmm1
movsx eax, byte [0x180090ea2]
movsx ecx, byte [0x180090ea1]
add eax, r14d
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003df44
call fcn.180034e44
movsx edx, al
movsx eax, byte [0x180092db0]
imul edx, eax
lea r8d, [rdx + rdx*4]
call fcn.180034e50
movsx ecx, al
sub r8d, ecx
call fcn.180034e48
movsx ecx, al
add r8d, ecx
movsx ecx, byte [0x180090ea5]
add ecx, r8d
je 0x18003df44
mov r10d, ebx
jmp 0x18003df98
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, edi
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003df94
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, esi
div ecx
movsx ecx, byte [0x180090ea4]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp + 0x78]
cvttsd2si r10d, xmm0
jmp 0x18003df98
mov r10d, dword [rbp + 0x78]
call fcn.180034e40
movsx edx, al
call fcn.180034e3c
movsx ecx, al
imul edx, ecx
imul r9d, edx, 7
call fcn.180034e4c
movsx ecx, byte [0x180090ea2]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [0x180090ea1]
div ecx
movsx ecx, byte [0x180090ea4]
sub eax, ecx
imul eax, r10d
test eax, eax
je 0x180040bc8
lea rdx, [rbp - 0x70]
call fcn.180041498
movsd xmm6, qword [0x180087628]
mov r9, rax
movsd xmm5, qword [0x180087620]
cmp byte [rax], r12b
jne 0x18003ea6b
mov dword [rbp + 0x78], r12d
mov ecx, dword [rbp + 0x78]
call fcn.180034e3c
movsx edx, al
call fcn.180034e40
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*8]
call fcn.180034e4c
movsx eax, al
add eax, edx
mov dword [rsp + 0x60], eax
call fcn.180034e3c
movsx edx, al
call fcn.180034e40
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*4]
call fcn.180034e4c
movsx ecx, al
lea r15d, [rcx + rdx*2]
call fcn.180034e44
movsx r10d, al
call fcn.180034e50
movsx r11d, al
call fcn.180034e48
movsx edi, al
call fcn.180034e3c
movsx edx, al
call fcn.180034e40
movsx ecx, al
imul edx, ecx
add edx, edx
call fcn.180034e4c
movsx esi, al
add esi, edx
call fcn.180034e3c
movsx edx, al
call fcn.180034e40
movsx ecx, al
imul edx, ecx
mov dword [rsp + 0x68], edx
call fcn.180034e4c
movsd xmm3, qword [0x180087618]
movsd xmm4, qword [0x180087610]
mov r12d, dword [rbp + 0x78]
mov r13d, dword [rbp + 0x78]
movsx ecx, al
lea eax, [rdx + rdx*2]
mov dword [rsp + 0x64], ecx
lea r14d, [rcx + rax*2]
movsx ecx, byte [0x180092db0]
imul ecx, r10d
imul edx, ecx, 7
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18003e29f
movsx eax, byte [0x180090ea3]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rsp + 0x30], xmm1
movsx eax, byte [0x180090ea2]
movsx ecx, byte [0x180090ea1]
add eax, r15d
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003e165
movsx ecx, byte [0x180092db0]
imul ecx, r10d
lea edx, [rcx + rcx*4]
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18003e165
mov r12d, ebx
jmp 0x18003e1b5
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, esi
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003e1b5
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, r14d
div ecx
movsx ecx, byte [0x180090ea4]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x30]
cvttsd2si r12d, xmm0
movsx eax, byte [0x180090ea3]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rsp + 0x30], xmm1
movsx eax, byte [0x180090ea2]
movsx ecx, byte [0x180090ea1]
add eax, r15d
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003e228
movsx ecx, byte [0x180092db0]
imul ecx, r10d
lea edx, [rcx + rcx*4]
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18003e228
mov r13d, ebx
jmp 0x18003e278
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, esi
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003e278
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, r14d
div ecx
movsx ecx, byte [0x180090ea4]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x30]
cvttsd2si r13d, xmm0
movsxd rax, dword [rbp + 0x78]
mov r8b, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
and r8b, r13b
add r8b, r8b
mov dl, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
sub dl, r8b
add dl, r12b
mov byte [rax + r9 + 1], dl
movsx eax, byte [0x180090ea2]
xor edx, edx
add eax, dword [rsp + 0x60]
movsx ecx, byte [0x180090ea1]
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003e87a
movsx edx, byte [0x180092db0]
movsx ecx, byte [0x180090ea5]
imul edx, r10d
shl edx, 3
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18003e49e
movsx eax, byte [0x180090ea3]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm5
movsd qword [rsp + 0x30], xmm1
movsx eax, byte [0x180090ea2]
movsx ecx, byte [0x180090ea1]
add eax, r15d
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003e35a
movsx ecx, byte [0x180092db0]
imul ecx, r10d
lea edx, [rcx + rcx*4]
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18003e35a
mov dword [rsp + 0x44], ebx
jmp 0x18003e3ad
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, esi
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003e3ad
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, r14d
div ecx
movsx ecx, byte [0x180090ea4]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x30]
cvttsd2si eax, xmm0
mov dword [rsp + 0x44], eax
movsx eax, byte [0x180090ea3]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm5
movsd qword [rsp + 0x30], xmm1
movsx eax, byte [0x180090ea2]
movsx ecx, byte [0x180090ea1]
add eax, r15d
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003e421
movsx ecx, byte [0x180092db0]
imul ecx, r10d
lea edx, [rcx + rcx*4]
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18003e421
mov dword [rsp + 0x40], ebx
jmp 0x18003e474
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, esi
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003e474
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, r14d
div ecx
movsx ecx, byte [0x180090ea4]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x30]
cvttsd2si eax, xmm0
mov dword [rsp + 0x40], eax
movsxd rax, dword [rbp + 0x78]
mov r8b, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
and r8b, byte [rsp + 0x40]
add r8b, r8b
mov dl, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
sub dl, r8b
add dl, byte [rsp + 0x44]
mov byte [rax + r9 + 1], dl
movsx ecx, byte [0x180092db0]
imul ecx, r10d
lea edx, [rcx + rcx*2]
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18003e678
movsx eax, byte [0x180090ea3]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm3
movsd qword [rsp + 0x30], xmm1
movsx eax, byte [0x180090ea2]
movsx ecx, byte [0x180090ea1]
add eax, r15d
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003e534
movsx ecx, byte [0x180092db0]
imul ecx, r10d
lea edx, [rcx + rcx*4]
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18003e534
mov dword [rsp + 0x4c], ebx
jmp 0x18003e587
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, esi
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003e587
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, r14d
div ecx
movsx ecx, byte [0x180090ea4]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x30]
cvttsd2si eax, xmm0
mov dword [rsp + 0x4c], eax
movsx eax, byte [0x180090ea3]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm3
movsd qword [rsp + 0x30], xmm1
movsx eax, byte [0x180090ea2]
movsx ecx, byte [0x180090ea1]
add eax, r15d
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003e5fb
movsx ecx, byte [0x180092db0]
imul ecx, r10d
lea edx, [rcx + rcx*4]
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18003e5fb
mov dword [rsp + 0x48], ebx
jmp 0x18003e64e
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, esi
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003e64e
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, r14d
div ecx
movsx ecx, byte [0x180090ea4]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x30]
cvttsd2si eax, xmm0
mov dword [rsp + 0x48], eax
movsxd rax, dword [rbp + 0x78]
mov r8b, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
and r8b, byte [rsp + 0x48]
add r8b, r8b
mov dl, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
sub dl, r8b
add dl, byte [rsp + 0x4c]
mov byte [rax + r9 + 1], dl
movsx ecx, byte [0x180090ea2]
xor edx, edx
mov eax, dword [rsp + 0x64]
add eax, ecx
mov ecx, dword [rsp + 0x68]
lea eax, [rax + rcx*8]
movsx ecx, byte [0x180090ea1]
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003e87a
mov eax, dword [rbp + 0x78]
xor edx, edx
sub eax, 0x68
movd xmm2, eax
movsx eax, byte [0x180090ea3]
cvtdq2pd xmm2, xmm2
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x30], xmm1
movsx eax, byte [0x180090ea2]
movsx ecx, byte [0x180090ea1]
add eax, r15d
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003e728
movsx ecx, byte [0x180092db0]
imul ecx, r10d
lea edx, [rcx + rcx*4]
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18003e728
mov dword [rsp + 0x54], ebx
jmp 0x18003e77b
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, esi
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003e77b
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, r14d
div ecx
movsx ecx, byte [0x180090ea4]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x30]
cvttsd2si eax, xmm0
mov dword [rsp + 0x54], eax
mov eax, dword [rbp + 0x78]
xor edx, edx
sub eax, 0x68
movd xmm2, eax
movsx eax, byte [0x180090ea3]
cvtdq2pd xmm2, xmm2
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x30], xmm1
movsx eax, byte [0x180090ea2]
movsx ecx, byte [0x180090ea1]
add eax, r15d
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003e7fd
movsx ecx, byte [0x180092db0]
imul ecx, r10d
lea edx, [rcx + rcx*4]
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18003e7fd
mov dword [rsp + 0x50], ebx
jmp 0x18003e850
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, esi
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003e850
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, r14d
div ecx
movsx ecx, byte [0x180090ea4]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x30]
cvttsd2si eax, xmm0
mov dword [rsp + 0x50], eax
movsxd rax, dword [rbp + 0x78]
mov r8b, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
and r8b, byte [rsp + 0x50]
add r8b, r8b
mov dl, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
sub dl, r8b
add dl, byte [rsp + 0x54]
mov byte [rax + r9 + 1], dl
movsx edx, byte [0x180092db0]
movsx ecx, byte [0x180090ea5]
imul edx, r10d
shl edx, 2
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18003ea54
movsx eax, byte [0x180090ea3]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm4
movsd qword [rsp + 0x30], xmm1
movsx eax, byte [0x180090ea2]
movsx ecx, byte [0x180090ea1]
add eax, r15d
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003e910
movsx ecx, byte [0x180092db0]
imul ecx, r10d
lea edx, [rcx + rcx*4]
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18003e910
mov dword [rsp + 0x5c], ebx
jmp 0x18003e963
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, esi
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003e963
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, r14d
div ecx
movsx ecx, byte [0x180090ea4]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x30]
cvttsd2si eax, xmm0
mov dword [rsp + 0x5c], eax
movsx eax, byte [0x180090ea3]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm4
movsd qword [rsp + 0x30], xmm1
movsx eax, byte [0x180090ea2]
movsx ecx, byte [0x180090ea1]
add eax, r15d
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003e9d7
movsx ecx, byte [0x180092db0]
imul ecx, r10d
lea edx, [rcx + rcx*4]
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18003e9d7
mov dword [rsp + 0x58], ebx
jmp 0x18003ea2a
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, esi
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003ea2a
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, r14d
div ecx
movsx ecx, byte [0x180090ea4]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x30]
cvttsd2si eax, xmm0
mov dword [rsp + 0x58], eax
movsxd rax, dword [rbp + 0x78]
mov r8b, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
and r8b, byte [rsp + 0x58]
add r8b, r8b
mov dl, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
sub dl, r8b
add dl, byte [rsp + 0x5c]
mov byte [rax + r9 + 1], dl
mov eax, dword [rbp + 0x78]
inc eax
mov dword [rbp + 0x78], eax
mov eax, dword [rbp + 0x78]
cmp eax, 0xc
jb 0x18003e0d0
xor r12d, r12d
lea rax, [r9 + 1]
mov byte [r9], 1
lea rdx, [rbp - 0x80]
mov qword [rsp + 0x38], rax
call fcn.18004132c
movsd xmm7, qword [0x180087638]
mov r9, rax
movsd xmm8, qword [0x180087630]
cmp byte [rax], r12b
jne 0x18003f4fc
mov dword [rbp + 0x78], r12d
mov ecx, dword [rbp + 0x78]
cmp ecx, 0xb
jae 0x18003f4fc
call fcn.180034e3c
movsx edx, al
call fcn.180034e40
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*8]
call fcn.180034e4c
movsx eax, al
add eax, edx
mov dword [rsp + 0x68], eax
call fcn.180034e3c
movsx edx, al
call fcn.180034e40
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*4]
call fcn.180034e4c
movsx ecx, al
lea r15d, [rcx + rdx*2]
call fcn.180034e44
movsx r10d, al
call fcn.180034e50
movsx r11d, al
call fcn.180034e48
movsx edi, al
call fcn.180034e3c
movsx edx, al
call fcn.180034e40
movsx ecx, al
imul edx, ecx
add edx, edx
call fcn.180034e4c
movsx esi, al
add esi, edx
call fcn.180034e3c
movsx edx, al
call fcn.180034e40
movsx ecx, al
imul edx, ecx
mov dword [rsp + 0x60], edx
call fcn.180034e4c
mov r12d, dword [rbp + 0x78]
mov r13d, dword [rbp + 0x78]
movsx ecx, al
lea eax, [rdx + rdx*2]
mov dword [rsp + 0x64], ecx
lea r14d, [rcx + rax*2]
movsx ecx, byte [0x180092db0]
imul ecx, r10d
imul edx, ecx, 7
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18003ed2e
movsx eax, byte [0x180090ea3]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rsp + 0x30], xmm1
movsx eax, byte [0x180090ea2]
movsx ecx, byte [0x180090ea1]
add eax, r15d
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003ebf4
movsx ecx, byte [0x180092db0]
imul ecx, r10d
lea edx, [rcx + rcx*4]
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18003ebf4
mov r12d, ebx
jmp 0x18003ec44
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, esi
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003ec44
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, r14d
div ecx
movsx ecx, byte [0x180090ea4]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x30]
cvttsd2si r12d, xmm0
movsx eax, byte [0x180090ea3]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rsp + 0x30], xmm1
movsx eax, byte [0x180090ea2]
movsx ecx, byte [0x180090ea1]
add eax, r15d
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003ecb7
movsx ecx, byte [0x180092db0]
imul ecx, r10d
lea edx, [rcx + rcx*4]
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18003ecb7
mov r13d, ebx
jmp 0x18003ed07
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, esi
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003ed07
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, r14d
div ecx
movsx ecx, byte [0x180090ea4]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x30]
cvttsd2si r13d, xmm0
movsxd rax, dword [rbp + 0x78]
mov r8b, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
and r8b, r13b
add r8b, r8b
mov dl, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
sub dl, r8b
add dl, r12b
mov byte [rax + r9 + 1], dl
movsx eax, byte [0x180090ea2]
xor edx, edx
add eax, dword [rsp + 0x68]
movsx ecx, byte [0x180090ea1]
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003f30b
movsx edx, byte [0x180092db0]
movsx ecx, byte [0x180090ea5]
imul edx, r10d
shl edx, 3
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18003ef2f
movsx eax, byte [0x180090ea3]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x30], xmm1
movsx eax, byte [0x180090ea2]
movsx ecx, byte [0x180090ea1]
add eax, r15d
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003edea
movsx ecx, byte [0x180092db0]
imul ecx, r10d
lea edx, [rcx + rcx*4]
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18003edea
mov dword [rsp + 0x58], ebx
jmp 0x18003ee3d
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, esi
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003ee3d
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, r14d
div ecx
movsx ecx, byte [0x180090ea4]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x30]
cvttsd2si eax, xmm0
mov dword [rsp + 0x58], eax
movsx eax, byte [0x180090ea3]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x30], xmm1
movsx eax, byte [0x180090ea2]
movsx ecx, byte [0x180090ea1]
add eax, r15d
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003eeb2
movsx ecx, byte [0x180092db0]
imul ecx, r10d
lea edx, [rcx + rcx*4]
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18003eeb2
mov dword [rsp + 0x5c], ebx
jmp 0x18003ef05
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, esi
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003ef05
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, r14d
div ecx
movsx ecx, byte [0x180090ea4]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x30]
cvttsd2si eax, xmm0
mov dword [rsp + 0x5c], eax
movsxd rax, dword [rbp + 0x78]
mov r8b, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
and r8b, byte [rsp + 0x5c]
add r8b, r8b
mov dl, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
sub dl, r8b
add dl, byte [rsp + 0x58]
mov byte [rax + r9 + 1], dl
movsx ecx, byte [0x180092db0]
imul ecx, r10d
lea edx, [rcx + rcx*2]
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18003f109
movsx eax, byte [0x180090ea3]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rsp + 0x30], xmm1
movsx eax, byte [0x180090ea2]
movsx ecx, byte [0x180090ea1]
add eax, r15d
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003efc5
movsx ecx, byte [0x180092db0]
imul ecx, r10d
lea edx, [rcx + rcx*4]
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18003efc5
mov dword [rsp + 0x50], ebx
jmp 0x18003f018
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, esi
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003f018
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, r14d
div ecx
movsx ecx, byte [0x180090ea4]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x30]
cvttsd2si eax, xmm0
mov dword [rsp + 0x50], eax
movsx eax, byte [0x180090ea3]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rsp + 0x30], xmm1
movsx eax, byte [0x180090ea2]
movsx ecx, byte [0x180090ea1]
add eax, r15d
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003f08c
movsx ecx, byte [0x180092db0]
imul ecx, r10d
lea edx, [rcx + rcx*4]
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18003f08c
mov dword [rsp + 0x54], ebx
jmp 0x18003f0df
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, esi
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003f0df
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, r14d
div ecx
movsx ecx, byte [0x180090ea4]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x30]
cvttsd2si eax, xmm0
mov dword [rsp + 0x54], eax
movsxd rax, dword [rbp + 0x78]
mov r8b, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
and r8b, byte [rsp + 0x54]
add r8b, r8b
mov dl, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
sub dl, r8b
add dl, byte [rsp + 0x50]
mov byte [rax + r9 + 1], dl
movsx ecx, byte [0x180090ea2]
xor edx, edx
mov eax, dword [rsp + 0x64]
add eax, ecx
mov ecx, dword [rsp + 0x60]
lea eax, [rax + rcx*8]
movsx ecx, byte [0x180090ea1]
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003f30b
mov eax, dword [rbp + 0x78]
xor edx, edx
sub eax, 0x6a
movd xmm2, eax
movsx eax, byte [0x180090ea3]
cvtdq2pd xmm2, xmm2
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x30], xmm1
movsx eax, byte [0x180090ea2]
movsx ecx, byte [0x180090ea1]
add eax, r15d
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003f1b9
movsx ecx, byte [0x180092db0]
imul ecx, r10d
lea edx, [rcx + rcx*4]
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18003f1b9
mov dword [rsp + 0x48], ebx
jmp 0x18003f20c
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, esi
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003f20c
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, r14d
div ecx
movsx ecx, byte [0x180090ea4]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x30]
cvttsd2si eax, xmm0
mov dword [rsp + 0x48], eax
mov eax, dword [rbp + 0x78]
xor edx, edx
sub eax, 0x6a
movd xmm2, eax
movsx eax, byte [0x180090ea3]
cvtdq2pd xmm2, xmm2
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x30], xmm1
movsx eax, byte [0x180090ea2]
movsx ecx, byte [0x180090ea1]
add eax, r15d
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003f28e
movsx ecx, byte [0x180092db0]
imul ecx, r10d
lea edx, [rcx + rcx*4]
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18003f28e
mov dword [rsp + 0x4c], ebx
jmp 0x18003f2e1
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, esi
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003f2e1
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, r14d
div ecx
movsx ecx, byte [0x180090ea4]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x30]
cvttsd2si eax, xmm0
mov dword [rsp + 0x4c], eax
movsxd rax, dword [rbp + 0x78]
mov r8b, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
and r8b, byte [rsp + 0x4c]
add r8b, r8b
mov dl, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
sub dl, r8b
add dl, byte [rsp + 0x48]
mov byte [rax + r9 + 1], dl
movsx edx, byte [0x180092db0]
movsx ecx, byte [0x180090ea5]
imul edx, r10d
shl edx, 2
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18003f4e5
movsx eax, byte [0x180090ea3]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm5
movsd qword [rsp + 0x30], xmm1
movsx eax, byte [0x180090ea2]
movsx ecx, byte [0x180090ea1]
add eax, r15d
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003f3a1
movsx ecx, byte [0x180092db0]
imul ecx, r10d
lea edx, [rcx + rcx*4]
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18003f3a1
mov dword [rsp + 0x40], ebx
jmp 0x18003f3f4
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, esi
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003f3f4
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, r14d
div ecx
movsx ecx, byte [0x180090ea4]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x30]
cvttsd2si eax, xmm0
mov dword [rsp + 0x40], eax
movsx eax, byte [0x180090ea3]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm5
movsd qword [rsp + 0x30], xmm1
movsx eax, byte [0x180090ea2]
movsx ecx, byte [0x180090ea1]
add eax, r15d
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003f468
movsx ecx, byte [0x180092db0]
imul ecx, r10d
lea edx, [rcx + rcx*4]
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18003f468
mov dword [rsp + 0x44], ebx
jmp 0x18003f4bb
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, esi
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003f4bb
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, r14d
div ecx
movsx ecx, byte [0x180090ea4]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x30]
cvttsd2si eax, xmm0
mov dword [rsp + 0x44], eax
movsxd rax, dword [rbp + 0x78]
mov r8b, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
and r8b, byte [rsp + 0x44]
add r8b, r8b
mov dl, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
sub dl, r8b
add dl, byte [rsp + 0x40]
mov byte [rax + r9 + 1], dl
mov eax, dword [rbp + 0x78]
inc eax
mov dword [rbp + 0x78], eax
mov eax, dword [rbp + 0x78]
cmp eax, 0xb
jb 0x18003eb5f
xor r12d, r12d
lea rcx, [r9 + 1]
mov byte [r9], 1
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rdx, qword [rsp + 0x38]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [rsp + 0x78]
mov qword [rsp + 0x70], rax
call fcn.1800417b0
movsd xmm4, qword [0x180087640]
mov r9, rax
cmp byte [rax], r12b
jne 0x18003ff99
mov dword [rbp + 0x78], r12d
mov ecx, dword [rbp + 0x78]
cmp ecx, 6
jae 0x18003ff99
call fcn.180034e3c
movsx edx, al
call fcn.180034e40
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*8]
call fcn.180034e4c
movsx eax, al
add eax, edx
mov dword [rsp + 0x68], eax
call fcn.180034e3c
movsx edx, al
call fcn.180034e40
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*4]
call fcn.180034e4c
movsx ecx, al
lea r15d, [rcx + rdx*2]
call fcn.180034e44
movsx r10d, al
call fcn.180034e50
movsx r11d, al
call fcn.180034e48
movsx edi, al
call fcn.180034e3c
movsx edx, al
call fcn.180034e40
movsx ecx, al
imul edx, ecx
add edx, edx
call fcn.180034e4c
movsx esi, al
add esi, edx
call fcn.180034e3c
movsx edx, al
call fcn.180034e40
movsx ecx, al
imul edx, ecx
mov dword [rsp + 0x60], edx
call fcn.180034e4c
mov r12d, dword [rbp + 0x78]
mov r13d, dword [rbp + 0x78]
movsx ecx, al
lea eax, [rdx + rdx*2]
mov dword [rsp + 0x64], ecx
lea r14d, [rcx + rax*2]
movsx ecx, byte [0x180092db0]
imul ecx, r10d
imul edx, ecx, 7
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18003f7cb
movsx eax, byte [0x180090ea3]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm4
movsd qword [rsp + 0x38], xmm1
movsx eax, byte [0x180090ea2]
movsx ecx, byte [0x180090ea1]
add eax, r15d
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003f691
movsx ecx, byte [0x180092db0]
imul ecx, r10d
lea edx, [rcx + rcx*4]
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18003f691
mov r12d, ebx
jmp 0x18003f6e1
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, esi
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003f6e1
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, r14d
div ecx
movsx ecx, byte [0x180090ea4]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x38]
cvttsd2si r12d, xmm0
movsx eax, byte [0x180090ea3]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm4
movsd qword [rsp + 0x38], xmm1
movsx eax, byte [0x180090ea2]
movsx ecx, byte [0x180090ea1]
add eax, r15d
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003f754
movsx ecx, byte [0x180092db0]
imul ecx, r10d
lea edx, [rcx + rcx*4]
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18003f754
mov r13d, ebx
jmp 0x18003f7a4
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, esi
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003f7a4
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, r14d
div ecx
movsx ecx, byte [0x180090ea4]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x38]
cvttsd2si r13d, xmm0
movsxd rax, dword [rbp + 0x78]
mov r8b, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
and r8b, r13b
add r8b, r8b
mov dl, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
sub dl, r8b
add dl, r12b
mov byte [rax + r9 + 1], dl
movsx eax, byte [0x180090ea2]
xor edx, edx
add eax, dword [rsp + 0x68]
movsx ecx, byte [0x180090ea1]
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003fda8
movsx edx, byte [0x180092db0]
movsx ecx, byte [0x180090ea5]
imul edx, r10d
shl edx, 3
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18003f9ca
movsx eax, byte [0x180090ea3]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rsp + 0x38], xmm1
movsx eax, byte [0x180090ea2]
movsx ecx, byte [0x180090ea1]
add eax, r15d
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003f886
movsx ecx, byte [0x180092db0]
imul ecx, r10d
lea edx, [rcx + rcx*4]
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18003f886
mov dword [rsp + 0x58], ebx
jmp 0x18003f8d9
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, esi
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003f8d9
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, r14d
div ecx
movsx ecx, byte [0x180090ea4]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x38]
cvttsd2si eax, xmm0
mov dword [rsp + 0x58], eax
movsx eax, byte [0x180090ea3]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rsp + 0x38], xmm1
movsx eax, byte [0x180090ea2]
movsx ecx, byte [0x180090ea1]
add eax, r15d
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003f94d
movsx ecx, byte [0x180092db0]
imul ecx, r10d
lea edx, [rcx + rcx*4]
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18003f94d
mov dword [rsp + 0x5c], ebx
jmp 0x18003f9a0
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, esi
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003f9a0
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, r14d
div ecx
movsx ecx, byte [0x180090ea4]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x38]
cvttsd2si eax, xmm0
mov dword [rsp + 0x5c], eax
movsxd rax, dword [rbp + 0x78]
mov r8b, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
and r8b, byte [rsp + 0x5c]
add r8b, r8b
mov dl, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
sub dl, r8b
add dl, byte [rsp + 0x58]
mov byte [rax + r9 + 1], dl
movsx ecx, byte [0x180092db0]
imul ecx, r10d
lea edx, [rcx + rcx*2]
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18003fba6
movsx eax, byte [0x180090ea3]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x38], xmm1
movsx eax, byte [0x180090ea2]
movsx ecx, byte [0x180090ea1]
add eax, r15d
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003fa61
movsx ecx, byte [0x180092db0]
imul ecx, r10d
lea edx, [rcx + rcx*4]
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18003fa61
mov dword [rsp + 0x50], ebx
jmp 0x18003fab4
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, esi
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003fab4
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, r14d
div ecx
movsx ecx, byte [0x180090ea4]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x38]
cvttsd2si eax, xmm0
mov dword [rsp + 0x50], eax
movsx eax, byte [0x180090ea3]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x38], xmm1
movsx eax, byte [0x180090ea2]
movsx ecx, byte [0x180090ea1]
add eax, r15d
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003fb29
movsx ecx, byte [0x180092db0]
imul ecx, r10d
lea edx, [rcx + rcx*4]
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18003fb29
mov dword [rsp + 0x54], ebx
jmp 0x18003fb7c
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, esi
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003fb7c
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, r14d
div ecx
movsx ecx, byte [0x180090ea4]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x38]
cvttsd2si eax, xmm0
mov dword [rsp + 0x54], eax
movsxd rax, dword [rbp + 0x78]
mov r8b, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
and r8b, byte [rsp + 0x54]
add r8b, r8b
mov dl, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
sub dl, r8b
add dl, byte [rsp + 0x50]
mov byte [rax + r9 + 1], dl
movsx ecx, byte [0x180090ea2]
xor edx, edx
mov eax, dword [rsp + 0x64]
add eax, ecx
mov ecx, dword [rsp + 0x60]
lea eax, [rax + rcx*8]
movsx ecx, byte [0x180090ea1]
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003fda8
mov eax, dword [rbp + 0x78]
xor edx, edx
sub eax, 0x6b
movd xmm2, eax
movsx eax, byte [0x180090ea3]
cvtdq2pd xmm2, xmm2
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x38], xmm1
movsx eax, byte [0x180090ea2]
movsx ecx, byte [0x180090ea1]
add eax, r15d
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003fc56
movsx ecx, byte [0x180092db0]
imul ecx, r10d
lea edx, [rcx + rcx*4]
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18003fc56
mov dword [rsp + 0x48], ebx
jmp 0x18003fca9
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, esi
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003fca9
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, r14d
div ecx
movsx ecx, byte [0x180090ea4]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x38]
cvttsd2si eax, xmm0
mov dword [rsp + 0x48], eax
mov eax, dword [rbp + 0x78]
xor edx, edx
sub eax, 0x6b
movd xmm2, eax
movsx eax, byte [0x180090ea3]
cvtdq2pd xmm2, xmm2
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x38], xmm1
movsx eax, byte [0x180090ea2]
movsx ecx, byte [0x180090ea1]
add eax, r15d
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003fd2b
movsx ecx, byte [0x180092db0]
imul ecx, r10d
lea edx, [rcx + rcx*4]
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18003fd2b
mov dword [rsp + 0x4c], ebx
jmp 0x18003fd7e
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, esi
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003fd7e
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, r14d
div ecx
movsx ecx, byte [0x180090ea4]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x38]
cvttsd2si eax, xmm0
mov dword [rsp + 0x4c], eax
movsxd rax, dword [rbp + 0x78]
mov r8b, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
and r8b, byte [rsp + 0x4c]
add r8b, r8b
mov dl, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
sub dl, r8b
add dl, byte [rsp + 0x48]
mov byte [rax + r9 + 1], dl
movsx edx, byte [0x180092db0]
movsx ecx, byte [0x180090ea5]
imul edx, r10d
shl edx, 2
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18003ff82
movsx eax, byte [0x180090ea3]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rsp + 0x38], xmm1
movsx eax, byte [0x180090ea2]
movsx ecx, byte [0x180090ea1]
add eax, r15d
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003fe3e
movsx ecx, byte [0x180092db0]
imul ecx, r10d
lea edx, [rcx + rcx*4]
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18003fe3e
mov dword [rsp + 0x40], ebx
jmp 0x18003fe91
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, esi
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003fe91
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, r14d
div ecx
movsx ecx, byte [0x180090ea4]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x38]
cvttsd2si eax, xmm0
mov dword [rsp + 0x40], eax
movsx eax, byte [0x180090ea3]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm6
movsd qword [rsp + 0x38], xmm1
movsx eax, byte [0x180090ea2]
movsx ecx, byte [0x180090ea1]
add eax, r15d
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003ff05
movsx ecx, byte [0x180092db0]
imul ecx, r10d
lea edx, [rcx + rcx*4]
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18003ff05
mov dword [rsp + 0x44], ebx
jmp 0x18003ff58
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, esi
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18003ff58
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, r14d
div ecx
movsx ecx, byte [0x180090ea4]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x38]
cvttsd2si eax, xmm0
mov dword [rsp + 0x44], eax
movsxd rax, dword [rbp + 0x78]
mov r8b, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
and r8b, byte [rsp + 0x44]
add r8b, r8b
mov dl, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
sub dl, r8b
add dl, byte [rsp + 0x40]
mov byte [rax + r9 + 1], dl
mov eax, dword [rbp + 0x78]
inc eax
mov dword [rbp + 0x78], eax
mov eax, dword [rbp + 0x78]
cmp eax, 6
jb 0x18003f5fc
xor r12d, r12d
lea rax, [r9 + 1]
mov byte [r9], 1
lea rdx, [rbp - 0x60]
mov qword [rsp + 0x30], rax
call fcn.180041610
mov r9, rax
cmp byte [rax], r12b
jne 0x180040a21
mov dword [rbp + 0x78], r12d
mov ecx, dword [rbp + 0x78]
cmp ecx, 0x49
jae 0x180040a21
call fcn.180034e3c
movsx edx, al
call fcn.180034e40
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*8]
call fcn.180034e4c
movsx eax, al
add eax, edx
mov dword [rsp + 0x68], eax
call fcn.180034e3c
movsx edx, al
call fcn.180034e40
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*4]
call fcn.180034e4c
movsx ecx, al
lea r15d, [rcx + rdx*2]
call fcn.180034e44
movsx r10d, al
call fcn.180034e50
movsx r11d, al
call fcn.180034e48
movsx edi, al
call fcn.180034e3c
movsx edx, al
call fcn.180034e40
movsx ecx, al
imul edx, ecx
add edx, edx
call fcn.180034e4c
movsx esi, al
add esi, edx
call fcn.180034e3c
movsx edx, al
call fcn.180034e40
movsx ecx, al
imul edx, ecx
mov dword [rsp + 0x60], edx
call fcn.180034e4c
movsd xmm3, qword [0x180087648]
mov r12d, dword [rbp + 0x78]
mov r13d, dword [rbp + 0x78]
movsx ecx, al
lea eax, [rdx + rdx*2]
mov dword [rsp + 0x64], ecx
lea r14d, [rcx + rax*2]
movsx ecx, byte [0x180092db0]
imul ecx, r10d
imul edx, ecx, 7
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x180040253
movsx eax, byte [0x180090ea3]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm3
movsd qword [rsp + 0x38], xmm1
movsx eax, byte [0x180090ea2]
movsx ecx, byte [0x180090ea1]
add eax, r15d
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x180040119
movsx ecx, byte [0x180092db0]
imul ecx, r10d
lea edx, [rcx + rcx*4]
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x180040119
mov r12d, ebx
jmp 0x180040169
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, esi
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x180040169
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, r14d
div ecx
movsx ecx, byte [0x180090ea4]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x38]
cvttsd2si r12d, xmm0
movsx eax, byte [0x180090ea3]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm3
movsd qword [rsp + 0x38], xmm1
movsx eax, byte [0x180090ea2]
movsx ecx, byte [0x180090ea1]
add eax, r15d
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x1800401dc
movsx ecx, byte [0x180092db0]
imul ecx, r10d
lea edx, [rcx + rcx*4]
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x1800401dc
mov r13d, ebx
jmp 0x18004022c
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, esi
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18004022c
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, r14d
div ecx
movsx ecx, byte [0x180090ea4]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x38]
cvttsd2si r13d, xmm0
movsxd rax, dword [rbp + 0x78]
mov r8b, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
and r8b, r13b
add r8b, r8b
mov dl, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
sub dl, r8b
add dl, r12b
mov byte [rax + r9 + 1], dl
movsx eax, byte [0x180090ea2]
xor edx, edx
add eax, dword [rsp + 0x68]
movsx ecx, byte [0x180090ea1]
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18004082e
movsx edx, byte [0x180092db0]
movsx ecx, byte [0x180090ea5]
imul edx, r10d
shl edx, 3
sub edx, r11d
add edx, edi
add ecx, edx
je 0x180040452
movsx eax, byte [0x180090ea3]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm4
movsd qword [rsp + 0x38], xmm1
movsx eax, byte [0x180090ea2]
movsx ecx, byte [0x180090ea1]
add eax, r15d
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18004030e
movsx ecx, byte [0x180092db0]
imul ecx, r10d
lea edx, [rcx + rcx*4]
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18004030e
mov dword [rsp + 0x58], ebx
jmp 0x180040361
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, esi
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x180040361
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, r14d
div ecx
movsx ecx, byte [0x180090ea4]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x38]
cvttsd2si eax, xmm0
mov dword [rsp + 0x58], eax
movsx eax, byte [0x180090ea3]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm4
movsd qword [rsp + 0x38], xmm1
movsx eax, byte [0x180090ea2]
movsx ecx, byte [0x180090ea1]
add eax, r15d
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x1800403d5
movsx ecx, byte [0x180092db0]
imul ecx, r10d
lea edx, [rcx + rcx*4]
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x1800403d5
mov dword [rsp + 0x5c], ebx
jmp 0x180040428
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, esi
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x180040428
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, r14d
div ecx
movsx ecx, byte [0x180090ea4]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x38]
cvttsd2si eax, xmm0
mov dword [rsp + 0x5c], eax
movsxd rax, dword [rbp + 0x78]
mov r8b, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
and r8b, byte [rsp + 0x5c]
add r8b, r8b
mov dl, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
sub dl, r8b
add dl, byte [rsp + 0x58]
mov byte [rax + r9 + 1], dl
movsx ecx, byte [0x180092db0]
imul ecx, r10d
lea edx, [rcx + rcx*2]
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18004062c
movsx eax, byte [0x180090ea3]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rsp + 0x38], xmm1
movsx eax, byte [0x180090ea2]
movsx ecx, byte [0x180090ea1]
add eax, r15d
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x1800404e8
movsx ecx, byte [0x180092db0]
imul ecx, r10d
lea edx, [rcx + rcx*4]
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x1800404e8
mov dword [rsp + 0x50], ebx
jmp 0x18004053b
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, esi
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18004053b
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, r14d
div ecx
movsx ecx, byte [0x180090ea4]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x38]
cvttsd2si eax, xmm0
mov dword [rsp + 0x50], eax
movsx eax, byte [0x180090ea3]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm7
movsd qword [rsp + 0x38], xmm1
movsx eax, byte [0x180090ea2]
movsx ecx, byte [0x180090ea1]
add eax, r15d
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x1800405af
movsx ecx, byte [0x180092db0]
imul ecx, r10d
lea edx, [rcx + rcx*4]
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x1800405af
mov dword [rsp + 0x54], ebx
jmp 0x180040602
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, esi
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x180040602
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, r14d
div ecx
movsx ecx, byte [0x180090ea4]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x38]
cvttsd2si eax, xmm0
mov dword [rsp + 0x54], eax
movsxd rax, dword [rbp + 0x78]
mov r8b, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
and r8b, byte [rsp + 0x54]
add r8b, r8b
mov dl, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
sub dl, r8b
add dl, byte [rsp + 0x50]
mov byte [rax + r9 + 1], dl
movsx ecx, byte [0x180090ea2]
xor edx, edx
mov eax, dword [rsp + 0x64]
add eax, ecx
mov ecx, dword [rsp + 0x60]
lea eax, [rax + rcx*8]
movsx ecx, byte [0x180090ea1]
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18004082e
mov eax, dword [rbp + 0x78]
xor edx, edx
sub eax, 0x6c
movd xmm2, eax
movsx eax, byte [0x180090ea3]
cvtdq2pd xmm2, xmm2
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x38], xmm1
movsx eax, byte [0x180090ea2]
movsx ecx, byte [0x180090ea1]
add eax, r15d
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x1800406dc
movsx ecx, byte [0x180092db0]
imul ecx, r10d
lea edx, [rcx + rcx*4]
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x1800406dc
mov dword [rsp + 0x48], ebx
jmp 0x18004072f
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, esi
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18004072f
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, r14d
div ecx
movsx ecx, byte [0x180090ea4]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x38]
cvttsd2si eax, xmm0
mov dword [rsp + 0x48], eax
mov eax, dword [rbp + 0x78]
xor edx, edx
sub eax, 0x6c
movd xmm2, eax
movsx eax, byte [0x180090ea3]
cvtdq2pd xmm2, xmm2
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x38], xmm1
movsx eax, byte [0x180090ea2]
movsx ecx, byte [0x180090ea1]
add eax, r15d
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x1800407b1
movsx ecx, byte [0x180092db0]
imul ecx, r10d
lea edx, [rcx + rcx*4]
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x1800407b1
mov dword [rsp + 0x4c], ebx
jmp 0x180040804
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, esi
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x180040804
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, r14d
div ecx
movsx ecx, byte [0x180090ea4]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x38]
cvttsd2si eax, xmm0
mov dword [rsp + 0x4c], eax
movsxd rax, dword [rbp + 0x78]
mov r8b, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
and r8b, byte [rsp + 0x4c]
add r8b, r8b
mov dl, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
sub dl, r8b
add dl, byte [rsp + 0x48]
mov byte [rax + r9 + 1], dl
movsx edx, byte [0x180092db0]
movsx ecx, byte [0x180090ea5]
imul edx, r10d
shl edx, 2
sub edx, r11d
add edx, edi
add ecx, edx
je 0x180040a0a
movsx eax, byte [0x180090ea3]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x38], xmm1
movsx eax, byte [0x180090ea2]
movsx ecx, byte [0x180090ea1]
add eax, r15d
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x1800408c5
movsx ecx, byte [0x180092db0]
imul ecx, r10d
lea edx, [rcx + rcx*4]
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x1800408c5
mov dword [rsp + 0x40], ebx
jmp 0x180040918
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, esi
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x180040918
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, r14d
div ecx
movsx ecx, byte [0x180090ea4]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x38]
cvttsd2si eax, xmm0
mov dword [rsp + 0x40], eax
movsx eax, byte [0x180090ea3]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm8
movsd qword [rsp + 0x38], xmm1
movsx eax, byte [0x180090ea2]
movsx ecx, byte [0x180090ea1]
add eax, r15d
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18004098d
movsx ecx, byte [0x180092db0]
imul ecx, r10d
lea edx, [rcx + rcx*4]
movsx ecx, byte [0x180090ea5]
sub edx, r11d
add edx, edi
add ecx, edx
je 0x18004098d
mov dword [rsp + 0x44], ebx
jmp 0x1800409e0
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, esi
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x1800409e0
movsx eax, byte [0x180090ea2]
xor edx, edx
movsx ecx, byte [0x180090ea1]
add eax, r14d
div ecx
movsx ecx, byte [0x180090ea4]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x38]
cvttsd2si eax, xmm0
mov dword [rsp + 0x44], eax
movsxd rax, dword [rbp + 0x78]
mov r8b, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
and r8b, byte [rsp + 0x44]
add r8b, r8b
mov dl, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
sub dl, r8b
add dl, byte [rsp + 0x40]
mov byte [rax + r9 + 1], dl
mov eax, dword [rbp + 0x78]
inc eax
mov dword [rbp + 0x78], eax
mov eax, dword [rbp + 0x78]
cmp eax, 0x49
jb 0x180040084
xor r12d, r12d
mov r8, qword [rsp + 0x30]
lea rdx, [r9 + 1]
mov byte [r9], 1
xor ecx, ecx
xor r9d, r9d
call qword [rsp + 0x70]
call fcn.180034e40
movsx edx, al
call fcn.180034e3c
movsx ecx, al
imul edx, ecx
call fcn.180034e4c
movsx ecx, al
xorps xmm2, xmm2
lea eax, [rcx + rdx*8]
movsx ecx, byte [0x180090ea2]
add eax, ecx
xor edx, edx
movsx ecx, byte [0x180090ea1]
div ecx
movsx ecx, byte [0x180090ea4]
sub eax, ecx
cvtsi2sd xmm2, rax
movsx eax, byte [0x180090ea3]
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rbp + 0x78], xmm1
call fcn.180034e40
movsx edx, al
call fcn.180034e3c
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*4]
call fcn.180034e4c
movsx ecx, al
lea eax, [rcx + rdx*2]
movsx ecx, byte [0x180090ea2]
add eax, ecx
xor edx, edx
movsx ecx, byte [0x180090ea1]
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x180040b25
call fcn.180034e44
movsx edx, al
movsx eax, byte [0x180092db0]
imul edx, eax
lea r8d, [rdx + rdx*4]
call fcn.180034e50
movsx ecx, al
sub r8d, ecx
call fcn.180034e48
movsx ecx, al
add r8d, ecx
movsx ecx, byte [0x180090ea5]
add ecx, r8d
jne 0x180040bbc
call fcn.180034e40
movsx edx, al
call fcn.180034e3c
movsx ecx, al
imul edx, ecx
add edx, edx
call fcn.180034e4c
movsx ecx, al
movsx eax, byte [0x180090ea2]
add ecx, edx
add eax, ecx
xor edx, edx
movsx ecx, byte [0x180090ea1]
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x180040bb4
call fcn.180034e40
movsx edx, al
call fcn.180034e3c
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*2]
call fcn.180034e4c
movsx ecx, al
xorps xmm0, xmm0
lea eax, [rcx + rdx*2]
movsx ecx, byte [0x180090ea2]
add eax, ecx
xor edx, edx
movsx ecx, byte [0x180090ea1]
div ecx
movsx ecx, byte [0x180090ea4]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp + 0x78]
cvttsd2si eax, xmm0
jmp 0x180040bb7
mov eax, dword [rbp + 0x78]
cmp r12d, eax
jge 0x180040bc4
xorps xmm0, xmm0
jmp 0x180041301
mov r15, qword [rbp + 0x60]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_DisableThreadLibraryCalls]
mov r9, r15
mov qword [rsp + 0x28], r12
lea r8, [0x180034fe4]
mov dword [rsp + 0x20], r12d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov r10, rax
call fcn.180034e40
movsx edx, al
call fcn.180034e3c
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*8]
call fcn.180034e4c
movsx ecx, byte [0x180090ea2]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [0x180090ea1]
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x180040dce
movsx eax, byte [0x180090ea3]
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, r10
mulsd xmm1, xmm0
movsd qword [rbp + 0x78], xmm1
call fcn.180034e40
movsx edx, al
call fcn.180034e3c
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*4]
call fcn.180034e4c
movsx ecx, al
lea eax, [rcx + rdx*2]
movsx ecx, byte [0x180090ea2]
add eax, ecx
xor edx, edx
movsx ecx, byte [0x180090ea1]
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x180040cee
call fcn.180034e44
movsx edx, al
movsx eax, byte [0x180092db0]
imul edx, eax
lea r8d, [rdx + rdx*4]
call fcn.180034e50
movsx ecx, al
sub r8d, ecx
call fcn.180034e48
movsx ecx, al
add r8d, ecx
movsx ecx, byte [0x180090ea5]
add ecx, r8d
je 0x180040cee
mov r9d, ebx
jmp 0x180040d82
call fcn.180034e40
movsx edx, al
call fcn.180034e3c
movsx ecx, al
imul edx, ecx
add edx, edx
call fcn.180034e4c
movsx ecx, al
movsx eax, byte [0x180090ea2]
add ecx, edx
add eax, ecx
xor edx, edx
movsx ecx, byte [0x180090ea1]
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x180040d7e
call fcn.180034e40
movsx edx, al
call fcn.180034e3c
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*2]
call fcn.180034e4c
movsx ecx, al
xorps xmm0, xmm0
lea eax, [rcx + rdx*2]
movsx ecx, byte [0x180090ea2]
add eax, ecx
xor edx, edx
movsx ecx, byte [0x180090ea1]
div ecx
movsx ecx, byte [0x180090ea4]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp + 0x78]
cvttsd2si r9d, xmm0
jmp 0x180040d82
mov r9d, dword [rbp + 0x78]
call fcn.180034e40
movsx edx, al
call fcn.180034e3c
movsx ecx, al
imul edx, ecx
call fcn.180034e4c
movsx ecx, al
lea eax, [rcx + rdx*4]
movsx ecx, byte [0x180090ea2]
add eax, ecx
xor edx, edx
movsx ecx, byte [0x180090ea1]
div ecx
movsx ecx, byte [0x180090ea4]
sub eax, ecx
imul eax, r9d
test eax, eax
je 0x180040dce
mov rcx, r10
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rdi, qword [rbp + 0x68]
call fcn.180034e40
movsx edx, al
call fcn.180034e3c
movsx ecx, al
imul edx, ecx
lea eax, [rdx + rdx*4]
lea r11d, [rax + rax]
call fcn.180034e4c
movsx r9d, al
xor edx, edx
movsx eax, byte [0x180090ea2]
add r9d, r11d
movsx ecx, byte [0x180090ea1]
add eax, r9d
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x180041170
movsx eax, byte [0x180090ea3]
test rdi, rdi
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
mov rax, r12
sete al
xor edx, edx
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm1, xmm0
movsd qword [rbp + 0x78], xmm1
movsx eax, byte [0x180090ea2]
movsx ecx, byte [0x180090ea1]
add eax, r9d
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x180040ebc
call fcn.180034e44
movsx edx, al
movsx eax, byte [0x180092db0]
imul edx, eax
lea r8d, [rdx + rdx*4]
call fcn.180034e50
movsx ecx, al
sub r8d, ecx
call fcn.180034e48
movsx ecx, al
add r8d, ecx
movsx ecx, byte [0x180090ea5]
add ecx, r8d
je 0x180040ebc
mov r10d, ebx
jmp 0x180040f50
call fcn.180034e40
movsx edx, al
call fcn.180034e3c
movsx ecx, al
imul edx, ecx
add edx, edx
call fcn.180034e4c
movsx ecx, al
movsx eax, byte [0x180090ea2]
add ecx, edx
add eax, ecx
xor edx, edx
movsx ecx, byte [0x180090ea1]
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x180040f4c
call fcn.180034e40
movsx edx, al
call fcn.180034e3c
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*2]
call fcn.180034e4c
movsx ecx, al
xorps xmm0, xmm0
lea eax, [rcx + rdx*2]
movsx ecx, byte [0x180090ea2]
add eax, ecx
xor edx, edx
movsx ecx, byte [0x180090ea1]
div ecx
movsx ecx, byte [0x180090ea4]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp + 0x78]
cvttsd2si r10d, xmm0
jmp 0x180040f50
mov r10d, dword [rbp + 0x78]
call fcn.180034e40
movsx edx, al
call fcn.180034e3c
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*4]
call fcn.180034e4c
movsx ecx, byte [0x180090ea2]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [0x180090ea1]
div ecx
movsx ecx, byte [0x180090ea4]
sub eax, ecx
imul eax, r10d
test eax, eax
je 0x180041170
call fcn.180034e40
movsx r9d, al
call fcn.180034e3c
movsx ecx, al
imul r9d, ecx
call fcn.180034e4c
movsx ecx, byte [0x180090ea2]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [0x180090ea1]
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x18004116b
movsx eax, byte [0x180090ea3]
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cmp qword [0x180092d78], r12
cvtdq2pd xmm1, xmm1
movd xmm0, eax
mov rax, r12
cvtdq2pd xmm0, xmm0
setne al
addsd xmm0, xmm0
subsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm1, xmm0
movsd qword [rbp + 0x78], xmm1
call fcn.180034e4c
movsx ecx, al
xor edx, edx
movsx eax, byte [0x180090ea2]
add ecx, r11d
add eax, ecx
movsx ecx, byte [0x180090ea1]
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x180041088
call fcn.180034e44
movsx edx, al
movsx eax, byte [0x180092db0]
imul edx, eax
lea r8d, [rdx + rdx*4]
call fcn.180034e50
movsx ecx, al
sub r8d, ecx
call fcn.180034e48
movsx ecx, al
add r8d, ecx
movsx ecx, byte [0x180090ea5]
add ecx, r8d
jne 0x18004111a
call fcn.180034e40
movsx edx, al
call fcn.180034e3c
movsx ecx, al
imul edx, ecx
add edx, edx
call fcn.180034e4c
movsx ecx, al
movsx eax, byte [0x180090ea2]
add ecx, edx
add eax, ecx
xor edx, edx
movsx ecx, byte [0x180090ea1]
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x180041117
call fcn.180034e40
movsx edx, al
call fcn.180034e3c
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*2]
call fcn.180034e4c
movsx ecx, al
xorps xmm0, xmm0
lea eax, [rcx + rdx*2]
movsx ecx, byte [0x180090ea2]
add eax, ecx
xor edx, edx
movsx ecx, byte [0x180090ea1]
div ecx
movsx ecx, byte [0x180090ea4]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp + 0x78]
cvttsd2si ebx, xmm0
jmp 0x18004111a
mov ebx, dword [rbp + 0x78]
call fcn.180034e40
movsx edx, al
call fcn.180034e3c
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*2]
call fcn.180034e4c
movsx ecx, al
lea eax, [rcx + rdx*2]
movsx ecx, byte [0x180090ea2]
add eax, ecx
xor edx, edx
movsx ecx, byte [0x180090ea1]
div ecx
movsx ecx, byte [0x180090ea4]
sub eax, ecx
imul eax, ebx
test eax, eax
je 0x18004116b
call fcn.180034d88
mov qword [0x180092d78], r12
call fcn.180034e54
call fcn.180034e40
movsx edx, al
call fcn.180034e3c
movsx ecx, al
imul edx, ecx
imul r9d, edx, 7
call fcn.180034e4c
movsx ecx, byte [0x180090ea2]
xor edx, edx
movsx eax, al
xorps xmm2, xmm2
add eax, r9d
add eax, ecx
movsx ecx, byte [0x180090ea1]
div ecx
movsx ecx, byte [0x180090ea4]
sub eax, ecx
cvtsi2sd xmm2, rax
movsx eax, byte [0x180090ea3]
movd xmm1, eax
movsx eax, byte [0x180090ea5]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rbp + 0x78], xmm1
call fcn.180034e40
movsx edx, al
call fcn.180034e3c
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*4]
call fcn.180034e4c
movsx ecx, al
lea eax, [rcx + rdx*2]
movsx ecx, byte [0x180090ea2]
add eax, ecx
xor edx, edx
movsx ecx, byte [0x180090ea1]
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x180041262
call fcn.180034e44
movsx edx, al
movsx eax, byte [0x180092db0]
imul edx, eax
lea r8d, [rdx + rdx*4]
call fcn.180034e50
movsx ecx, al
sub r8d, ecx
call fcn.180034e48
movsx ecx, al
add r8d, ecx
movsx ecx, byte [0x180090ea5]
add ecx, r8d
jne 0x1800412f9
call fcn.180034e40
movsx edx, al
call fcn.180034e3c
movsx ecx, al
imul edx, ecx
add edx, edx
call fcn.180034e4c
movsx ecx, al
movsx eax, byte [0x180090ea2]
add ecx, edx
add eax, ecx
xor edx, edx
movsx ecx, byte [0x180090ea1]
div ecx
movsx ecx, byte [0x180090ea4]
cmp eax, ecx
je 0x1800412f1
call fcn.180034e40
movsx edx, al
call fcn.180034e3c
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*2]
call fcn.180034e4c
movsx ecx, al
xorps xmm0, xmm0
lea eax, [rcx + rdx*2]
movsx ecx, byte [0x180090ea2]
add eax, ecx
xor edx, edx
movsx ecx, byte [0x180090ea1]
div ecx
movsx ecx, byte [0x180090ea4]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp + 0x78]
cvttsd2si eax, xmm0
jmp 0x1800412f4
mov eax, dword [rbp + 0x78]
cmp r12d, eax
jge 0x180041301
movsd xmm0, qword [0x180087548]
lea r11, [rsp + 0x120]
mov rbx, qword [r11 + 0x50]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret