Function at 0x1800430a8
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], xmm7
mov r11, rdx
movaps xmmword [rax - 0x58], xmm8
mov r12, rcx
movaps xmmword [rax - 0x68], xmm9
call fcn.180041878
movsx r9d, al
call fcn.180041874
movsx r8d, al
imul r9d, r8d
call fcn.180041884
movsx r10d, al
xor edx, edx
movsx eax, byte [0x18009910c]
xor r13d, r13d
movsx ecx, byte [0x18009910b]
add eax, r10d
lea ebx, [r13 + 4]
lea eax, [rax + r9*4]
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180046550
movsx eax, byte [0x18009910a]
cmp r11, 1
movd xmm1, eax
movsx eax, byte [0x180099109]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
mov eax, r13d
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 edi, [r10 + rax*2]
mulsd xmm1, xmm0
movsd qword [rbp + 0x78], xmm1
movsx eax, byte [0x18009910c]
movsx ecx, byte [0x18009910b]
add eax, edi
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x1800431d4
call fcn.18004187c
movsx edx, al
movsx eax, byte [0x18009a6e0]
imul edx, eax
lea r8d, [rdx + rdx*8]
call fcn.180041888
movsx ecx, al
sub r8d, ecx
call fcn.180041880
movsx ecx, al
add r8d, ecx
movsx ecx, byte [0x180099109]
add ecx, r8d
je 0x1800431d4
mov r11d, ebx
jmp 0x180043230
movsx eax, byte [0x18009910c]
lea edx, [r9 + r9*2]
movsx ecx, byte [0x18009910b]
add eax, r10d
lea eax, [rax + rdx*2]
xor edx, edx
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x18004322c
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, edi
div ecx
movsx ecx, byte [0x180099108]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp + 0x78]
cvttsd2si r11d, xmm0
jmp 0x180043230
mov r11d, dword [rbp + 0x78]
movsx eax, byte [0x18009910c]
lea ecx, [r9 + r10]
lea ecx, [rcx + r9*8]
xor edx, edx
add eax, ecx
movsx ecx, byte [0x18009910b]
div ecx
movsx ecx, byte [0x180099108]
sub eax, ecx
imul eax, r11d
test eax, eax
je 0x18004654c
movsx eax, byte [0x18009910c]
lea ecx, [r9 + r10]
lea ecx, [rcx + r9*4]
xor edx, edx
add eax, ecx
movsx ecx, byte [0x18009910b]
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180043409
call qword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
xor edx, edx
movd xmm2, eax
movsx eax, byte [0x18009910a]
cvtdq2pd xmm2, xmm2
movd xmm1, eax
movsx eax, byte [0x180099109]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rbp + 0x78], xmm1
movsx eax, byte [0x18009910c]
movsx ecx, byte [0x18009910b]
add eax, edi
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180043328
call fcn.18004187c
movsx edx, al
movsx eax, byte [0x18009a6e0]
imul edx, eax
lea r8d, [rdx + rdx*8]
call fcn.180041888
movsx ecx, al
sub r8d, ecx
call fcn.180041880
movsx ecx, al
add r8d, ecx
movsx ecx, byte [0x180099109]
add ecx, r8d
je 0x180043328
mov r9d, ebx
jmp 0x1800433be
call fcn.180041878
movsx edx, al
call fcn.180041874
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*2]
call fcn.180041884
movsx ecx, al
lea eax, [rcx + rdx*2]
movsx ecx, byte [0x18009910c]
add eax, ecx
xor edx, edx
movsx ecx, byte [0x18009910b]
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x1800433ba
call fcn.180041878
movsx edx, al
call fcn.180041874
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*4]
call fcn.180041884
movsx ecx, al
xorps xmm0, xmm0
lea eax, [rcx + rdx*2]
movsx ecx, byte [0x18009910c]
add eax, ecx
xor edx, edx
movsx ecx, byte [0x18009910b]
div ecx
movsx ecx, byte [0x180099108]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp + 0x78]
cvttsd2si r9d, xmm0
jmp 0x1800433be
mov r9d, dword [rbp + 0x78]
call fcn.180041878
movsx edx, al
call fcn.180041874
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*4]
call fcn.180041884
movsx ecx, al
lea eax, [rcx + rdx*2]
movsx ecx, byte [0x18009910c]
add eax, ecx
xor edx, edx
movsx ecx, byte [0x18009910b]
div ecx
movsx ecx, byte [0x180099108]
sub eax, ecx
imul eax, r9d
test eax, eax
je 0x180043409
call fcn.1800419f0
lea rax, [0x18007f8d8]
mov edi, r13d
mov qword [rsp + 0x70], rax
lea rax, str._______________________________________
mov qword [rsp + 0x78], rax
lea rax, str.________________________________________
mov qword [rbp - 0x80], rax
lea rax, [0x18007f9c0]
mov qword [rbp - 0x78], rax
lea rax, str.____________________________________
mov qword [rbp - 0x70], rax
lea rax, [0x18007fa60]
mov qword [rbp - 0x68], rax
lea rax, [0x18007fab0]
mov qword [rbp - 0x60], rax
lea rax, str._____________________________________
mov qword [rbp - 0x58], rax
lea rax, str.___________________________________
mov qword [rbp - 0x50], rax
lea rax, [0x18007fba0]
mov qword [rbp - 0x48], rax
call fcn.180041874
movsx edx, al
call fcn.180041878
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*2]
call fcn.180041884
movsx ecx, al
lea r14d, [rcx + rdx*2]
call fcn.180041874
movsx edx, al
call fcn.180041878
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*4]
call fcn.180041884
mov esi, dword [rbp + 0x78]
movsx ecx, al
lea r15d, [rcx + rdx*2]
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r14d
div ecx
movsx ecx, byte [0x180099108]
xorps xmm2, xmm2
sub eax, ecx
xor edx, edx
cvtsi2sd xmm2, rax
movsx eax, byte [0x18009910a]
movd xmm1, eax
movsx eax, byte [0x180099109]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rbp + 0x78], xmm1
movsx eax, byte [0x18009910c]
movsx ecx, byte [0x18009910b]
add eax, r15d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180043574
call fcn.18004187c
movsx edx, al
movsx eax, byte [0x18009a6e0]
imul edx, eax
lea r8d, [rdx + rdx*8]
call fcn.180041888
movsx ecx, al
sub r8d, ecx
call fcn.180041880
movsx ecx, al
add r8d, ecx
movsx ecx, byte [0x180099109]
add ecx, r8d
je 0x180043574
mov esi, ebx
jmp 0x1800435c3
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r14d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x1800435c3
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r15d
div ecx
movsx ecx, byte [0x180099108]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp + 0x78]
cvttsd2si esi, xmm0
cmp edi, esi
jge 0x1800435f7
mov dword [rbp + 0x78], r13d
mov eax, dword [rbp + 0x78]
mov rdx, qword [fcn.180003ccc]
movsxd rax, dword [rbp + 0x78]
mov rcx, qword [rsp + rax*8 + 0x70]
call rdx
mov eax, dword [rbp + 0x78]
inc eax
mov dword [rbp + 0x78], eax
mov eax, dword [rbp + 0x78]
cmp eax, 0xa
jb 0x1800435ce
inc edi
jmp 0x1800434c3
call fcn.180041878
movsx r9d, al
call fcn.180041874
movsx ecx, al
imul r9d, ecx
call fcn.180041884
movsx ecx, byte [0x18009910c]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [0x18009910b]
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180046344
lea rcx, str.gmod.exe
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, r13
xorps xmm2, xmm2
test rax, rax
movsx eax, byte [0x18009910a]
sete cl
movd xmm1, eax
movsx eax, byte [0x180099109]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
cvtsi2sd xmm2, rcx
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rbp + 0x78], xmm1
call fcn.180041878
movsx edx, al
call fcn.180041874
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*4]
call fcn.180041884
movsx ecx, al
lea eax, [rcx + rdx*2]
movsx ecx, byte [0x18009910c]
add eax, ecx
xor edx, edx
movsx ecx, byte [0x18009910b]
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180043707
call fcn.18004187c
movsx edx, al
movsx eax, byte [0x18009a6e0]
imul edx, eax
lea r8d, [rdx + rdx*8]
call fcn.180041888
movsx ecx, al
sub r8d, ecx
call fcn.180041880
movsx ecx, al
add r8d, ecx
movsx ecx, byte [0x180099109]
add ecx, r8d
je 0x180043707
mov r9d, ebx
jmp 0x18004379d
call fcn.180041878
movsx edx, al
call fcn.180041874
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*2]
call fcn.180041884
movsx ecx, al
lea eax, [rcx + rdx*2]
movsx ecx, byte [0x18009910c]
add eax, ecx
xor edx, edx
movsx ecx, byte [0x18009910b]
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180043799
call fcn.180041878
movsx edx, al
call fcn.180041874
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*4]
call fcn.180041884
movsx ecx, al
xorps xmm0, xmm0
lea eax, [rcx + rdx*2]
movsx ecx, byte [0x18009910c]
add eax, ecx
xor edx, edx
movsx ecx, byte [0x18009910b]
div ecx
movsx ecx, byte [0x180099108]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp + 0x78]
cvttsd2si r9d, xmm0
jmp 0x18004379d
mov r9d, dword [rbp + 0x78]
call fcn.180041878
movsx edx, al
call fcn.180041874
movsx ecx, al
imul edx, ecx
call fcn.180041884
movsx ecx, al
lea eax, [rcx + rdx*2]
movsx ecx, byte [0x18009910c]
add eax, ecx
xor edx, edx
movsx ecx, byte [0x18009910b]
div ecx
movsx ecx, byte [0x180099108]
sub eax, ecx
imul eax, r9d
test eax, eax
je 0x180046344
lea rdx, [rbp - 0x28]
lea rcx, [rbp + 0x78]
call fcn.1800381f0
movsd xmm9, qword [0x18007fcf8]
mov r9, rax
movsd xmm7, qword [0x18007fcf0]
movsd xmm4, qword [0x18007fce8]
cmp byte [rax], r13b
jne 0x18004424a
mov dword [rbp + 0x78], r13d
mov ecx, dword [rbp + 0x78]
call fcn.180041874
movsx edx, al
call fcn.180041878
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*2]
call fcn.180041884
movsx eax, al
add eax, edx
mov dword [rsp + 0x5c], eax
call fcn.18004187c
movsx r11d, al
call fcn.180041888
movsx edi, al
call fcn.180041880
movsx esi, al
call fcn.180041874
movsx edx, al
call fcn.180041878
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*2]
call fcn.180041884
movsx ecx, al
lea r14d, [rcx + rdx*2]
call fcn.180041874
movsx edx, al
call fcn.180041878
movsx ecx, al
imul edx, ecx
mov dword [rsp + 0x64], edx
call fcn.180041884
movsd xmm3, qword [0x18007fce0]
mov r15d, dword [rbp + 0x78]
mov r12d, dword [rbp + 0x78]
mov r13d, dword [rbp + 0x78]
movsx ecx, al
lea eax, [rdx + rdx*4]
mov dword [rsp + 0x60], ecx
lea r10d, [rcx + rax*2]
movsx edx, byte [0x18009a6e0]
movsx ecx, byte [0x180099109]
imul edx, r11d
sub edx, edi
add edx, esi
add ecx, edx
je 0x180043a87
movsx eax, byte [0x18009910a]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180099109]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rsp + 0x30], xmm1
movsx eax, byte [0x18009910c]
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x18004394b
movsx ecx, byte [0x18009a6e0]
imul ecx, r11d
lea edx, [rcx + rcx*8]
movsx ecx, byte [0x180099109]
sub edx, edi
add edx, esi
add ecx, edx
je 0x18004394b
mov r15d, ebx
jmp 0x18004399c
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r14d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x18004399c
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x30]
cvttsd2si r15d, xmm0
movsx eax, byte [0x18009910a]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180099109]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rsp + 0x30], xmm1
movsx eax, byte [0x18009910c]
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180043a0f
movsx ecx, byte [0x18009a6e0]
imul ecx, r11d
lea edx, [rcx + rcx*8]
movsx ecx, byte [0x180099109]
sub edx, edi
add edx, esi
add ecx, edx
je 0x180043a0f
mov r12d, ebx
jmp 0x180043a60
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r14d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180043a60
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x30]
cvttsd2si r12d, xmm0
movsxd rax, dword [rbp + 0x78]
mov r8b, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
and r8b, r12b
add r8b, r8b
mov dl, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
sub dl, r8b
add dl, r15b
mov byte [rax + r9 + 1], dl
movsx eax, byte [0x18009910c]
xor edx, edx
add eax, dword [rsp + 0x5c]
movsx ecx, byte [0x18009910b]
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x18004405a
movsx edx, byte [0x18009a6e0]
movsx ecx, byte [0x180099109]
imul edx, r11d
add edx, edx
sub edx, edi
add edx, esi
add ecx, edx
je 0x180043c7f
movsx eax, byte [0x18009910a]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180099109]
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 [0x18009910c]
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180043b3e
movsx ecx, byte [0x18009a6e0]
imul ecx, r11d
lea edx, [rcx + rcx*8]
movsx ecx, byte [0x180099109]
sub edx, edi
add edx, esi
add ecx, edx
je 0x180043b3e
mov r13d, ebx
jmp 0x180043b8f
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r14d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180043b8f
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x30]
cvttsd2si r13d, xmm0
movsx eax, byte [0x18009910a]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180099109]
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 [0x18009910c]
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180043c02
movsx ecx, byte [0x18009a6e0]
imul ecx, r11d
lea edx, [rcx + rcx*8]
movsx ecx, byte [0x180099109]
sub edx, edi
add edx, esi
add ecx, edx
je 0x180043c02
mov dword [rsp + 0x40], ebx
jmp 0x180043c56
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r14d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180043c56
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
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, r13b
mov byte [rax + r9 + 1], dl
movsx ecx, byte [0x18009a6e0]
imul ecx, r11d
imul edx, ecx, 7
movsx ecx, byte [0x180099109]
sub edx, edi
add edx, esi
add ecx, edx
je 0x180043e58
movsx eax, byte [0x18009910a]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180099109]
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 [0x18009910c]
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180043d13
movsx ecx, byte [0x18009a6e0]
imul ecx, r11d
lea edx, [rcx + rcx*8]
movsx ecx, byte [0x180099109]
sub edx, edi
add edx, esi
add ecx, edx
je 0x180043d13
mov dword [rsp + 0x48], ebx
jmp 0x180043d67
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r14d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180043d67
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x30]
cvttsd2si eax, xmm0
mov dword [rsp + 0x48], eax
movsx eax, byte [0x18009910a]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180099109]
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 [0x18009910c]
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180043dda
movsx ecx, byte [0x18009a6e0]
imul ecx, r11d
lea edx, [rcx + rcx*8]
movsx ecx, byte [0x180099109]
sub edx, edi
add edx, esi
add ecx, edx
je 0x180043dda
mov dword [rsp + 0x44], ebx
jmp 0x180043e2e
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r14d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180043e2e
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
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 + 0x48]
mov byte [rax + r9 + 1], dl
movsx ecx, byte [0x18009910c]
xor edx, edx
mov eax, dword [rsp + 0x60]
add eax, ecx
mov ecx, dword [rsp + 0x64]
lea eax, [rax + rcx*8]
movsx ecx, byte [0x18009910b]
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x18004405a
mov eax, dword [rbp + 0x78]
xor edx, edx
sub eax, 0x41
movd xmm2, eax
movsx eax, byte [0x18009910a]
cvtdq2pd xmm2, xmm2
movd xmm1, eax
movsx eax, byte [0x180099109]
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 [0x18009910c]
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180043f07
movsx ecx, byte [0x18009a6e0]
imul ecx, r11d
lea edx, [rcx + rcx*8]
movsx ecx, byte [0x180099109]
sub edx, edi
add edx, esi
add ecx, edx
je 0x180043f07
mov dword [rsp + 0x50], ebx
jmp 0x180043f5b
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r14d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180043f5b
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x30]
cvttsd2si eax, xmm0
mov dword [rsp + 0x50], eax
mov eax, dword [rbp + 0x78]
xor edx, edx
sub eax, 0x41
movd xmm2, eax
movsx eax, byte [0x18009910a]
cvtdq2pd xmm2, xmm2
movd xmm1, eax
movsx eax, byte [0x180099109]
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 [0x18009910c]
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180043fdc
movsx ecx, byte [0x18009a6e0]
imul ecx, r11d
lea edx, [rcx + rcx*8]
movsx ecx, byte [0x180099109]
sub edx, edi
add edx, esi
add ecx, edx
je 0x180043fdc
mov dword [rsp + 0x4c], ebx
jmp 0x180044030
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r14d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180044030
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
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 + 0x50]
mov byte [rax + r9 + 1], dl
movsx edx, byte [0x18009a6e0]
movsx ecx, byte [0x180099109]
imul edx, r11d
shl edx, 3
sub edx, edi
add edx, esi
add ecx, edx
je 0x180044233
movsx eax, byte [0x18009910a]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180099109]
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 [0x18009910c]
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x1800440ee
movsx ecx, byte [0x18009a6e0]
imul ecx, r11d
lea edx, [rcx + rcx*8]
movsx ecx, byte [0x180099109]
sub edx, edi
add edx, esi
add ecx, edx
je 0x1800440ee
mov dword [rsp + 0x58], ebx
jmp 0x180044142
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r14d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180044142
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
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 [0x18009910a]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180099109]
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 [0x18009910c]
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x1800441b5
movsx ecx, byte [0x18009a6e0]
imul ecx, r11d
lea edx, [rcx + rcx*8]
movsx ecx, byte [0x180099109]
sub edx, edi
add edx, esi
add ecx, edx
je 0x1800441b5
mov dword [rsp + 0x54], ebx
jmp 0x180044209
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r14d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180044209
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
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 + 0x58]
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 0x1800438ba
xor r13d, r13d
lea rax, [r9 + 1]
mov byte [r9], 1
lea rdx, [rbp - 0x38]
mov qword [rsp + 0x38], rax
lea rcx, [rbp + 0x78]
call fcn.180037dfc
movsd xmm8, qword [0x18007fd00]
mov r9, rax
cmp byte [rax], r13b
jne 0x180044cb0
mov dword [rbp + 0x78], r13d
mov ecx, dword [rbp + 0x78]
cmp ecx, 0xb
jae 0x180044cb0
call fcn.180041874
movsx edx, al
call fcn.180041878
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*2]
call fcn.180041884
movsx eax, al
add eax, edx
mov dword [rsp + 0x64], eax
call fcn.18004187c
movsx r11d, al
call fcn.180041888
movsx edi, al
call fcn.180041880
movsx esi, al
call fcn.180041874
movsx edx, al
call fcn.180041878
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*2]
call fcn.180041884
movsx ecx, al
lea r14d, [rcx + rdx*2]
call fcn.180041874
movsx edx, al
call fcn.180041878
movsx ecx, al
imul edx, ecx
mov dword [rsp + 0x5c], edx
call fcn.180041884
mov r15d, dword [rbp + 0x78]
mov r12d, dword [rbp + 0x78]
mov r13d, dword [rbp + 0x78]
movsx ecx, al
lea eax, [rdx + rdx*4]
mov dword [rsp + 0x60], ecx
lea r10d, [rcx + rax*2]
movsx edx, byte [0x18009a6e0]
movsx ecx, byte [0x180099109]
imul edx, r11d
sub edx, edi
add edx, esi
add ecx, edx
je 0x1800444eb
movsx eax, byte [0x18009910a]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180099109]
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 [0x18009910c]
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x1800443af
movsx ecx, byte [0x18009a6e0]
imul ecx, r11d
lea edx, [rcx + rcx*8]
movsx ecx, byte [0x180099109]
sub edx, edi
add edx, esi
add ecx, edx
je 0x1800443af
mov r15d, ebx
jmp 0x180044400
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r14d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180044400
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x30]
cvttsd2si r15d, xmm0
movsx eax, byte [0x18009910a]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180099109]
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 [0x18009910c]
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180044473
movsx ecx, byte [0x18009a6e0]
imul ecx, r11d
lea edx, [rcx + rcx*8]
movsx ecx, byte [0x180099109]
sub edx, edi
add edx, esi
add ecx, edx
je 0x180044473
mov r12d, ebx
jmp 0x1800444c4
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r14d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x1800444c4
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x30]
cvttsd2si r12d, xmm0
movsxd rax, dword [rbp + 0x78]
mov r8b, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
and r8b, r12b
add r8b, r8b
mov dl, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
sub dl, r8b
add dl, r15b
mov byte [rax + r9 + 1], dl
movsx eax, byte [0x18009910c]
xor edx, edx
add eax, dword [rsp + 0x64]
movsx ecx, byte [0x18009910b]
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180044ac0
movsx edx, byte [0x18009a6e0]
movsx ecx, byte [0x180099109]
imul edx, r11d
add edx, edx
sub edx, edi
add edx, esi
add ecx, edx
je 0x1800446e5
movsx eax, byte [0x18009910a]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180099109]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rsp + 0x30], xmm1
movsx eax, byte [0x18009910c]
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x1800445a3
movsx ecx, byte [0x18009a6e0]
imul ecx, r11d
lea edx, [rcx + rcx*8]
movsx ecx, byte [0x180099109]
sub edx, edi
add edx, esi
add ecx, edx
je 0x1800445a3
mov r13d, ebx
jmp 0x1800445f4
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r14d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x1800445f4
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x30]
cvttsd2si r13d, xmm0
movsx eax, byte [0x18009910a]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180099109]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rsp + 0x30], xmm1
movsx eax, byte [0x18009910c]
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180044668
movsx ecx, byte [0x18009a6e0]
imul ecx, r11d
lea edx, [rcx + rcx*8]
movsx ecx, byte [0x180099109]
sub edx, edi
add edx, esi
add ecx, edx
je 0x180044668
mov dword [rsp + 0x58], ebx
jmp 0x1800446bc
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r14d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x1800446bc
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
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, r13b
mov byte [rax + r9 + 1], dl
movsx ecx, byte [0x18009a6e0]
imul ecx, r11d
imul edx, ecx, 7
movsx ecx, byte [0x180099109]
sub edx, edi
add edx, esi
add ecx, edx
je 0x1800448be
movsx eax, byte [0x18009910a]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180099109]
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 [0x18009910c]
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180044779
movsx ecx, byte [0x18009a6e0]
imul ecx, r11d
lea edx, [rcx + rcx*8]
movsx ecx, byte [0x180099109]
sub edx, edi
add edx, esi
add ecx, edx
je 0x180044779
mov dword [rsp + 0x50], ebx
jmp 0x1800447cd
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r14d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x1800447cd
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
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 [0x18009910a]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180099109]
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 [0x18009910c]
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180044840
movsx ecx, byte [0x18009a6e0]
imul ecx, r11d
lea edx, [rcx + rcx*8]
movsx ecx, byte [0x180099109]
sub edx, edi
add edx, esi
add ecx, edx
je 0x180044840
mov dword [rsp + 0x54], ebx
jmp 0x180044894
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r14d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180044894
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
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 [0x18009910c]
xor edx, edx
mov eax, dword [rsp + 0x60]
add eax, ecx
mov ecx, dword [rsp + 0x5c]
lea eax, [rax + rcx*8]
movsx ecx, byte [0x18009910b]
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180044ac0
mov eax, dword [rbp + 0x78]
xor edx, edx
sub eax, 0x42
movd xmm2, eax
movsx eax, byte [0x18009910a]
cvtdq2pd xmm2, xmm2
movd xmm1, eax
movsx eax, byte [0x180099109]
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 [0x18009910c]
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x18004496d
movsx ecx, byte [0x18009a6e0]
imul ecx, r11d
lea edx, [rcx + rcx*8]
movsx ecx, byte [0x180099109]
sub edx, edi
add edx, esi
add ecx, edx
je 0x18004496d
mov dword [rsp + 0x48], ebx
jmp 0x1800449c1
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r14d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x1800449c1
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
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, 0x42
movd xmm2, eax
movsx eax, byte [0x18009910a]
cvtdq2pd xmm2, xmm2
movd xmm1, eax
movsx eax, byte [0x180099109]
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 [0x18009910c]
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180044a42
movsx ecx, byte [0x18009a6e0]
imul ecx, r11d
lea edx, [rcx + rcx*8]
movsx ecx, byte [0x180099109]
sub edx, edi
add edx, esi
add ecx, edx
je 0x180044a42
mov dword [rsp + 0x4c], ebx
jmp 0x180044a96
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r14d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180044a96
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
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 [0x18009a6e0]
movsx ecx, byte [0x180099109]
imul edx, r11d
shl edx, 3
sub edx, edi
add edx, esi
add ecx, edx
je 0x180044c99
movsx eax, byte [0x18009910a]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180099109]
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 [0x18009910c]
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180044b54
movsx ecx, byte [0x18009a6e0]
imul ecx, r11d
lea edx, [rcx + rcx*8]
movsx ecx, byte [0x180099109]
sub edx, edi
add edx, esi
add ecx, edx
je 0x180044b54
mov dword [rsp + 0x40], ebx
jmp 0x180044ba8
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r14d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180044ba8
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
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 [0x18009910a]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180099109]
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 [0x18009910c]
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180044c1b
movsx ecx, byte [0x18009a6e0]
imul ecx, r11d
lea edx, [rcx + rcx*8]
movsx ecx, byte [0x180099109]
sub edx, edi
add edx, esi
add ecx, edx
je 0x180044c1b
mov dword [rsp + 0x44], ebx
jmp 0x180044c6f
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r14d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180044c6f
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
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 0x18004431e
xor r13d, r13d
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, [rbp - 0x40]
mov qword [rsp + 0x68], rax
lea rcx, [rbp + 0x78]
call fcn.180038a38
mov r9, rax
cmp byte [rax], r13b
jne 0x180045729
mov dword [rbp + 0x78], r13d
mov ecx, dword [rbp + 0x78]
cmp ecx, 6
jae 0x180045729
call fcn.180041874
movsx edx, al
call fcn.180041878
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*2]
call fcn.180041884
movsx eax, al
add eax, edx
mov dword [rsp + 0x64], eax
call fcn.18004187c
movsx r11d, al
call fcn.180041888
movsx edi, al
call fcn.180041880
movsx esi, al
call fcn.180041874
movsx edx, al
call fcn.180041878
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*2]
call fcn.180041884
movsx ecx, al
lea r14d, [rcx + rdx*2]
call fcn.180041874
movsx edx, al
call fcn.180041878
movsx ecx, al
imul edx, ecx
mov dword [rsp + 0x5c], edx
call fcn.180041884
mov r15d, dword [rbp + 0x78]
mov r12d, dword [rbp + 0x78]
mov r13d, dword [rbp + 0x78]
movsx ecx, al
lea eax, [rdx + rdx*4]
mov dword [rsp + 0x60], ecx
lea r10d, [rcx + rax*2]
movsx edx, byte [0x18009a6e0]
movsx ecx, byte [0x180099109]
imul edx, r11d
sub edx, edi
add edx, esi
add ecx, edx
je 0x180044f62
movsx eax, byte [0x18009910a]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180099109]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, qword [0x18007fd08]
movsd qword [rsp + 0x38], xmm1
movsx eax, byte [0x18009910c]
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180044e23
movsx ecx, byte [0x18009a6e0]
imul ecx, r11d
lea edx, [rcx + rcx*8]
movsx ecx, byte [0x180099109]
sub edx, edi
add edx, esi
add ecx, edx
je 0x180044e23
mov r15d, ebx
jmp 0x180044e74
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r14d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180044e74
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x38]
cvttsd2si r15d, xmm0
movsx eax, byte [0x18009910a]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180099109]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, qword [0x18007fd08]
movsd qword [rsp + 0x38], xmm1
movsx eax, byte [0x18009910c]
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180044eea
movsx ecx, byte [0x18009a6e0]
imul ecx, r11d
lea edx, [rcx + rcx*8]
movsx ecx, byte [0x180099109]
sub edx, edi
add edx, esi
add ecx, edx
je 0x180044eea
mov r12d, ebx
jmp 0x180044f3b
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r14d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180044f3b
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x38]
cvttsd2si r12d, xmm0
movsxd rax, dword [rbp + 0x78]
mov r8b, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
and r8b, r12b
add r8b, r8b
mov dl, byte [rax + r9 + 1]
movsxd rax, dword [rbp + 0x78]
sub dl, r8b
add dl, r15b
mov byte [rax + r9 + 1], dl
movsx eax, byte [0x18009910c]
xor edx, edx
add eax, dword [rsp + 0x64]
movsx ecx, byte [0x18009910b]
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180045539
movsx edx, byte [0x18009a6e0]
movsx ecx, byte [0x180099109]
imul edx, r11d
add edx, edx
sub edx, edi
add edx, esi
add ecx, edx
je 0x18004515c
movsx eax, byte [0x18009910a]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180099109]
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 [0x18009910c]
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x18004501a
movsx ecx, byte [0x18009a6e0]
imul ecx, r11d
lea edx, [rcx + rcx*8]
movsx ecx, byte [0x180099109]
sub edx, edi
add edx, esi
add ecx, edx
je 0x18004501a
mov r13d, ebx
jmp 0x18004506b
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r14d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x18004506b
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x38]
cvttsd2si r13d, xmm0
movsx eax, byte [0x18009910a]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180099109]
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 [0x18009910c]
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x1800450df
movsx ecx, byte [0x18009a6e0]
imul ecx, r11d
lea edx, [rcx + rcx*8]
movsx ecx, byte [0x180099109]
sub edx, edi
add edx, esi
add ecx, edx
je 0x1800450df
mov dword [rsp + 0x58], ebx
jmp 0x180045133
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r14d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180045133
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x38]
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, r13b
mov byte [rax + r9 + 1], dl
movsx ecx, byte [0x18009a6e0]
imul ecx, r11d
imul edx, ecx, 7
movsx ecx, byte [0x180099109]
sub edx, edi
add edx, esi
add ecx, edx
je 0x180045337
movsx eax, byte [0x18009910a]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180099109]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rsp + 0x38], xmm1
movsx eax, byte [0x18009910c]
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x1800451f1
movsx ecx, byte [0x18009a6e0]
imul ecx, r11d
lea edx, [rcx + rcx*8]
movsx ecx, byte [0x180099109]
sub edx, edi
add edx, esi
add ecx, edx
je 0x1800451f1
mov dword [rsp + 0x50], ebx
jmp 0x180045245
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r14d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180045245
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
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 [0x18009910a]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180099109]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rsp + 0x38], xmm1
movsx eax, byte [0x18009910c]
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x1800452b9
movsx ecx, byte [0x18009a6e0]
imul ecx, r11d
lea edx, [rcx + rcx*8]
movsx ecx, byte [0x180099109]
sub edx, edi
add edx, esi
add ecx, edx
je 0x1800452b9
mov dword [rsp + 0x54], ebx
jmp 0x18004530d
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r14d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x18004530d
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
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 [0x18009910c]
xor edx, edx
mov eax, dword [rsp + 0x60]
add eax, ecx
mov ecx, dword [rsp + 0x5c]
lea eax, [rax + rcx*8]
movsx ecx, byte [0x18009910b]
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180045539
mov eax, dword [rbp + 0x78]
xor edx, edx
sub eax, 0x43
movd xmm2, eax
movsx eax, byte [0x18009910a]
cvtdq2pd xmm2, xmm2
movd xmm1, eax
movsx eax, byte [0x180099109]
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 [0x18009910c]
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x1800453e6
movsx ecx, byte [0x18009a6e0]
imul ecx, r11d
lea edx, [rcx + rcx*8]
movsx ecx, byte [0x180099109]
sub edx, edi
add edx, esi
add ecx, edx
je 0x1800453e6
mov dword [rsp + 0x48], ebx
jmp 0x18004543a
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r14d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x18004543a
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
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, 0x43
movd xmm2, eax
movsx eax, byte [0x18009910a]
cvtdq2pd xmm2, xmm2
movd xmm1, eax
movsx eax, byte [0x180099109]
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 [0x18009910c]
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x1800454bb
movsx ecx, byte [0x18009a6e0]
imul ecx, r11d
lea edx, [rcx + rcx*8]
movsx ecx, byte [0x180099109]
sub edx, edi
add edx, esi
add ecx, edx
je 0x1800454bb
mov dword [rsp + 0x4c], ebx
jmp 0x18004550f
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r14d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x18004550f
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
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 [0x18009a6e0]
movsx ecx, byte [0x180099109]
imul edx, r11d
shl edx, 3
sub edx, edi
add edx, esi
add ecx, edx
je 0x180045712
movsx eax, byte [0x18009910a]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180099109]
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 [0x18009910c]
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x1800455cd
movsx ecx, byte [0x18009a6e0]
imul ecx, r11d
lea edx, [rcx + rcx*8]
movsx ecx, byte [0x180099109]
sub edx, edi
add edx, esi
add ecx, edx
je 0x1800455cd
mov dword [rsp + 0x40], ebx
jmp 0x180045621
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r14d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180045621
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
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 [0x18009910a]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180099109]
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 [0x18009910c]
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180045694
movsx ecx, byte [0x18009a6e0]
imul ecx, r11d
lea edx, [rcx + rcx*8]
movsx ecx, byte [0x180099109]
sub edx, edi
add edx, esi
add ecx, edx
je 0x180045694
mov dword [rsp + 0x44], ebx
jmp 0x1800456e8
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r14d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x1800456e8
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
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 0x180044d8f
xor r13d, r13d
lea rax, [r9 + 1]
mov byte [r9], 1
lea rdx, [rsp + 0x70]
mov qword [rsp + 0x30], rax
lea rcx, [rbp + 0x78]
call fcn.1800385f0
mov r10, rax
cmp byte [rax], r13b
jne 0x180046197
mov dword [rbp + 0x78], r13d
mov ecx, dword [rbp + 0x78]
cmp ecx, 0x49
jae 0x180046197
call fcn.180041874
movsx edx, al
call fcn.180041878
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*2]
call fcn.180041884
movsx eax, al
add eax, edx
mov dword [rsp + 0x64], eax
call fcn.18004187c
movsx r11d, al
call fcn.180041888
movsx edi, al
call fcn.180041880
movsx esi, al
call fcn.180041874
movsx edx, al
call fcn.180041878
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*2]
call fcn.180041884
movsx ecx, al
lea r14d, [rcx + rdx*2]
call fcn.180041874
movsx edx, al
call fcn.180041878
movsx ecx, al
imul edx, ecx
mov dword [rsp + 0x5c], edx
call fcn.180041884
movsd xmm3, qword [0x18007fd10]
mov r15d, dword [rbp + 0x78]
mov r12d, dword [rbp + 0x78]
mov r13d, dword [rbp + 0x78]
movsx ecx, al
lea eax, [rdx + rdx*4]
mov dword [rsp + 0x60], ecx
lea r9d, [rcx + rax*2]
movsx edx, byte [0x18009a6e0]
movsx ecx, byte [0x180099109]
imul edx, r11d
sub edx, edi
add edx, esi
add ecx, edx
je 0x1800459c8
movsx eax, byte [0x18009910a]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180099109]
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 [0x18009910c]
movsx ecx, byte [0x18009910b]
add eax, r9d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x18004588d
movsx ecx, byte [0x18009a6e0]
imul ecx, r11d
lea edx, [rcx + rcx*8]
movsx ecx, byte [0x180099109]
sub edx, edi
add edx, esi
add ecx, edx
je 0x18004588d
mov r15d, ebx
jmp 0x1800458de
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r14d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x1800458de
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r9d
div ecx
movsx ecx, byte [0x180099108]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x38]
cvttsd2si r15d, xmm0
movsx eax, byte [0x18009910a]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180099109]
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 [0x18009910c]
movsx ecx, byte [0x18009910b]
add eax, r9d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180045950
movsx ecx, byte [0x18009a6e0]
imul ecx, r11d
lea edx, [rcx + rcx*8]
movsx ecx, byte [0x180099109]
sub edx, edi
add edx, esi
add ecx, edx
je 0x180045950
mov r12d, ebx
jmp 0x1800459a1
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r14d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x1800459a1
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r9d
div ecx
movsx ecx, byte [0x180099108]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x38]
cvttsd2si r12d, xmm0
movsxd rax, dword [rbp + 0x78]
mov r8b, byte [rax + r10 + 1]
movsxd rax, dword [rbp + 0x78]
and r8b, r12b
add r8b, r8b
mov dl, byte [rax + r10 + 1]
movsxd rax, dword [rbp + 0x78]
sub dl, r8b
add dl, r15b
mov byte [rax + r10 + 1], dl
movsx eax, byte [0x18009910c]
xor edx, edx
add eax, dword [rsp + 0x64]
movsx ecx, byte [0x18009910b]
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180045fa5
movsx edx, byte [0x18009a6e0]
movsx ecx, byte [0x180099109]
imul edx, r11d
add edx, edx
sub edx, edi
add edx, esi
add ecx, edx
je 0x180045bc8
movsx eax, byte [0x18009910a]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180099109]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, qword [0x18007fd08]
movsd qword [rsp + 0x38], xmm1
movsx eax, byte [0x18009910c]
movsx ecx, byte [0x18009910b]
add eax, r9d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180045a83
movsx ecx, byte [0x18009a6e0]
imul ecx, r11d
lea edx, [rcx + rcx*8]
movsx ecx, byte [0x180099109]
sub edx, edi
add edx, esi
add ecx, edx
je 0x180045a83
mov r13d, ebx
jmp 0x180045ad4
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r14d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180045ad4
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r9d
div ecx
movsx ecx, byte [0x180099108]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x38]
cvttsd2si r13d, xmm0
movsx eax, byte [0x18009910a]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180099109]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, qword [0x18007fd08]
movsd qword [rsp + 0x38], xmm1
movsx eax, byte [0x18009910c]
movsx ecx, byte [0x18009910b]
add eax, r9d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180045b4b
movsx ecx, byte [0x18009a6e0]
imul ecx, r11d
lea edx, [rcx + rcx*8]
movsx ecx, byte [0x180099109]
sub edx, edi
add edx, esi
add ecx, edx
je 0x180045b4b
mov dword [rsp + 0x58], ebx
jmp 0x180045b9f
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r14d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180045b9f
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r9d
div ecx
movsx ecx, byte [0x180099108]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x38]
cvttsd2si eax, xmm0
mov dword [rsp + 0x58], eax
movsxd rax, dword [rbp + 0x78]
mov r8b, byte [rax + r10 + 1]
movsxd rax, dword [rbp + 0x78]
and r8b, byte [rsp + 0x58]
add r8b, r8b
mov dl, byte [rax + r10 + 1]
movsxd rax, dword [rbp + 0x78]
sub dl, r8b
add dl, r13b
mov byte [rax + r10 + 1], dl
movsx ecx, byte [0x18009a6e0]
imul ecx, r11d
imul edx, ecx, 7
movsx ecx, byte [0x180099109]
sub edx, edi
add edx, esi
add ecx, edx
je 0x180045da3
movsx eax, byte [0x18009910a]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180099109]
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 [0x18009910c]
movsx ecx, byte [0x18009910b]
add eax, r9d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180045c5d
movsx ecx, byte [0x18009a6e0]
imul ecx, r11d
lea edx, [rcx + rcx*8]
movsx ecx, byte [0x180099109]
sub edx, edi
add edx, esi
add ecx, edx
je 0x180045c5d
mov dword [rsp + 0x50], ebx
jmp 0x180045cb1
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r14d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180045cb1
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r9d
div ecx
movsx ecx, byte [0x180099108]
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 [0x18009910a]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180099109]
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 [0x18009910c]
movsx ecx, byte [0x18009910b]
add eax, r9d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180045d25
movsx ecx, byte [0x18009a6e0]
imul ecx, r11d
lea edx, [rcx + rcx*8]
movsx ecx, byte [0x180099109]
sub edx, edi
add edx, esi
add ecx, edx
je 0x180045d25
mov dword [rsp + 0x54], ebx
jmp 0x180045d79
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r14d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180045d79
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r9d
div ecx
movsx ecx, byte [0x180099108]
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 + r10 + 1]
movsxd rax, dword [rbp + 0x78]
and r8b, byte [rsp + 0x54]
add r8b, r8b
mov dl, byte [rax + r10 + 1]
movsxd rax, dword [rbp + 0x78]
sub dl, r8b
add dl, byte [rsp + 0x50]
mov byte [rax + r10 + 1], dl
movsx ecx, byte [0x18009910c]
xor edx, edx
mov eax, dword [rsp + 0x60]
add eax, ecx
mov ecx, dword [rsp + 0x5c]
lea eax, [rax + rcx*8]
movsx ecx, byte [0x18009910b]
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180045fa5
mov eax, dword [rbp + 0x78]
xor edx, edx
sub eax, 0x44
movd xmm2, eax
movsx eax, byte [0x18009910a]
cvtdq2pd xmm2, xmm2
movd xmm1, eax
movsx eax, byte [0x180099109]
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 [0x18009910c]
movsx ecx, byte [0x18009910b]
add eax, r9d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180045e52
movsx ecx, byte [0x18009a6e0]
imul ecx, r11d
lea edx, [rcx + rcx*8]
movsx ecx, byte [0x180099109]
sub edx, edi
add edx, esi
add ecx, edx
je 0x180045e52
mov dword [rsp + 0x48], ebx
jmp 0x180045ea6
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r14d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180045ea6
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r9d
div ecx
movsx ecx, byte [0x180099108]
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, 0x44
movd xmm2, eax
movsx eax, byte [0x18009910a]
cvtdq2pd xmm2, xmm2
movd xmm1, eax
movsx eax, byte [0x180099109]
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 [0x18009910c]
movsx ecx, byte [0x18009910b]
add eax, r9d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180045f27
movsx ecx, byte [0x18009a6e0]
imul ecx, r11d
lea edx, [rcx + rcx*8]
movsx ecx, byte [0x180099109]
sub edx, edi
add edx, esi
add ecx, edx
je 0x180045f27
mov dword [rsp + 0x4c], ebx
jmp 0x180045f7b
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r14d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180045f7b
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r9d
div ecx
movsx ecx, byte [0x180099108]
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 + r10 + 1]
movsxd rax, dword [rbp + 0x78]
and r8b, byte [rsp + 0x4c]
add r8b, r8b
mov dl, byte [rax + r10 + 1]
movsxd rax, dword [rbp + 0x78]
sub dl, r8b
add dl, byte [rsp + 0x48]
mov byte [rax + r10 + 1], dl
movsx edx, byte [0x18009a6e0]
movsx ecx, byte [0x180099109]
imul edx, r11d
shl edx, 3
sub edx, edi
add edx, esi
add ecx, edx
je 0x180046180
movsx eax, byte [0x18009910a]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180099109]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rsp + 0x38], xmm1
movsx eax, byte [0x18009910c]
movsx ecx, byte [0x18009910b]
add eax, r9d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x18004603a
movsx ecx, byte [0x18009a6e0]
imul ecx, r11d
lea edx, [rcx + rcx*8]
movsx ecx, byte [0x180099109]
sub edx, edi
add edx, esi
add ecx, edx
je 0x18004603a
mov dword [rsp + 0x40], ebx
jmp 0x18004608e
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r14d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x18004608e
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r9d
div ecx
movsx ecx, byte [0x180099108]
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 [0x18009910a]
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x180099109]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm9
movsd qword [rsp + 0x38], xmm1
movsx eax, byte [0x18009910c]
movsx ecx, byte [0x18009910b]
add eax, r9d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180046102
movsx ecx, byte [0x18009a6e0]
imul ecx, r11d
lea edx, [rcx + rcx*8]
movsx ecx, byte [0x180099109]
sub edx, edi
add edx, esi
add ecx, edx
je 0x180046102
mov dword [rsp + 0x44], ebx
jmp 0x180046156
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r14d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180046156
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r9d
div ecx
movsx ecx, byte [0x180099108]
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 + r10 + 1]
movsxd rax, dword [rbp + 0x78]
and r8b, byte [rsp + 0x44]
add r8b, r8b
mov dl, byte [rax + r10 + 1]
movsxd rax, dword [rbp + 0x78]
sub dl, r8b
add dl, byte [rsp + 0x40]
mov byte [rax + r10 + 1], dl
mov eax, dword [rbp + 0x78]
inc eax
mov dword [rbp + 0x78], eax
mov eax, dword [rbp + 0x78]
cmp eax, 0x49
jb 0x1800457fd
xor r13d, r13d
mov r8, qword [rsp + 0x30]
lea rdx, [r10 + 1]
xor r9d, r9d
mov byte [r10], 1
xor ecx, ecx
call qword [rsp + 0x68]
call fcn.180041878
movsx edx, al
call fcn.180041874
movsx ecx, al
imul edx, ecx
imul r9d, edx, 7
call fcn.180041884
movsx ecx, byte [0x18009910c]
xor edx, edx
movsx eax, al
xorps xmm2, xmm2
add eax, r9d
add eax, ecx
movsx ecx, byte [0x18009910b]
div ecx
movsx ecx, byte [0x180099108]
sub eax, ecx
cvtsi2sd xmm2, rax
movsx eax, byte [0x18009910a]
movd xmm1, eax
movsx eax, byte [0x180099109]
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.180041878
movsx edx, al
call fcn.180041874
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*4]
call fcn.180041884
movsx ecx, al
lea eax, [rcx + rdx*2]
movsx ecx, byte [0x18009910c]
add eax, ecx
xor edx, edx
movsx ecx, byte [0x18009910b]
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x18004629f
call fcn.18004187c
movsx edx, al
movsx eax, byte [0x18009a6e0]
imul edx, eax
lea r8d, [rdx + rdx*8]
call fcn.180041888
movsx ecx, al
sub r8d, ecx
call fcn.180041880
movsx ecx, al
add r8d, ecx
movsx ecx, byte [0x180099109]
add ecx, r8d
jne 0x180046338
call fcn.180041878
movsx edx, al
call fcn.180041874
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*2]
call fcn.180041884
movsx ecx, al
lea eax, [rcx + rdx*2]
movsx ecx, byte [0x18009910c]
add eax, ecx
xor edx, edx
movsx ecx, byte [0x18009910b]
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180046330
call fcn.180041878
movsx edx, al
call fcn.180041874
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*4]
call fcn.180041884
movsx ecx, al
xorps xmm0, xmm0
lea eax, [rcx + rdx*2]
movsx ecx, byte [0x18009910c]
add eax, ecx
xor edx, edx
movsx ecx, byte [0x18009910b]
div ecx
movsx ecx, byte [0x180099108]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp + 0x78]
cvttsd2si eax, xmm0
jmp 0x180046333
mov eax, dword [rbp + 0x78]
cmp r13d, eax
jge 0x180046340
xorps xmm0, xmm0
jmp 0x180046a32
mov r12, qword [rbp + 0x60]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_DisableThreadLibraryCalls]
mov r9, r12
mov qword [rsp + 0x28], r13
lea r8, [0x1800399b0]
mov dword [rsp + 0x20], r13d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov r11, rax
call fcn.180041878
movsx edx, al
call fcn.180041874
movsx ecx, al
imul edx, ecx
call fcn.180041884
movsx ecx, al
lea eax, [rcx + rdx*8]
movsx ecx, byte [0x18009910c]
add eax, ecx
xor edx, edx
movsx ecx, byte [0x18009910b]
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x18004654c
movsx eax, byte [0x18009910a]
movd xmm1, eax
movsx eax, byte [0x180099109]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, r11
mulsd xmm1, xmm0
movsd qword [rbp + 0x78], xmm1
call fcn.180041878
movsx edx, al
call fcn.180041874
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*4]
call fcn.180041884
movsx ecx, al
lea eax, [rcx + rdx*2]
movsx ecx, byte [0x18009910c]
add eax, ecx
xor edx, edx
movsx ecx, byte [0x18009910b]
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180046466
call fcn.18004187c
movsx edx, al
movsx eax, byte [0x18009a6e0]
imul edx, eax
lea r8d, [rdx + rdx*8]
call fcn.180041888
movsx ecx, al
sub r8d, ecx
call fcn.180041880
movsx ecx, al
add r8d, ecx
movsx ecx, byte [0x180099109]
add ecx, r8d
je 0x180046466
mov r10d, ebx
jmp 0x1800464fc
call fcn.180041878
movsx edx, al
call fcn.180041874
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*2]
call fcn.180041884
movsx ecx, al
lea eax, [rcx + rdx*2]
movsx ecx, byte [0x18009910c]
add eax, ecx
xor edx, edx
movsx ecx, byte [0x18009910b]
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x1800464f8
call fcn.180041878
movsx edx, al
call fcn.180041874
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*4]
call fcn.180041884
movsx ecx, al
xorps xmm0, xmm0
lea eax, [rcx + rdx*2]
movsx ecx, byte [0x18009910c]
add eax, ecx
xor edx, edx
movsx ecx, byte [0x18009910b]
div ecx
movsx ecx, byte [0x180099108]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp + 0x78]
cvttsd2si r10d, xmm0
jmp 0x1800464fc
mov r10d, dword [rbp + 0x78]
call fcn.180041878
movsx edx, al
call fcn.180041874
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*2]
call fcn.180041884
movsx ecx, byte [0x18009910c]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [0x18009910b]
div ecx
movsx ecx, byte [0x180099108]
sub eax, ecx
imul eax, r10d
test eax, eax
je 0x18004654c
mov rcx, r11
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov r11, qword [rbp + 0x68]
call fcn.180041878
movsx edx, al
call fcn.180041874
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*8]
call fcn.180041884
movsx ecx, byte [0x18009910c]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [0x18009910b]
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x1800468c5
movsx eax, byte [0x18009910a]
test r11, r11
movd xmm1, eax
movsx eax, byte [0x180099109]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
mov rax, r13
cvtdq2pd xmm0, xmm0
sete al
addsd xmm0, xmm0
subsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm1, xmm0
movsd qword [rbp + 0x78], xmm1
call fcn.180041878
movsx edx, al
call fcn.180041874
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*4]
call fcn.180041884
movsx ecx, al
movsx eax, byte [0x18009910c]
lea r10d, [rcx + rdx*2]
movsx ecx, byte [0x18009910b]
add eax, r10d
xor edx, edx
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180046654
call fcn.18004187c
movsx edx, al
movsx eax, byte [0x18009a6e0]
imul edx, eax
lea r8d, [rdx + rdx*8]
call fcn.180041888
movsx ecx, al
sub r8d, ecx
call fcn.180041880
movsx ecx, al
add r8d, ecx
movsx ecx, byte [0x180099109]
add ecx, r8d
je 0x180046654
mov r9d, ebx
jmp 0x1800466ca
call fcn.180041878
movsx edx, al
call fcn.180041874
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*2]
call fcn.180041884
movsx ecx, al
lea eax, [rcx + rdx*2]
movsx ecx, byte [0x18009910c]
add eax, ecx
xor edx, edx
movsx ecx, byte [0x18009910b]
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x1800466c6
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp + 0x78]
cvttsd2si r9d, xmm0
jmp 0x1800466ca
mov r9d, dword [rbp + 0x78]
call fcn.180041878
movsx edx, al
call fcn.180041874
movsx ecx, al
imul edx, ecx
call fcn.180041884
movsx ecx, al
lea eax, [rcx + rdx*4]
movsx ecx, byte [0x18009910c]
add eax, ecx
xor edx, edx
movsx ecx, byte [0x18009910b]
div ecx
movsx ecx, byte [0x180099108]
sub eax, ecx
imul eax, r9d
test eax, eax
je 0x1800468c5
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x1800468c0
movsx eax, byte [0x18009910a]
movd xmm1, eax
movsx eax, byte [0x180099109]
cmp qword [0x18009a6d8], r13
cvtdq2pd xmm1, xmm1
movd xmm0, eax
mov rax, r13
setne 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 [0x18009910c]
movsx ecx, byte [0x18009910b]
add eax, r10d
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x1800467d5
call fcn.18004187c
movsx edx, al
movsx eax, byte [0x18009a6e0]
imul edx, eax
lea r8d, [rdx + rdx*8]
call fcn.180041888
movsx ecx, al
sub r8d, ecx
call fcn.180041880
movsx ecx, al
add r8d, ecx
movsx ecx, byte [0x180099109]
add ecx, r8d
jne 0x180046869
call fcn.180041878
movsx edx, al
call fcn.180041874
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*2]
call fcn.180041884
movsx ecx, al
lea eax, [rcx + rdx*2]
movsx ecx, byte [0x18009910c]
add eax, ecx
xor edx, edx
movsx ecx, byte [0x18009910b]
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180046866
call fcn.180041878
movsx edx, al
call fcn.180041874
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*4]
call fcn.180041884
movsx ecx, al
xorps xmm0, xmm0
lea eax, [rcx + rdx*2]
movsx ecx, byte [0x18009910c]
add eax, ecx
xor edx, edx
movsx ecx, byte [0x18009910b]
div ecx
movsx ecx, byte [0x180099108]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp + 0x78]
cvttsd2si ebx, xmm0
jmp 0x180046869
mov ebx, dword [rbp + 0x78]
call fcn.180041878
movsx r9d, al
call fcn.180041874
movsx ecx, al
imul r9d, ecx
call fcn.180041884
movsx ecx, byte [0x18009910c]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [0x18009910b]
div ecx
movsx ecx, byte [0x180099108]
sub eax, ecx
imul eax, ebx
test eax, eax
je 0x1800468c0
mov rcx, qword [0x18009a6d8]
call fcn.180042d18
mov qword [0x18009a6d8], r13
call fcn.180039828
call fcn.180041878
movsx edx, al
call fcn.180041874
movsx ecx, al
imul edx, ecx
call fcn.180041884
movsx ecx, al
xorps xmm2, xmm2
lea eax, [rcx + rdx*2]
movsx ecx, byte [0x18009910c]
add eax, ecx
xor edx, edx
movsx ecx, byte [0x18009910b]
div ecx
movsx ecx, byte [0x180099108]
sub eax, ecx
cvtsi2sd xmm2, rax
movsx eax, byte [0x18009910a]
movd xmm1, eax
movsx eax, byte [0x180099109]
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.180041878
movsx edx, al
call fcn.180041874
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*4]
call fcn.180041884
movsx ecx, al
movsx eax, byte [0x18009910c]
lea r9d, [rcx + rdx*2]
movsx ecx, byte [0x18009910b]
add eax, r9d
xor edx, edx
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x1800469b1
call fcn.18004187c
movsx edx, al
movsx eax, byte [0x18009a6e0]
imul edx, eax
lea r8d, [rdx + rdx*8]
call fcn.180041888
movsx ecx, al
sub r8d, ecx
call fcn.180041880
movsx ecx, al
add r8d, ecx
movsx ecx, byte [0x180099109]
add ecx, r8d
jne 0x180046a2a
call fcn.180041878
movsx edx, al
call fcn.180041874
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*2]
call fcn.180041884
movsx ecx, al
lea eax, [rcx + rdx*2]
movsx ecx, byte [0x18009910c]
add eax, ecx
xor edx, edx
movsx ecx, byte [0x18009910b]
div ecx
movsx ecx, byte [0x180099108]
cmp eax, ecx
je 0x180046a22
movsx eax, byte [0x18009910c]
xor edx, edx
movsx ecx, byte [0x18009910b]
add eax, r9d
div ecx
movsx ecx, byte [0x180099108]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rbp + 0x78]
cvttsd2si eax, xmm0
jmp 0x180046a25
mov eax, dword [rbp + 0x78]
cmp r13d, eax
jge 0x180046a32
movsd xmm0, qword [0x18007af18]
lea r11, [rsp + 0x120]
mov rbx, qword [r11 + 0x50]
movaps xmm7, xmmword [r11 - 0x10]
movaps xmm8, xmmword [r11 - 0x20]
movaps xmm9, xmmword [r11 - 0x30]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret