Function at 0x140015560
Capabilities:
Authenticate hmac
Encode data using xor

Disassembly:
push rbp
push rbx
push rdi
push r12
lea rbp, [rsp - 0x28]
sub rsp, 0x128
mov rax, qword [0x14008c020]
xor rax, rsp
mov qword [rbp - 0x10], rax
xor ebx, ebx
mov r12d, r8d
mov qword [rbp - 0x18], rbx
mov r10d, edx
mov byte [rbp - 0x68], bl
mov rdi, rcx
mov byte [rbp - 0x67], 0x33
mov byte [rbp - 0x66], 0x9a
mov byte [rbp - 0x65], 0xfa
mov byte [rbp - 0x64], 0x8a
mov byte [rbp - 0x63], 0xda
mov byte [rbp - 0x62], 0x61
mov byte [rbp - 0x61], 0x3c
mov byte [rbp - 0x60], 0xde
mov byte [rbp - 0x5f], 0x75
mov byte [rbp - 0x5e], 0x9a
mov byte [rbp - 0x5d], 0x71
mov byte [rbp - 0x5c], 0x71
mov byte [rbp - 0x5b], 0x27
movzx eax, byte [rbp - 0x67]
movzx eax, byte [rbp - 0x68]
test al, al
jne 0x14001563e
mov r9d, ebx
nop word [rax + rax]
movzx ecx, byte [rbp + r9 - 0x67]
mov eax, 0x828cbfbf
sub ecx, 0x27
imul r8d, ecx, 0x6e
imul r8d
add edx, r8d
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xfb
sub r8d, eax
mov eax, 0x828cbfbf
add r8d, 0xfb
imul r8d
add edx, r8d
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xfb
sub r8d, eax
mov byte [rbp + r9 - 0x67], r8b
inc r9
cmp r9, 0xd
jb 0x1400155e0
mov byte [rbp - 0x78], bl
mov byte [rbp - 0x77], 0xe0
mov byte [rbp - 0x76], 0x72
mov byte [rbp - 0x75], 0x3b
mov byte [rbp - 0x74], 0x12
mov byte [rbp - 0x73], 0x72
mov byte [rbp - 0x72], 0x7b
mov byte [rbp - 0x71], 0xe5
mov byte [rbp - 0x70], 0x9c
mov byte [rbp - 0x6f], 0x73
mov byte [rbp - 0x6e], 0x29
mov byte [rbp - 0x6d], 0x7b
mov byte [rbp - 0x6c], 0x7b
mov byte [rbp - 0x6b], 0x14
movzx eax, byte [rbp - 0x77]
movzx eax, byte [rbp - 0x78]
test al, al
jne 0x1400156ea
mov r8, rbx
nop dword [rax]
nop dword [rax + rax]
movzx ecx, byte [rbp + r8 - 0x77]
mov eax, 0x14
sub eax, ecx
imul ecx, eax, 0x37
mov eax, 0x828cbfbf
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xfb
sub ecx, eax
mov eax, 0x828cbfbf
add ecx, 0xfb
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xfb
sub ecx, eax
mov byte [rbp + r8 - 0x77], cl
inc r8
cmp r8, 0xd
jb 0x140015690
mov byte [rbp - 0x58], bl
mov byte [rbp - 0x57], 0x74
mov byte [rbp - 0x56], 0x1e
mov byte [rbp - 0x55], 0xd6
mov byte [rbp - 0x54], 0xa5
mov byte [rbp - 0x53], 0x62
mov byte [rbp - 0x52], 0x92
mov byte [rbp - 0x51], 0x56
mov byte [rbp - 0x50], 0x39
mov byte [rbp - 0x4f], 0xc0
mov byte [rbp - 0x4e], 1
mov byte [rbp - 0x4d], 0xe9
mov byte [rbp - 0x4c], 0xe9
mov byte [rbp - 0x4b], 0x71
movzx eax, byte [rbp - 0x57]
movzx eax, byte [rbp - 0x58]
test al, al
jne 0x14001578e
mov r9, rbx
movzx ecx, byte [rbp + r9 - 0x57]
mov eax, 0x828cbfbf
sub ecx, 0x71
imul r8d, ecx, 0x1a
imul r8d
add edx, r8d
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xfb
sub r8d, eax
mov eax, 0x828cbfbf
add r8d, 0xfb
imul r8d
add edx, r8d
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xfb
sub r8d, eax
mov byte [rbp + r9 - 0x57], r8b
inc r9
cmp r9, 0xd
jb 0x140015730
mov byte [rbp - 0x48], bl
mov byte [rbp - 0x47], 0x61
mov byte [rbp - 0x46], 0x62
mov byte [rbp - 0x45], 0x1b
mov byte [rbp - 0x44], 0xbc
mov byte [rbp - 0x43], 0x62
mov byte [rbp - 0x42], 0x3b
mov byte [rbp - 0x41], 0x62
mov byte [rbp - 0x40], 0x82
mov byte [rbp - 0x3f], 0x4d
mov byte [rbp - 0x3e], 0x75
mov byte [rbp - 0x3d], 0xbc
mov byte [rbp - 0x3c], 0xbc
mov byte [rbp - 0x3b], WSAGetLastError
movzx eax, byte [rbp - 0x47]
movzx eax, byte [rbp - 0x48]
test al, al
jne 0x14001583e
mov r9, rbx
nop dword [rax]
nop dword [rax + rax]
movzx ecx, byte [rbp + r9 - 0x47]
mov eax, 0x828cbfbf
sub ecx, 0x6c
imul r8d, ecx, 0x27
imul r8d
add edx, r8d
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xfb
sub r8d, eax
mov eax, 0x828cbfbf
add r8d, 0xfb
imul r8d
add edx, r8d
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xfb
sub r8d, eax
mov byte [rbp + r9 - 0x47], r8b
inc r9
cmp r9, 0xd
jb 0x1400157e0
mov byte [rbp - 0x38], bl
mov byte [rbp - 0x37], WSAGetLastError
mov byte [rbp - 0x36], 0x24
mov byte [rbp - 0x35], 0x31
mov byte [rbp - 0x34], 0x17
mov byte [rbp - 0x33], 0x31
mov byte [rbp - 0x32], 0xd1
mov byte [rbp - 0x31], 0x83
mov byte [rbp - 0x30], 0x17
mov byte [rbp - 0x2f], 0x8f
mov byte [rbp - 0x2e], 0x5c
mov byte [rbp - 0x2d], 0xc4
mov byte [rbp - 0x2c], 0xc4
mov byte [rbp - 0x2b], 0x2f
movzx eax, byte [rbp - 0x37]
movzx eax, byte [rbp - 0x38]
test al, al
jne 0x1400158ee
mov r9, rbx
nop dword [rax]
nop dword [rax + rax]
movzx ecx, byte [rbp + r9 - 0x37]
mov eax, 0x828cbfbf
sub ecx, 0x2f
imul r8d, ecx, 0x3a
imul r8d
add edx, r8d
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xfb
sub r8d, eax
mov eax, 0x828cbfbf
add r8d, 0xfb
imul r8d
add edx, r8d
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xfb
sub r8d, eax
mov byte [rbp + r9 - 0x37], r8b
inc r9
cmp r9, 0xd
jb 0x140015890
mov byte [rsp + 0x58], bl
mov byte [rsp + 0x59], 0xd0
mov byte [rsp + 0x5a], 0x2c
mov byte [rsp + 0x5b], 0x8c
mov byte [rsp + 0x5c], 0xe4
mov byte [rsp + 0x5d], 0xb5
mov byte [rsp + 0x5e], 0x8c
mov byte [rsp + 0x5f], 0xe3
mov byte [rsp + 0x60], 0xb6
mov byte [rsp + 0x61], 8
mov byte [rsp + 0x62], 8
mov byte [rsp + 0x63], 0x62
movzx eax, byte [rsp + 0x59]
movzx eax, byte [rsp + 0x58]
test al, al
jne 0x14001599e
mov r9, rbx
nop word [rax + rax]
movzx ecx, byte [rsp + r9 + 0x59]
mov eax, 0x828cbfbf
sub ecx, 0x62
imul r8d, ecx, 0x31
imul r8d
add edx, r8d
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xfb
sub r8d, eax
mov eax, 0x828cbfbf
add r8d, 0xfb
imul r8d
add edx, r8d
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xfb
sub r8d, eax
mov byte [rsp + r9 + 0x59], r8b
inc r9
cmp r9, 0xb
jb 0x140015940
mov byte [rsp + 0x48], bl
mov byte [rsp + 0x49], 0xb8
mov byte [rsp + 0x4a], 0x27
mov byte [rsp + 0x4b], 0x17
mov byte [rsp + 0x4c], 2
mov byte [rsp + 0x4d], 0xb5
mov byte [rsp + 0x4e], 0x90
mov byte [rsp + 0x4f], 0xf7
mov byte [rsp + 0x50], 0xed
mov byte [rsp + 0x51], 0x1f
mov byte [rsp + 0x52], 0x1f
mov byte [rsp + 0x53], 0x33
movzx eax, byte [rsp + 0x49]
movzx eax, byte [rsp + 0x48]
test al, al
jne 0x140015a4e
mov r9, rbx
nop word [rax + rax]
movzx ecx, byte [rsp + r9 + 0x49]
mov eax, 0x828cbfbf
sub ecx, 0x33
imul r8d, ecx, 0x5f
imul r8d
add edx, r8d
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xfb
sub r8d, eax
mov eax, 0x828cbfbf
add r8d, 0xfb
imul r8d
add edx, r8d
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xfb
sub r8d, eax
mov byte [rsp + r9 + 0x49], r8b
inc r9
cmp r9, 0xb
jb 0x1400159f0
mov byte [rsp + 0x68], bl
mov byte [rsp + 0x69], 0xe2
mov byte [rsp + 0x6a], 0xcf
mov byte [rsp + 0x6b], 0x30
mov byte [rsp + 0x6c], 0x32
mov byte [rsp + 0x6d], 0x2e
mov byte [rsp + 0x6e], 0x8c
mov byte [rsp + 0x6f], 0xe6
mov byte [rsp + 0x70], 0x80
mov byte [rsp + 0x71], 0x73
mov byte [rsp + 0x72], 0x30
mov byte [rsp + 0x73], 0x30
mov byte [rsp + 0x74], 0x4a
movzx eax, byte [rsp + 0x69]
movzx eax, byte [rsp + 0x68]
test al, al
jne 0x140015afa
mov r8, rbx
nop
movzx ecx, byte [rsp + r8 + 0x69]
mov eax, 0x4a
sub eax, ecx
imul ecx, eax, 0x78
mov eax, 0x828cbfbf
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xfb
sub ecx, eax
mov eax, 0x828cbfbf
add ecx, 0xfb
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xfb
sub ecx, eax
mov byte [rsp + r8 + 0x69], cl
inc r8
cmp r8, 0xc
jb 0x140015aa0
mov byte [rsp + 0x78], bl
mov byte [rsp + 0x79], 0xb3
mov byte [rsp + 0x7a], 0xa7
mov byte [rsp + 0x7b], 0x61
mov byte [rsp + 0x7c], 0x5d
mov byte [rsp + 0x7d], 0x5d
mov byte [rsp + 0x7e], 0x12
mov byte [rsp + 0x7f], 0xa2
mov byte [rbp - 0x80], 0xec
mov byte [rbp - 0x7f], 0xf1
mov byte [rbp - 0x7e], 0x5d
mov byte [rbp - 0x7d], 0x5d
mov byte [rbp - 0x7c], 0x53
movzx eax, byte [rsp + 0x79]
movzx eax, byte [rsp + 0x78]
test al, al
jne 0x140015bae
mov r9, rbx
nop word [rax + rax]
movzx ecx, byte [rsp + r9 + 0x79]
mov eax, 0x828cbfbf
sub ecx, 0x53
imul r8d, ecx, 0x3d
imul r8d
add edx, r8d
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xfb
sub r8d, eax
mov eax, 0x828cbfbf
add r8d, 0xfb
imul r8d
add edx, r8d
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xfb
sub r8d, eax
mov byte [rsp + r9 + 0x79], r8b
inc r9
cmp r9, 0xc
jb 0x140015b50
mov byte [rsp + 0x28], bl
mov byte [rsp + 0x29], 0x44
mov byte [rsp + 0x2a], 0xb0
mov byte [rsp + 0x2b], 0x62
mov byte [rsp + 0x2c], 7
mov byte [rsp + 0x2d], 0xd3
mov byte [rsp + 0x2e], 0x17
mov byte [rsp + 0x2f], 0x33
mov byte [rsp + 0x30], 0xb0
mov byte [rsp + 0x31], 0xb0
mov byte [rsp + 0x32], 0x78
movzx eax, byte [rsp + 0x29]
movzx eax, byte [rsp + 0x28]
test al, al
jne 0x140015c64
mov r9, rbx
nop word [rax + rax]
movzx eax, byte [rsp + r9 + 0x29]
mov r8d, 0x78
sub r8d, eax
mov eax, 0x828cbfbf
shl r8d, 4
imul r8d
add edx, r8d
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xfb
sub r8d, eax
mov eax, 0x828cbfbf
add r8d, 0xfb
imul r8d
add edx, r8d
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xfb
sub r8d, eax
mov byte [rsp + r9 + 0x29], r8b
inc r9
cmp r9, 0xa
jb 0x140015c00
mov byte [rbp - 0x28], bl
mov byte [rbp - 0x27], 0x68
mov byte [rbp - 0x26], 0xaf
mov byte [rbp - 0x25], 0x36
mov byte [rbp - 0x24], 0x71
mov byte [rbp - 0x23], 0xdf
mov byte [rbp - 0x22], 0x86
mov byte [rbp - 0x21], 0x7a
mov byte [rbp - 0x20], 0x21
mov byte [rbp - 0x1f], 0xb3
mov byte [rbp - 0x1e], 0xd8
mov byte [rbp - 0x1d], 0xaf
mov byte [rbp - 0x1c], 0xaf
mov byte [rbp - 0x1b], 0x65
movzx eax, byte [rbp - 0x27]
movzx eax, byte [rbp - 0x28]
test al, al
jne 0x140015d0e
mov r9, rbx
nop word [rax + rax]
movzx ecx, byte [rbp + r9 - 0x27]
mov eax, 0x828cbfbf
sub ecx, 0x65
imul r8d, ecx, 0x6e
imul r8d
add edx, r8d
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xfb
sub r8d, eax
mov eax, 0x828cbfbf
add r8d, 0xfb
imul r8d
add edx, r8d
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xfb
sub r8d, eax
mov byte [rbp + r9 - 0x27], r8b
inc r9
cmp r9, 0xd
jb 0x140015cb0
mov byte [rsp + 0x38], bl
mov byte [rsp + 0x39], 0x25
mov byte [rsp + 0x3a], 0x31
mov byte [rsp + 0x3b], 0x11
mov byte [rsp + 0x3c], 0x21
mov byte [rsp + 0x3d], 0x21
mov byte [rsp + 0x3e], 0xa0
mov byte [rsp + 0x3f], 0x11
mov byte [rsp + 0x40], 0x21
mov byte [rsp + 0x41], 0x21
mov byte [rsp + 0x42], 0x44
movzx eax, byte [rsp + 0x39]
movzx eax, byte [rsp + 0x38]
test al, al
jne 0x140015dba
mov r8, rbx
nop word [rax + rax]
movzx ecx, byte [rsp + r8 + 0x39]
mov eax, 0x44
sub eax, ecx
imul ecx, eax, 0x7d
mov eax, 0x828cbfbf
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xfb
sub ecx, eax
mov eax, 0x828cbfbf
add ecx, 0xfb
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xfb
sub ecx, eax
mov byte [rsp + r8 + 0x39], cl
inc r8
cmp r8, 0xa
jb 0x140015d60
mov qword [rsp + 0x158], rsi
mov qword [rsp + 0x168], r14
mov qword [rsp + 0x120], r15
movaps xmmword [rsp + 0x110], xmm6
movaps xmmword [rsp + 0x100], xmm7
test rdi, rdi
je 0x14001726a
movss xmm7, dword [0x1400864bc]
mov esi, 0xffffffff
movss xmm6, dword [0x1400864b8]
mov eax, 0x55555556
mov dword [rsp + 0x20], 0x7bf480
mov ecx, dword [rsp + 0x20]
imul ecx
lea r15d, [rsi + 3]
mov eax, edx
lea r14d, [rsi + 6]
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
je 0x140015e75
mov ecx, dword [rsp + 0x20]
add ecx, r15d
add ecx, edi
mov dword [rsp + 0x20], ecx
mov eax, dword [rsp + 0x20]
and eax, 0x80000003
jge 0x140015e48
dec eax
or eax, 0xfffffffc
inc eax
test eax, eax
jne 0x1400164d6
mov eax, dword [rsp + 0x20]
inc eax
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
and eax, 0x80000003
jge 0x140015e6c
dec eax
or eax, 0xfffffffc
inc eax
test eax, eax
je 0x140015e50
jmp 0x1400164d6
mov eax, dword [rsp + 0x20]
and eax, 0x80000001
mov eax, dword [rsp + 0x20]
je 0x140015ed8
mov ecx, r15d
sub ecx, edi
add ecx, eax
mov eax, 0x55555556
mov dword [rsp + 0x20], ecx
mov ecx, dword [rsp + 0x20]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
jne 0x1400164d6
nop dword [rax]
mov eax, dword [rsp + 0x20]
inc eax
mov dword [rsp + 0x20], eax
mov eax, 0x55555556
mov ecx, dword [rsp + 0x20]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
je 0x140015eb0
jmp 0x1400164d6
mov ecx, dword [rsp + 0x20]
and eax, 0x80000003
je 0x140015f54
add ecx, r15d
lea eax, [rdi + 3]
imul ecx, eax
mov dword [rsp + 0x20], ecx
mov eax, dword [rsp + 0x20]
and eax, 0x80000001
jge 0x140015f02
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
jne 0x1400164d6
nop word [rax + rax]
mov ecx, dword [rsp + 0x20]
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
cmp ecx, eax
mov eax, dword [rsp + 0x20]
je 0x140015f33
dec eax
jmp 0x140015f35
inc eax
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
and eax, 0x80000001
jge 0x140015f4b
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
je 0x140015f10
jmp 0x1400164d6
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
cmp ecx, eax
je 0x140015fe7
mov eax, dword [rsp + 0x20]
lea ecx, [rdi + 0x17]
add eax, 0xb
cdq
idiv ecx
mov dword [rsp + 0x20], eax
mov eax, 0x55555556
mov ecx, dword [rsp + 0x20]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
jne 0x1400164d6
nop dword [rax]
mov ecx, dword [rsp + 0x20]
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
cmp ecx, eax
mov eax, dword [rsp + 0x20]
je 0x140015fc3
inc eax
jmp 0x140015fc5
dec eax
mov dword [rsp + 0x20], eax
mov eax, 0x55555556
mov ecx, dword [rsp + 0x20]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
je 0x140015fa0
jmp 0x1400164d6
mov ecx, dword [rsp + 0x20]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 7
cmp ecx, eax
je 0x140016040
mov eax, dword [rsp + 0x20]
mov ecx, edi
or ecx, 1
xor ecx, eax
mov dword [rsp + 0x20], ecx
mov eax, dword [rsp + 0x20]
test al, 1
jne 0x1400164d6
mov ecx, dword [rsp + 0x20]
mov eax, dword [rsp + 0x20]
add ecx, ecx
or ecx, 3
xor eax, ecx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
test al, 1
je 0x140016020
jmp 0x1400164d6
mov ecx, dword [rsp + 0x20]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xb
cmp ecx, eax
je 0x1400160ef
movd xmm0, dword [rsp + 0x20]
mov eax, 0x55555556
imul edi
cvtdq2ps xmm0, xmm0
mov eax, edx
shr eax, 0x1f
add edx, eax
mulss xmm0, xmm7
mov eax, 0x2aaaaaab
cvttss2si ecx, xmm0
sub edx, ecx
mov dword [rsp + 0x20], edx
mov ecx, dword [rsp + 0x20]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
cmp ecx, r15d
je 0x1400164d6
nop word [rax + rax]
movd xmm0, dword [rsp + 0x20]
mov ecx, 7
cvtdq2ps xmm0, xmm0
divss xmm0, xmm6
cvttss2si eax, xmm0
sub ecx, eax
mov eax, 0x2aaaaaab
mov dword [rsp + 0x20], ecx
mov ecx, dword [rsp + 0x20]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
cmp ecx, r15d
jne 0x1400160b0
jmp 0x1400164d6
mov ecx, dword [rsp + 0x20]
mov eax, 0x4ec4ec4f
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xd
cmp ecx, eax
mov ecx, dword [rsp + 0x20]
je 0x140016158
mov r8d, dword [rsp + 0x20]
mov rdx, r14
imul ecx, edi
or r8d, 3
mov eax, ecx
and eax, 7
xor r8d, eax
lea eax, [r8*4]
xor eax, ecx
mov ecx, esi
mov dword [rsp + 0x20], eax
nop word [rax + rax]
mov eax, dword [rsp + 0x20]
add eax, ecx
add ecx, r8d
mov dword [rsp + 0x20], eax
sub rdx, 1
jne 0x140016140
jmp 0x1400164d6
mov eax, 0x8d3dcb09
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x1d
cmp ecx, eax
je 0x1400161b9
mov eax, 0x92492493
mov ecx, edi
imul edi
add edx, edi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 7
sub ecx, eax
mov eax, dword [rsp + 0x20]
imul ecx, eax
mov dword [rsp + 0x20], ecx
mov ecx, ebx
nop dword [rax]
mov eax, dword [rsp + 0x20]
add eax, eax
xor eax, ecx
add ecx, 0x1d
mov dword [rsp + 0x20], eax
cmp ecx, 0x57
jl 0x1400161a0
jmp 0x1400164d6
mov ecx, dword [rsp + 0x20]
mov eax, 0x84210843
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x1f
cmp ecx, eax
mov ecx, dword [rsp + 0x20]
je 0x14001620d
mov eax, dword [rsp + 0x20]
not eax
add eax, 0x1f
add eax, edi
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
and eax, 0x80000001
jge 0x1400161fc
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
jne 0x1400164d6
mov dword [rsp + 0x20], ecx
jmp 0x1400164d6
mov eax, 0xdd67c8a7
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x25
cmp ecx, eax
mov ecx, dword [rsp + 0x20]
je 0x14001626f
mov eax, dword [rsp + 0x20]
add ecx, 0x25
add eax, 0x25
add ecx, edi
xor eax, ecx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
cmp eax, 0x3fffffff
jge 0x1400164d6
nop dword [rax]
mov eax, dword [rsp + 0x20]
lea eax, [rax*2 - 0x25]
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
cmp eax, 0x3fffffff
jl 0x140016250
jmp 0x1400164d6
mov eax, 0x63e7063f
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x29
cmp ecx, eax
je 0x1400162f3
mov eax, 0x63e7063f
mov ecx, edi
imul edi
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x29
sub ecx, eax
mov eax, dword [rsp + 0x20]
add ecx, eax
mov eax, 0x63e7063f
mov dword [rsp + 0x20], ecx
mov ecx, dword [rsp + 0x20]
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x29
cmp ecx, eax
je 0x1400162d5
mov eax, dword [rsp + 0x20]
imul edx, eax, 0x29
mov dword [rsp + 0x20], edx
jmp 0x1400164d6
mov ecx, dword [rsp + 0x20]
mov eax, 0x63e7063f
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [rsp + 0x20], edx
jmp 0x1400164d6
mov ecx, dword [rsp + 0x20]
mov eax, 0x2fa0be83
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x2b
cmp ecx, eax
je 0x140016366
mov eax, dword [rsp + 0x20]
mov ecx, edi
add eax, 0x2b
mov dword [rsp + 0x20], eax
mov eax, 0x66666667
imul edi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
sub ecx, eax
mov eax, dword [rsp + 0x20]
inc ecx
cdq
idiv ecx
test edx, edx
je 0x1400164d6
mov eax, dword [rsp + 0x20]
cdq
idiv ecx
mov eax, dword [rsp + 0x20]
imul edx, ecx
add eax, edx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
cdq
idiv ecx
test edx, edx
jne 0x140016342
jmp 0x1400164d6
mov ecx, dword [rsp + 0x20]
mov eax, 0x4d4873ed
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x35
cmp ecx, eax
je 0x1400163db
mov eax, dword [rsp + 0x20]
mov ecx, edi
dec eax
mov dword [rsp + 0x20], eax
mov eax, 0x4d4873ed
imul edi
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x35
sub ecx, eax
mov eax, dword [rsp + 0x20]
inc ecx
cdq
idiv ecx
test edx, edx
je 0x1400164d6
nop word [rax + rax]
mov eax, dword [rsp + 0x20]
sub eax, 0x35
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
cdq
idiv ecx
test edx, edx
jne 0x1400163c0
jmp 0x1400164d6
mov ecx, dword [rsp + 0x20]
mov eax, 0x6bca1af3
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x13
cmp ecx, eax
je 0x1400164d6
mov ecx, dword [rsp + 0x20]
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
jne 0x140016438
call fcn.140063afc
mov ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
mov edx, dword [rsp + 0x20]
sub ecx, eax
inc edx
jmp 0x14001645a
call fcn.140063afc
mov ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
mov edx, dword [rsp + 0x20]
sub ecx, eax
not ecx
add edx, ecx
mov eax, 0x92492493
mov dword [rsp + 0x20], edx
mov ecx, dword [rsp + 0x20]
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 7
sub ecx, eax
cmp ecx, 4
je 0x1400164d6
nop dword [rax]
nop word [rax + rax]
mov ecx, dword [rsp + 0x20]
mov eax, 0x6bca1af3
add ecx, ecx
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x13
sub ecx, eax
mov eax, 0x92492493
mov dword [rsp + 0x20], ecx
mov r8d, dword [rsp + 0x20]
imul r8d
add edx, r8d
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 7
sub r8d, eax
cmp r8d, 4
jne 0x140016490
mov rcx, rdi
call qword [0x140090368]
mov rdi, rax
mov dword [rsp + 0x20], 0x7bf480
mov ecx, dword [rsp + 0x20]
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
je 0x140016555
mov ecx, dword [rsp + 0x20]
add ecx, r15d
add ecx, edi
mov dword [rsp + 0x20], ecx
mov eax, dword [rsp + 0x20]
and eax, 0x80000003
jge 0x140016522
dec eax
or eax, 0xfffffffc
inc eax
test eax, eax
jne 0x140016bb1
nop word [rax + rax]
mov eax, dword [rsp + 0x20]
inc eax
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
and eax, 0x80000003
jge 0x14001654c
dec eax
or eax, 0xfffffffc
inc eax
test eax, eax
je 0x140016530
jmp 0x140016bb1
mov eax, dword [rsp + 0x20]
and eax, 0x80000001
mov eax, dword [rsp + 0x20]
je 0x1400165b8
mov ecx, r15d
sub ecx, edi
add ecx, eax
mov eax, 0x55555556
mov dword [rsp + 0x20], ecx
mov ecx, dword [rsp + 0x20]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
jne 0x140016bb1
nop dword [rax]
mov eax, dword [rsp + 0x20]
inc eax
mov dword [rsp + 0x20], eax
mov eax, 0x55555556
mov ecx, dword [rsp + 0x20]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
je 0x140016590
jmp 0x140016bb1
mov ecx, dword [rsp + 0x20]
and eax, 0x80000003
je 0x140016634
add ecx, r15d
lea eax, [rdi + 3]
imul ecx, eax
mov dword [rsp + 0x20], ecx
mov eax, dword [rsp + 0x20]
and eax, 0x80000001
jge 0x1400165e2
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
jne 0x140016bb1
nop word [rax + rax]
mov ecx, dword [rsp + 0x20]
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
cmp ecx, eax
mov eax, dword [rsp + 0x20]
je 0x140016613
dec eax
jmp 0x140016615
inc eax
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
and eax, 0x80000001
jge 0x14001662b
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
je 0x1400165f0
jmp 0x140016bb1
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
cmp ecx, eax
je 0x1400166c7
mov eax, dword [rsp + 0x20]
lea ecx, [rdi + 0x17]
add eax, 0xb
cdq
idiv ecx
mov dword [rsp + 0x20], eax
mov eax, 0x55555556
mov ecx, dword [rsp + 0x20]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
jne 0x140016bb1
nop dword [rax]
mov ecx, dword [rsp + 0x20]
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
cmp ecx, eax
mov eax, dword [rsp + 0x20]
je 0x1400166a3
inc eax
jmp 0x1400166a5
dec eax
mov dword [rsp + 0x20], eax
mov eax, 0x55555556
mov ecx, dword [rsp + 0x20]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
je 0x140016680
jmp 0x140016bb1
mov ecx, dword [rsp + 0x20]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 7
cmp ecx, eax
je 0x140016720
mov eax, dword [rsp + 0x20]
mov ecx, edi
or ecx, 1
xor ecx, eax
mov dword [rsp + 0x20], ecx
mov eax, dword [rsp + 0x20]
test al, 1
jne 0x140016bb1
mov ecx, dword [rsp + 0x20]
mov eax, dword [rsp + 0x20]
add ecx, ecx
or ecx, 3
xor eax, ecx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
test al, 1
je 0x140016700
jmp 0x140016bb1
mov ecx, dword [rsp + 0x20]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xb
cmp ecx, eax
je 0x1400167cf
movd xmm0, dword [rsp + 0x20]
mov eax, 0x55555556
imul edi
cvtdq2ps xmm0, xmm0
mov eax, edx
shr eax, 0x1f
add edx, eax
mulss xmm0, xmm7
mov eax, 0x2aaaaaab
cvttss2si ecx, xmm0
sub edx, ecx
mov dword [rsp + 0x20], edx
mov ecx, dword [rsp + 0x20]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
cmp ecx, r15d
je 0x140016bb1
nop word [rax + rax]
movd xmm0, dword [rsp + 0x20]
mov ecx, 7
cvtdq2ps xmm0, xmm0
divss xmm0, xmm6
cvttss2si eax, xmm0
sub ecx, eax
mov eax, 0x2aaaaaab
mov dword [rsp + 0x20], ecx
mov ecx, dword [rsp + 0x20]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
cmp ecx, r15d
jne 0x140016790
jmp 0x140016bb1
mov ecx, dword [rsp + 0x20]
mov eax, 0x4ec4ec4f
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xd
cmp ecx, eax
mov ecx, dword [rsp + 0x20]
je 0x140016838
mov r8d, dword [rsp + 0x20]
mov rdx, r14
imul ecx, edi
or r8d, 3
mov eax, ecx
and eax, 7
xor r8d, eax
lea eax, [r8*4]
xor eax, ecx
mov ecx, esi
mov dword [rsp + 0x20], eax
nop word [rax + rax]
mov eax, dword [rsp + 0x20]
add eax, ecx
add ecx, r8d
mov dword [rsp + 0x20], eax
sub rdx, 1
jne 0x140016820
jmp 0x140016bb1
mov eax, 0x8d3dcb09
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x1d
cmp ecx, eax
je 0x140016899
mov eax, 0x92492493
mov ecx, edi
imul edi
add edx, edi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 7
sub ecx, eax
mov eax, dword [rsp + 0x20]
imul ecx, eax
mov dword [rsp + 0x20], ecx
mov ecx, ebx
nop dword [rax]
mov eax, dword [rsp + 0x20]
add eax, eax
xor eax, ecx
add ecx, 0x1d
mov dword [rsp + 0x20], eax
cmp ecx, 0x57
jl 0x140016880
jmp 0x140016bb1
mov ecx, dword [rsp + 0x20]
mov eax, 0x84210843
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x1f
cmp ecx, eax
mov ecx, dword [rsp + 0x20]
je 0x1400168ed
mov eax, dword [rsp + 0x20]
not eax
add eax, 0x1f
add eax, edi
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
and eax, 0x80000001
jge 0x1400168dc
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
jne 0x140016bb1
mov dword [rsp + 0x20], ecx
jmp 0x140016bb1
mov eax, 0xdd67c8a7
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x25
cmp ecx, eax
mov ecx, dword [rsp + 0x20]
je 0x14001694f
mov eax, dword [rsp + 0x20]
add ecx, 0x25
add eax, 0x25
add ecx, edi
xor eax, ecx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
cmp eax, 0x3fffffff
jge 0x140016bb1
nop dword [rax]
mov eax, dword [rsp + 0x20]
lea eax, [rax*2 - 0x25]
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
cmp eax, 0x3fffffff
jl 0x140016930
jmp 0x140016bb1
mov eax, 0x63e7063f
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x29
cmp ecx, eax
je 0x1400169d3
mov eax, 0x63e7063f
mov ecx, edi
imul edi
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x29
sub ecx, eax
mov eax, dword [rsp + 0x20]
add ecx, eax
mov eax, 0x63e7063f
mov dword [rsp + 0x20], ecx
mov ecx, dword [rsp + 0x20]
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x29
cmp ecx, eax
je 0x1400169b5
mov eax, dword [rsp + 0x20]
imul edx, eax, 0x29
mov dword [rsp + 0x20], edx
jmp 0x140016bb1
mov ecx, dword [rsp + 0x20]
mov eax, 0x63e7063f
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [rsp + 0x20], edx
jmp 0x140016bb1
mov ecx, dword [rsp + 0x20]
mov eax, 0x2fa0be83
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x2b
cmp ecx, eax
je 0x140016a46
mov eax, dword [rsp + 0x20]
mov ecx, edi
add eax, 0x2b
mov dword [rsp + 0x20], eax
mov eax, 0x66666667
imul edi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
sub ecx, eax
mov eax, dword [rsp + 0x20]
inc ecx
cdq
idiv ecx
test edx, edx
je 0x140016bb1
mov eax, dword [rsp + 0x20]
cdq
idiv ecx
mov eax, dword [rsp + 0x20]
imul edx, ecx
add eax, edx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
cdq
idiv ecx
test edx, edx
jne 0x140016a22
jmp 0x140016bb1
mov ecx, dword [rsp + 0x20]
mov eax, 0x4d4873ed
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x35
cmp ecx, eax
je 0x140016abb
mov eax, dword [rsp + 0x20]
mov ecx, edi
dec eax
mov dword [rsp + 0x20], eax
mov eax, 0x4d4873ed
imul edi
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x35
sub ecx, eax
mov eax, dword [rsp + 0x20]
inc ecx
cdq
idiv ecx
test edx, edx
je 0x140016bb1
nop word [rax + rax]
mov eax, dword [rsp + 0x20]
sub eax, 0x35
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
cdq
idiv ecx
test edx, edx
jne 0x140016aa0
jmp 0x140016bb1
mov ecx, dword [rsp + 0x20]
mov eax, 0x6bca1af3
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x13
cmp ecx, eax
je 0x140016bb1
mov ecx, dword [rsp + 0x20]
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
jne 0x140016b18
call fcn.140063afc
mov ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
mov edx, dword [rsp + 0x20]
sub ecx, eax
inc edx
jmp 0x140016b3a
call fcn.140063afc
mov ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
mov edx, dword [rsp + 0x20]
sub ecx, eax
not ecx
add edx, ecx
mov eax, 0x92492493
mov dword [rsp + 0x20], edx
mov ecx, dword [rsp + 0x20]
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 7
sub ecx, eax
cmp ecx, 4
je 0x140016bb1
nop dword [rax]
nop word [rax + rax]
mov ecx, dword [rsp + 0x20]
mov eax, 0x6bca1af3
add ecx, ecx
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x13
sub ecx, eax
mov eax, 0x92492493
mov dword [rsp + 0x20], ecx
mov ecx, dword [rsp + 0x20]
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 7
sub ecx, eax
cmp ecx, 4
jne 0x140016b70
test rdi, rdi
je case.default.0x140017288
lea r8, [rbp - 0x18]
mov edx, r12d
mov rcx, rdi
call fcn.1400109b0
mov qword [rbp - 0x18], rax
mov eax, 0x55555556
mov dword [rsp + 0x20], 0x7bf480
mov ecx, dword [rsp + 0x20]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
je 0x140016c49
mov ecx, dword [rsp + 0x20]
mov eax, dword [rbp - 0x18]
add eax, r15d
add ecx, eax
mov dword [rsp + 0x20], ecx
mov eax, dword [rsp + 0x20]
and eax, 0x80000003
jge 0x140016c10
dec eax
or eax, 0xfffffffc
inc eax
test eax, eax
jne 0x1400180f1
nop dword [rax + rax]
mov eax, dword [rsp + 0x20]
inc eax
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
and eax, 0x80000003
jge 0x140016c3c
dec eax
or eax, 0xfffffffc
inc eax
test eax, eax
je 0x140016c20
mov rax, qword [rbp - 0x18]
jmp 0x1400180f9
mov eax, dword [rsp + 0x20]
and eax, 0x80000001
mov eax, dword [rsp + 0x20]
je 0x140016cac
sub r15d, dword [rbp - 0x18]
add eax, r15d
mov dword [rsp + 0x20], eax
mov eax, 0x55555556
mov ecx, dword [rsp + 0x20]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
jne 0x1400180f1
mov eax, dword [rsp + 0x20]
inc eax
mov dword [rsp + 0x20], eax
mov eax, 0x55555556
mov ecx, dword [rsp + 0x20]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
je 0x140016c80
mov rax, qword [rbp - 0x18]
jmp 0x1400180f9
mov ecx, dword [rsp + 0x20]
and eax, 0x80000003
je 0x140016d29
mov eax, dword [rbp - 0x18]
add ecx, r15d
add eax, 3
imul eax, ecx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
and eax, 0x80000001
jge 0x140016cd9
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
jne 0x1400180f1
mov ecx, dword [rsp + 0x20]
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
cmp ecx, eax
mov eax, dword [rsp + 0x20]
je 0x140016d04
dec eax
jmp 0x140016d06
inc eax
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
and eax, 0x80000001
jge 0x140016d1c
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
je 0x140016ce1
mov rax, qword [rbp - 0x18]
jmp 0x1400180f9
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
cmp ecx, eax
je 0x140016dcb
mov eax, dword [rsp + 0x20]
mov r8d, dword [rbp - 0x18]
add eax, 0xb
cdq
add r8d, 0x17
idiv r8d
mov dword [rsp + 0x20], eax
mov eax, 0x55555556
mov ecx, dword [rsp + 0x20]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
jne 0x1400180f1
nop dword [rax + rax]
mov ecx, dword [rsp + 0x20]
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
cmp ecx, eax
mov eax, dword [rsp + 0x20]
je 0x140016da3
inc eax
jmp 0x140016da5
dec eax
mov dword [rsp + 0x20], eax
mov eax, 0x55555556
mov ecx, dword [rsp + 0x20]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
je 0x140016d80
mov rax, qword [rbp - 0x18]
jmp 0x1400180f9
mov ecx, dword [rsp + 0x20]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 7
cmp ecx, eax
je 0x140016e34
mov eax, dword [rsp + 0x20]
mov ecx, dword [rbp - 0x18]
or ecx, 1
xor eax, ecx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
test al, 1
jne 0x1400180f1
nop word [rax + rax]
mov ecx, dword [rsp + 0x20]
mov eax, dword [rsp + 0x20]
add ecx, ecx
or ecx, 3
xor eax, ecx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
test al, 1
je 0x140016e10
mov rax, qword [rbp - 0x18]
jmp 0x1400180f9
mov r8d, dword [rsp + 0x20]
mov eax, 0x2e8ba2e9
imul r8d
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
imul ecx, edx, 0xb
cmp r8d, ecx
je 0x140016ee3
movd xmm0, dword [rsp + 0x20]
mov eax, 0x55555556
imul dword [rbp - 0x18]
cvtdq2ps xmm0, xmm0
mov eax, edx
shr eax, 0x1f
add edx, eax
mulss xmm0, xmm7
mov eax, 0x2aaaaaab
cvttss2si ecx, xmm0
sub edx, ecx
mov dword [rsp + 0x20], edx
mov ecx, dword [rsp + 0x20]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
cmp ecx, r15d
je 0x1400180f1
nop
movd xmm0, dword [rsp + 0x20]
mov ecx, 7
cvtdq2ps xmm0, xmm0
divss xmm0, xmm6
cvttss2si eax, xmm0
sub ecx, eax
mov eax, 0x2aaaaaab
mov dword [rsp + 0x20], ecx
mov ecx, dword [rsp + 0x20]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
cmp ecx, r15d
jne 0x140016ea0
mov rax, qword [rbp - 0x18]
jmp 0x1400180f9
mov ecx, dword [rsp + 0x20]
mov eax, 0x4ec4ec4f
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xd
cmp ecx, eax
je 0x140016f4b
mov ecx, dword [rsp + 0x20]
imul ecx, dword [rbp - 0x18]
mov edx, dword [rsp + 0x20]
or edx, 3
mov eax, ecx
and eax, 7
xor edx, eax
lea eax, [rdx*4]
xor eax, ecx
mov dword [rsp + 0x20], eax
nop dword [rax]
nop word [rax + rax]
mov eax, dword [rsp + 0x20]
add eax, esi
add esi, edx
mov dword [rsp + 0x20], eax
sub r14, 1
jne 0x140016f30
mov rax, qword [rbp - 0x18]
jmp 0x1400180f9
mov r8d, dword [rsp + 0x20]
mov eax, 0x8d3dcb09
imul r8d
add edx, r8d
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
imul ecx, edx, 0x1d
cmp r8d, ecx
je 0x140016fbd
mov rcx, qword [rbp - 0x18]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 7
sub ecx, eax
mov eax, dword [rsp + 0x20]
imul eax, ecx
mov dword [rsp + 0x20], eax
nop dword [rax]
nop dword [rax + rax]
mov eax, dword [rsp + 0x20]
add eax, eax
xor eax, ebx
add ebx, 0x1d
mov dword [rsp + 0x20], eax
cmp ebx, 0x57
jl 0x140016fa0
mov rax, qword [rbp - 0x18]
jmp 0x1400180f9
mov ecx, dword [rsp + 0x20]
mov eax, 0x84210843
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x1f
cmp ecx, eax
jne 0x140017ddb
mov ecx, dword [rsp + 0x20]
mov eax, 0xdd67c8a7
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x25
cmp ecx, eax
mov ecx, dword [rsp + 0x20]
je 0x140017053
mov eax, dword [rsp + 0x20]
mov edx, dword [rbp - 0x18]
add eax, 0x25
add edx, 0x25
add edx, ecx
xor eax, edx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
cmp eax, 0x3fffffff
jge 0x1400180f1
nop word [rax + rax]
mov eax, dword [rsp + 0x20]
lea eax, [rax*2 - 0x25]
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
cmp eax, 0x3fffffff
jl 0x140017030
mov rax, qword [rbp - 0x18]
jmp 0x1400180f9
mov eax, 0x63e7063f
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x29
cmp ecx, eax
jne 0x140017e9b
mov r8d, dword [rsp + 0x20]
mov eax, 0x2fa0be83
imul r8d
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
imul ecx, edx, 0x2b
cmp r8d, ecx
je 0x1400170f8
mov ecx, dword [rsp + 0x20]
mov eax, 0x66666667
add ecx, 0x2b
mov dword [rsp + 0x20], ecx
mov rcx, qword [rbp - 0x18]
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
sub ecx, eax
mov eax, dword [rsp + 0x20]
inc ecx
cdq
idiv ecx
test edx, edx
je 0x1400180f1
nop dword [rax]
nop word [rax + rax]
mov eax, dword [rsp + 0x20]
cdq
idiv ecx
mov eax, dword [rsp + 0x20]
imul edx, ecx
add eax, edx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
cdq
idiv ecx
test edx, edx
jne 0x1400170d0
mov rax, qword [rbp - 0x18]
jmp 0x1400180f9
mov r8d, dword [rsp + 0x20]
mov eax, 0x4d4873ed
imul r8d
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
imul ecx, edx, 0x35
cmp r8d, ecx
mov ecx, dword [rsp + 0x20]
je 0x14001716f
dec ecx
mov eax, 0x4d4873ed
mov dword [rsp + 0x20], ecx
mov rcx, qword [rbp - 0x18]
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x35
sub ecx, eax
mov eax, dword [rsp + 0x20]
inc ecx
cdq
idiv ecx
test edx, edx
je 0x1400180f1
nop dword [rax]
mov eax, dword [rsp + 0x20]
sub eax, 0x35
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
cdq
idiv ecx
test edx, edx
jne 0x140017150
mov rax, qword [rbp - 0x18]
jmp 0x1400180f9
mov eax, 0x6bca1af3
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x13
cmp ecx, eax
je 0x1400180f1
mov ecx, dword [rsp + 0x20]
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
jne 0x1400171cb
call fcn.140063afc
mov r8d, eax
mov eax, 0x66666667
imul r8d
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
lea ecx, [rdx + rdx*4]
sub r8d, ecx
mov ecx, dword [rsp + 0x20]
inc ecx
jmp 0x1400171f1
call fcn.140063afc
mov r8d, eax
mov eax, 0x66666667
imul r8d
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
lea ecx, [rdx + rdx*4]
sub r8d, ecx
mov ecx, dword [rsp + 0x20]
not r8d
add ecx, r8d
mov eax, 0x92492493
mov dword [rsp + 0x20], ecx
mov ecx, dword [rsp + 0x20]
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 7
sub ecx, eax
cmp ecx, 4
je 0x1400180f1
nop dword [rax]
mov ecx, dword [rsp + 0x20]
mov eax, 0x6bca1af3
add ecx, ecx
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x13
sub ecx, eax
mov eax, 0x92492493
mov dword [rsp + 0x20], ecx
mov ecx, dword [rsp + 0x20]
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 7
sub ecx, eax
cmp ecx, 4
jne 0x140017220
mov rax, qword [rbp - 0x18]
jmp 0x1400180f9
lea eax, [r10 - 0xf]
cmp eax, 0xb
ja case.default.0x140017288
lea rdx, [0x140000000]
mov ecx, dword [rdx + rax*4 + 0x1813c]
add rcx, rdx
jmp rcx
lea rcx, [rbp - 0x77]
jmp 0x1400172d6
lea rcx, [rbp - 0x67]
jmp 0x1400172d6
lea rcx, [rbp - 0x57]
jmp 0x1400172d6
lea rcx, [rbp - 0x47]
jmp 0x1400172d6
lea rcx, [rbp - 0x37]
jmp 0x1400172d6
lea rcx, [rsp + 0x49]
jmp 0x1400172d6
lea rcx, [rsp + 0x59]
jmp 0x1400172d6
lea rcx, [rsp + 0x69]
jmp 0x1400172d6
lea rcx, [rsp + 0x79]
jmp 0x1400172d6
lea rcx, [rsp + 0x29]
jmp 0x1400172d6
lea rcx, [rbp - 0x27]
jmp 0x1400172d6
lea rcx, [rsp + 0x39]
call qword [0x140090368]
movss xmm7, dword [0x1400864bc]
mov esi, 0xffffffff
movss xmm6, dword [0x1400864b8]
mov rdi, rax
mov dword [rsp + 0x20], 0x7bf480
mov eax, 0x55555556
mov r8d, dword [rsp + 0x20]
imul r8d
lea r15d, [rsi + 3]
mov ecx, edx
lea r14d, [rsi + 6]
shr ecx, 0x1f
add edx, ecx
lea ecx, [rdx + rdx*2]
cmp r8d, ecx
je 0x140017375
mov ecx, dword [rsp + 0x20]
add ecx, r15d
add ecx, edi
mov dword [rsp + 0x20], ecx
mov eax, dword [rsp + 0x20]
and eax, 0x80000003
jge 0x14001733f
dec eax
or eax, 0xfffffffc
inc eax
test eax, eax
jne 0x1400179d1
nop word [rax + rax]
mov eax, dword [rsp + 0x20]
inc eax
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
and eax, 0x80000003
jge 0x14001736c
dec eax
or eax, 0xfffffffc
inc eax
test eax, eax
je 0x140017350
jmp 0x1400179d1
mov eax, dword [rsp + 0x20]
and eax, 0x80000001
mov eax, dword [rsp + 0x20]
je 0x1400173d8
mov ecx, r15d
sub ecx, edi
add ecx, eax
mov eax, 0x55555556
mov dword [rsp + 0x20], ecx
mov ecx, dword [rsp + 0x20]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
jne 0x1400179d1
nop dword [rax]
mov eax, dword [rsp + 0x20]
inc eax
mov dword [rsp + 0x20], eax
mov eax, 0x55555556
mov ecx, dword [rsp + 0x20]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
je 0x1400173b0
jmp 0x1400179d1
mov ecx, dword [rsp + 0x20]
and eax, 0x80000003
je 0x140017454
add ecx, r15d
lea eax, [rdi + 3]
imul ecx, eax
mov dword [rsp + 0x20], ecx
mov eax, dword [rsp + 0x20]
and eax, 0x80000001
jge 0x140017402
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
jne 0x1400179d1
nop word [rax + rax]
mov ecx, dword [rsp + 0x20]
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
cmp ecx, eax
mov eax, dword [rsp + 0x20]
je 0x140017433
dec eax
jmp 0x140017435
inc eax
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
and eax, 0x80000001
jge 0x14001744b
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
je 0x140017410
jmp 0x1400179d1
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
cmp ecx, eax
je 0x1400174e7
mov eax, dword [rsp + 0x20]
lea ecx, [rdi + 0x17]
add eax, 0xb
cdq
idiv ecx
mov dword [rsp + 0x20], eax
mov eax, 0x55555556
mov ecx, dword [rsp + 0x20]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
jne 0x1400179d1
nop dword [rax]
mov ecx, dword [rsp + 0x20]
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
cmp ecx, eax
mov eax, dword [rsp + 0x20]
je 0x1400174c3
inc eax
jmp 0x1400174c5
dec eax
mov dword [rsp + 0x20], eax
mov eax, 0x55555556
mov ecx, dword [rsp + 0x20]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
je 0x1400174a0
jmp 0x1400179d1
mov ecx, dword [rsp + 0x20]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 7
cmp ecx, eax
je 0x140017540
mov eax, dword [rsp + 0x20]
mov ecx, edi
or ecx, 1
xor ecx, eax
mov dword [rsp + 0x20], ecx
mov eax, dword [rsp + 0x20]
test al, 1
jne 0x1400179d1
mov ecx, dword [rsp + 0x20]
mov eax, dword [rsp + 0x20]
add ecx, ecx
or ecx, 3
xor eax, ecx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
test al, 1
je 0x140017520
jmp 0x1400179d1
mov ecx, dword [rsp + 0x20]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xb
cmp ecx, eax
je 0x1400175ef
movd xmm0, dword [rsp + 0x20]
mov eax, 0x55555556
imul edi
cvtdq2ps xmm0, xmm0
mov eax, edx
shr eax, 0x1f
add edx, eax
mulss xmm0, xmm7
mov eax, 0x2aaaaaab
cvttss2si ecx, xmm0
sub edx, ecx
mov dword [rsp + 0x20], edx
mov ecx, dword [rsp + 0x20]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
cmp ecx, r15d
je 0x1400179d1
nop word [rax + rax]
movd xmm0, dword [rsp + 0x20]
mov ecx, 7
cvtdq2ps xmm0, xmm0
divss xmm0, xmm6
cvttss2si eax, xmm0
sub ecx, eax
mov eax, 0x2aaaaaab
mov dword [rsp + 0x20], ecx
mov ecx, dword [rsp + 0x20]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
cmp ecx, r15d
jne 0x1400175b0
jmp 0x1400179d1
mov ecx, dword [rsp + 0x20]
mov eax, 0x4ec4ec4f
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xd
cmp ecx, eax
mov ecx, dword [rsp + 0x20]
je 0x140017658
mov r8d, dword [rsp + 0x20]
mov rdx, r14
imul ecx, edi
or r8d, 3
mov eax, ecx
and eax, 7
xor r8d, eax
lea eax, [r8*4]
xor eax, ecx
mov ecx, esi
mov dword [rsp + 0x20], eax
nop word [rax + rax]
mov eax, dword [rsp + 0x20]
add eax, ecx
add ecx, r8d
mov dword [rsp + 0x20], eax
sub rdx, 1
jne 0x140017640
jmp 0x1400179d1
mov eax, 0x8d3dcb09
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x1d
cmp ecx, eax
je 0x1400176b9
mov eax, 0x92492493
mov ecx, edi
imul edi
add edx, edi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 7
sub ecx, eax
mov eax, dword [rsp + 0x20]
imul ecx, eax
mov dword [rsp + 0x20], ecx
mov ecx, ebx
nop dword [rax]
mov eax, dword [rsp + 0x20]
add eax, eax
xor eax, ecx
add ecx, 0x1d
mov dword [rsp + 0x20], eax
cmp ecx, 0x57
jl 0x1400176a0
jmp 0x1400179d1
mov ecx, dword [rsp + 0x20]
mov eax, 0x84210843
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x1f
cmp ecx, eax
mov ecx, dword [rsp + 0x20]
je 0x14001770d
mov eax, dword [rsp + 0x20]
not eax
add eax, 0x1f
add eax, edi
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
and eax, 0x80000001
jge 0x1400176fc
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
jne 0x1400179d1
mov dword [rsp + 0x20], ecx
jmp 0x1400179d1
mov eax, 0xdd67c8a7
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x25
cmp ecx, eax
mov ecx, dword [rsp + 0x20]
je 0x14001776f
mov eax, dword [rsp + 0x20]
add ecx, 0x25
add eax, 0x25
add ecx, edi
xor eax, ecx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
cmp eax, 0x3fffffff
jge 0x1400179d1
nop dword [rax]
mov eax, dword [rsp + 0x20]
lea eax, [rax*2 - 0x25]
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
cmp eax, 0x3fffffff
jl 0x140017750
jmp 0x1400179d1
mov eax, 0x63e7063f
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x29
cmp ecx, eax
je 0x1400177f3
mov eax, 0x63e7063f
mov ecx, edi
imul edi
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x29
sub ecx, eax
mov eax, dword [rsp + 0x20]
add ecx, eax
mov eax, 0x63e7063f
mov dword [rsp + 0x20], ecx
mov ecx, dword [rsp + 0x20]
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x29
cmp ecx, eax
je 0x1400177d5
mov eax, dword [rsp + 0x20]
imul edx, eax, 0x29
mov dword [rsp + 0x20], edx
jmp 0x1400179d1
mov ecx, dword [rsp + 0x20]
mov eax, 0x63e7063f
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [rsp + 0x20], edx
jmp 0x1400179d1
mov ecx, dword [rsp + 0x20]
mov eax, 0x2fa0be83
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x2b
cmp ecx, eax
je 0x140017866
mov eax, dword [rsp + 0x20]
mov ecx, edi
add eax, 0x2b
mov dword [rsp + 0x20], eax
mov eax, 0x66666667
imul edi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
sub ecx, eax
mov eax, dword [rsp + 0x20]
inc ecx
cdq
idiv ecx
test edx, edx
je 0x1400179d1
mov eax, dword [rsp + 0x20]
cdq
idiv ecx
mov eax, dword [rsp + 0x20]
imul edx, ecx
add eax, edx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
cdq
idiv ecx
test edx, edx
jne 0x140017842
jmp 0x1400179d1
mov ecx, dword [rsp + 0x20]
mov eax, 0x4d4873ed
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x35
cmp ecx, eax
je 0x1400178db
mov eax, dword [rsp + 0x20]
mov ecx, edi
dec eax
mov dword [rsp + 0x20], eax
mov eax, 0x4d4873ed
imul edi
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x35
sub ecx, eax
mov eax, dword [rsp + 0x20]
inc ecx
cdq
idiv ecx
test edx, edx
je 0x1400179d1
nop word [rax + rax]
mov eax, dword [rsp + 0x20]
sub eax, 0x35
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
cdq
idiv ecx
test edx, edx
jne 0x1400178c0
jmp 0x1400179d1
mov ecx, dword [rsp + 0x20]
mov eax, 0x6bca1af3
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x13
cmp ecx, eax
je 0x1400179d1
mov ecx, dword [rsp + 0x20]
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
jne 0x14001793b
call fcn.140063afc
mov r8d, eax
mov eax, 0x66666667
imul r8d
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
lea ecx, [rdx + rdx*4]
sub r8d, ecx
mov ecx, dword [rsp + 0x20]
inc ecx
jmp 0x140017961
call fcn.140063afc
mov r8d, eax
mov eax, 0x66666667
imul r8d
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
lea ecx, [rdx + rdx*4]
sub r8d, ecx
mov ecx, dword [rsp + 0x20]
not r8d
add ecx, r8d
mov eax, 0x92492493
mov dword [rsp + 0x20], ecx
mov ecx, dword [rsp + 0x20]
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 7
sub ecx, eax
cmp ecx, 4
je 0x1400179d1
nop dword [rax]
mov ecx, dword [rsp + 0x20]
mov eax, 0x6bca1af3
add ecx, ecx
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x13
sub ecx, eax
mov eax, 0x92492493
mov dword [rsp + 0x20], ecx
mov ecx, dword [rsp + 0x20]
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 7
sub ecx, eax
cmp ecx, 4
jne 0x140017990
test rdi, rdi
je case.default.0x140017288
lea r8, [rbp - 0x18]
mov edx, r12d
mov rcx, rdi
call fcn.1400109b0
mov qword [rbp - 0x18], rax
mov eax, 0x55555556
mov dword [rsp + 0x20], 0x7bf480
mov ecx, dword [rsp + 0x20]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
je 0x140017a69
mov ecx, dword [rsp + 0x20]
mov eax, dword [rbp - 0x18]
add eax, r15d
add ecx, eax
mov dword [rsp + 0x20], ecx
mov eax, dword [rsp + 0x20]
and eax, 0x80000003
jge 0x140017a30
dec eax
or eax, 0xfffffffc
inc eax
test eax, eax
jne 0x1400180f1
nop dword [rax + rax]
mov eax, dword [rsp + 0x20]
inc eax
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
and eax, 0x80000003
jge 0x140017a5c
dec eax
or eax, 0xfffffffc
inc eax
test eax, eax
je 0x140017a40
mov rax, qword [rbp - 0x18]
jmp 0x1400180f9
mov eax, dword [rsp + 0x20]
and eax, 0x80000001
mov eax, dword [rsp + 0x20]
je 0x140017acc
sub r15d, dword [rbp - 0x18]
add eax, r15d
mov dword [rsp + 0x20], eax
mov eax, 0x55555556
mov ecx, dword [rsp + 0x20]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
jne 0x1400180f1
mov eax, dword [rsp + 0x20]
inc eax
mov dword [rsp + 0x20], eax
mov eax, 0x55555556
mov ecx, dword [rsp + 0x20]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
je 0x140017aa0
mov rax, qword [rbp - 0x18]
jmp 0x1400180f9
mov ecx, dword [rsp + 0x20]
and eax, 0x80000003
je 0x140017b49
mov eax, dword [rbp - 0x18]
add ecx, r15d
add eax, 3
imul eax, ecx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
and eax, 0x80000001
jge 0x140017af9
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
jne 0x1400180f1
mov ecx, dword [rsp + 0x20]
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
cmp ecx, eax
mov eax, dword [rsp + 0x20]
je 0x140017b24
dec eax
jmp 0x140017b26
inc eax
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
and eax, 0x80000001
jge 0x140017b3c
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
je 0x140017b01
mov rax, qword [rbp - 0x18]
jmp 0x1400180f9
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
cmp ecx, eax
je 0x140017bdc
mov eax, dword [rsp + 0x20]
mov ecx, dword [rbp - 0x18]
add eax, 0xb
cdq
add ecx, 0x17
idiv ecx
mov dword [rsp + 0x20], eax
mov eax, 0x55555556
mov ecx, dword [rsp + 0x20]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
jne 0x1400180f1
mov ecx, dword [rsp + 0x20]
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
cmp ecx, eax
mov eax, dword [rsp + 0x20]
je 0x140017bb4
inc eax
jmp 0x140017bb6
dec eax
mov dword [rsp + 0x20], eax
mov eax, 0x55555556
mov ecx, dword [rsp + 0x20]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
je 0x140017b91
mov rax, qword [rbp - 0x18]
jmp 0x1400180f9
mov ecx, dword [rsp + 0x20]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 7
cmp ecx, eax
je 0x140017c44
mov eax, dword [rsp + 0x20]
mov ecx, dword [rbp - 0x18]
or ecx, 1
xor eax, ecx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
test al, 1
jne 0x1400180f1
nop word [rax + rax]
mov ecx, dword [rsp + 0x20]
mov eax, dword [rsp + 0x20]
add ecx, ecx
or ecx, 3
xor eax, ecx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
test al, 1
je 0x140017c20
mov rax, qword [rbp - 0x18]
jmp 0x1400180f9
mov ecx, dword [rsp + 0x20]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xb
cmp ecx, eax
je 0x140017cf3
movd xmm0, dword [rsp + 0x20]
mov eax, 0x55555556
imul dword [rbp - 0x18]
cvtdq2ps xmm0, xmm0
mov eax, edx
shr eax, 0x1f
add edx, eax
mulss xmm0, xmm7
mov eax, 0x2aaaaaab
cvttss2si ecx, xmm0
sub edx, ecx
mov dword [rsp + 0x20], edx
mov ecx, dword [rsp + 0x20]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
cmp ecx, r15d
je 0x1400180f1
nop dword [rax + rax]
movd xmm0, dword [rsp + 0x20]
mov ecx, 7
cvtdq2ps xmm0, xmm0
divss xmm0, xmm6
cvttss2si eax, xmm0
sub ecx, eax
mov eax, 0x2aaaaaab
mov dword [rsp + 0x20], ecx
mov ecx, dword [rsp + 0x20]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
cmp ecx, r15d
jne 0x140017cb0
mov rax, qword [rbp - 0x18]
jmp 0x1400180f9
mov ecx, dword [rsp + 0x20]
mov eax, 0x4ec4ec4f
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xd
cmp ecx, eax
mov ecx, dword [rsp + 0x20]
je 0x140017d5b
imul ecx, dword [rbp - 0x18]
mov edx, dword [rsp + 0x20]
or edx, 3
mov eax, ecx
and eax, 7
xor edx, eax
lea eax, [rdx*4]
xor eax, ecx
mov dword [rsp + 0x20], eax
nop dword [rax]
nop word [rax + rax]
mov eax, dword [rsp + 0x20]
add eax, esi
add esi, edx
mov dword [rsp + 0x20], eax
sub r14, 1
jne 0x140017d40
mov rax, qword [rbp - 0x18]
jmp 0x1400180f9
mov eax, 0x8d3dcb09
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x1d
cmp ecx, eax
je 0x140017dbd
mov rcx, qword [rbp - 0x18]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 7
sub ecx, eax
mov eax, dword [rsp + 0x20]
imul eax, ecx
mov dword [rsp + 0x20], eax
nop dword [rax]
mov eax, dword [rsp + 0x20]
add eax, eax
xor eax, ebx
add ebx, 0x1d
mov dword [rsp + 0x20], eax
cmp ebx, 0x57
jl 0x140017da0
mov rax, qword [rbp - 0x18]
jmp 0x1400180f9
mov ecx, dword [rsp + 0x20]
mov eax, 0x84210843
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x1f
cmp ecx, eax
je 0x140017e18
mov edx, dword [rsp + 0x20]
mov ecx, dword [rsp + 0x20]
mov eax, dword [rbp - 0x18]
not ecx
add eax, 0x1f
add ecx, eax
mov dword [rsp + 0x20], ecx
mov eax, dword [rsp + 0x20]
and eax, 0x80000001
jge 0x140017e03
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
jne 0x1400180f1
mov rax, qword [rbp - 0x18]
mov dword [rsp + 0x20], edx
jmp 0x1400180f9
mov ecx, dword [rsp + 0x20]
mov eax, 0xdd67c8a7
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x25
cmp ecx, eax
mov ecx, dword [rsp + 0x20]
je 0x140017e83
mov eax, dword [rsp + 0x20]
mov edx, dword [rbp - 0x18]
add eax, 0x25
add edx, 0x25
add edx, ecx
xor eax, edx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
cmp eax, 0x3fffffff
jge 0x1400180f1
nop
mov eax, dword [rsp + 0x20]
lea eax, [rax*2 - 0x25]
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
cmp eax, 0x3fffffff
jl 0x140017e60
mov rax, qword [rbp - 0x18]
jmp 0x1400180f9
mov eax, 0x63e7063f
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x29
cmp ecx, eax
je 0x140017f11
mov rcx, qword [rbp - 0x18]
mov eax, 0x63e7063f
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x29
sub ecx, eax
mov eax, dword [rsp + 0x20]
add eax, ecx
mov dword [rsp + 0x20], eax
mov eax, 0x63e7063f
mov ecx, dword [rsp + 0x20]
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x29
cmp ecx, eax
je 0x140017eef
mov eax, dword [rsp + 0x20]
imul edx, eax, 0x29
mov rax, qword [rbp - 0x18]
mov dword [rsp + 0x20], edx
jmp 0x1400180f9
mov ecx, dword [rsp + 0x20]
mov eax, 0x63e7063f
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov rax, qword [rbp - 0x18]
mov dword [rsp + 0x20], edx
jmp 0x1400180f9
mov ecx, dword [rsp + 0x20]
mov eax, 0x2fa0be83
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x2b
cmp ecx, eax
je 0x140017f8a
mov eax, dword [rsp + 0x20]
mov rcx, qword [rbp - 0x18]
add eax, 0x2b
mov dword [rsp + 0x20], eax
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
sub ecx, eax
mov eax, dword [rsp + 0x20]
inc ecx
cdq
idiv ecx
test edx, edx
je 0x1400180f1
mov eax, dword [rsp + 0x20]
cdq
idiv ecx
mov eax, dword [rsp + 0x20]
imul edx, ecx
add eax, edx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
cdq
idiv ecx
test edx, edx
jne 0x140017f62
mov rax, qword [rbp - 0x18]
jmp 0x1400180f9
mov ecx, dword [rsp + 0x20]
mov eax, 0x4d4873ed
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x35
cmp ecx, eax
je 0x140017fff
mov eax, dword [rsp + 0x20]
mov rcx, qword [rbp - 0x18]
dec eax
mov dword [rsp + 0x20], eax
mov eax, 0x4d4873ed
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x35
sub ecx, eax
mov eax, dword [rsp + 0x20]
inc ecx
cdq
idiv ecx
test edx, edx
je 0x1400180f1
nop dword [rax + rax]
mov eax, dword [rsp + 0x20]
sub eax, 0x35
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
cdq
idiv ecx
test edx, edx
jne 0x140017fe0
mov rax, qword [rbp - 0x18]
jmp 0x1400180f9
mov ecx, dword [rsp + 0x20]
mov eax, 0x6bca1af3
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x13
cmp ecx, eax
je 0x1400180f1
mov ecx, dword [rsp + 0x20]
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
jne 0x14001805f
call fcn.140063afc
mov r8d, eax
mov eax, 0x66666667
imul r8d
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
lea ecx, [rdx + rdx*4]
sub r8d, ecx
mov ecx, dword [rsp + 0x20]
inc ecx
jmp 0x140018085
call fcn.140063afc
mov r8d, eax
mov eax, 0x66666667
imul r8d
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
lea ecx, [rdx + rdx*4]
sub r8d, ecx
mov ecx, dword [rsp + 0x20]
not r8d
add ecx, r8d
mov eax, 0x92492493
mov dword [rsp + 0x20], ecx
mov ecx, dword [rsp + 0x20]
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 7
sub ecx, eax
cmp ecx, 4
je 0x1400180f1
nop dword [rax]
mov ecx, dword [rsp + 0x20]
mov eax, 0x6bca1af3
add ecx, ecx
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x13
sub ecx, eax
mov eax, 0x92492493
mov dword [rsp + 0x20], ecx
mov ecx, dword [rsp + 0x20]
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 7
sub ecx, eax
cmp ecx, 4
jne 0x1400180b0
mov rax, qword [rbp - 0x18]
jmp 0x1400180f9
xor eax, eax
movaps xmm7, xmmword [rsp + 0x100]
movaps xmm6, xmmword [rsp + 0x110]
mov r15, qword [rsp + 0x120]
mov r14, qword [rsp + 0x168]
mov rsi, qword [rsp + 0x158]
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.14005b090
add rsp, 0x128
pop r12
pop rdi
pop rbx
pop rbp
ret