Function at 0x140159fe0
Capabilities:
Hash data using murmur3

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x298]
sub rsp, 0x360
vmovaps xmmword [rax - 0x48], xmm6
vmovaps xmmword [rax - 0x58], xmm7
vmovaps xmmword [rax - 0x68], xmm8
vmovaps xmmword [rax - 0x78], xmm9
vmovaps xmmword [rax - 0x88], xmm10
vmovaps xmmword [rax - 0x98], xmm11
vmovaps xmmword [rax - 0xa8], xmm12
mov rax, qword [0x14143b040]
xor rax, rsp
mov qword [rbp + 0x1e0], rax
mov rsi, r8
mov qword [rsp + 0x68], r8
mov r13, rdx
mov qword [rsp + 0x40], rdx
mov rdi, rcx
vxorps xmm1, xmm1, xmm1
vcvtsi2sd xmm1, xmm1, r8
vmovsd xmm0, qword [0x14140e908]
vdivsd xmm9, xmm0, xmm1
mov rax, qword [0x141443c60]
vmovss xmm12, dword [rax + 0x3e80]
vmovss xmm11, dword [0x14140ebbc]
vmovaps xmm1, xmm11
vxorps xmm10, xmm10, xmm10
vxorps xmm0, xmm0, xmm0
call fcn.1401f6d00
vmovss dword [rsp + 0x48], xmm10
vmovss dword [rsp + 0x4c], xmm10
lea rdx, [rsp + 0x48]
mov ecx, 0xb
call fcn.1401e3960
lea rdx, [rdi + 0x2fcf]
lea rcx, [0x1413ccf70]
call fcn.140218f00
mov ecx, 1
call fcn.1401e39f0
cmp byte [rdi + 0x2fcf], 0
je 0x14015b4bb
xor ebx, ebx
mov r14d, ebx
mov qword [rsp + 0x48], rbx
movabs rax, 0xc4ceb9fe1a85ec53
mov qword [rbp - 0x78], rax
lea r15, [rbp - 0x58]
mov qword [rbp - 0x70], r15
lea r10, [rbp - 0x58]
mov qword [rbp - 0x68], r10
mov qword [rbp - 0x60], rbx
mov r13d, ebx
mov qword [rbp - 0x58], rbx
mov qword [rbp - 0x50], rbx
mov esi, 0x20
mov qword [rbp - 0x48], rsi
mov r9d, 8
movabs r11, 0x28f5c28f5c28f5c
movabs r8, 0x47ae147ae147ae15
nop
mov rax, r8
cmp r9, r11
ja 0x14015a152
lea rcx, [r9 + r9*4]
shl rcx, 4
mul rcx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 6
jmp 0x14015a16d
mul r9
mov rax, r9
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 6
lea rcx, [rax + rax*4]
shl rcx, 4
cmp rcx, 0x80
jae 0x14015a184
test r9, r9
je 0x14015bc3a
add r9, r9
jmp 0x14015a130
test r9, r9
je 0x14015bc3a
cmp r9, 1
jbe 0x14015a1b1
xor r8d, r8d
mov rdx, r9
lea rcx, [rbp - 0x80]
call fcn.140161830
mov esi, dword [rbp - 0x48]
mov r13, qword [rbp - 0x58]
mov r10, qword [rbp - 0x68]
mov r15, qword [rbp - 0x70]
mov r12, rbx
mov rax, qword [rsp + 0x40]
cmp dword [rax + 6], ebx
jbe 0x14015a467
mov rcx, rbx
mov qword [rsp + 0x30], rbx
nop word [rax + rax]
movzx r14d, word [rax + 4]
shl r14, 0x20
mov eax, dword [rax]
or r14, rax
add r14, rcx
mov rbx, qword [r14 + 0xa]
mov rax, rbx
shr rax, 8
test rbx, rbx
jns 0x14015a278
mov rdx, r14
test al, al
js 0x14015a275
movzx r11d, word [rdi + 0x14fc]
shl r11, 0x20
mov eax, dword [rdi + 0x14f8]
or r11, rax
movsxd rax, dword [rdx + 8]
imul rcx, rax, 0xb
add rcx, r11
mov r8d, dword [rcx]
movzx r9d, word [rcx + 4]
mov eax, dword [rcx + 6]
dec eax
mov edx, eax
cmp byte [rcx + 0xa], 0
mov ecx, r9d
jge 0x14015a244
shl rcx, 0x20
or rcx, r8
imul rdx, rdx, 0x16
add rdx, rcx
jmp 0x14015a261
shl rcx, 0x20
or rcx, r8
lea rax, [rax + rax*2]
add rax, rax
movzx edx, word [rcx + rax + 4]
shl rdx, 0x20
mov eax, dword [rcx + rax]
or rdx, rax
mov rbx, qword [rdx + 0xa]
mov rax, rbx
shr rax, 8
test rbx, rbx
jns 0x14015a278
test al, al
jns 0x14015a211
mov rbx, qword [rdx]
sar rbx, 0x10
mov r11, qword [r14]
mov rax, r11
sar rax, 0x10
sub rbx, rax
mov word [rsp + 0x38], r11w
mov r14, qword [rsp + 0x48]
add r14, rbx
mov qword [rsp + 0x48], r14
movsx rax, r11w
mov rcx, rax
shr rcx, 0x21
xor rcx, rax
movabs rax, 0xff51afd7ed558ccd
imul rcx, rax
mov rdx, rcx
shr rdx, 0x21
xor rdx, rcx
imul rdx, qword [rbp - 0x78]
mov rax, rdx
shr rax, 0x21
xor rdx, rax
mov rcx, rdx
and ecx, 0x1f
mov eax, dword [rbp - 0x44]
shrx r8, rcx, rax
add r8d, esi
shr rdx, 5
and rdx, r13
movzx r9d, byte [rdx + r10]
lea rax, [rdx + rdx*4]
lea rcx, [r15 + rax*8]
cmp r8d, r9d
jne 0x14015a301
cmp r11w, word [rcx]
je 0x14015a356
inc rdx
add r8d, esi
movzx eax, byte [rdx + r10]
cmp r8d, eax
jne 0x14015a318
cmp r11w, word [rcx + 0x28]
je 0x14015a356
inc rdx
add rcx, 0x50
add r8d, esi
movzx r9d, byte [rdx + r10]
cmp r8d, r9d
jbe 0x14015a2f9
test r13, r13
jne 0x14015a335
xor edx, edx
jmp 0x14015a356
mov rcx, r10
sub rcx, r15
movabs rax, 0x6666666666666667
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea rax, [rdx + rdx*4]
lea rcx, [r15 + rax*8]
cmp rcx, r10
jne 0x14015a3e0
mov word [rbp + 0x10], r11w
xor eax, eax
mov qword [rbp + 0x18], rax
mov qword [rbp + 0x20], rax
mov word [rbp + 0x28], ax
mov byte [rbp + 0x2a], al
lea r9, [rbp + 0x10]
lea r8, [rsp + 0x38]
lea rdx, [rbp + 0x40]
lea rcx, [rbp - 0x80]
call fcn.140161cb0
vmovups xmm0, xmmword [rax]
vmovups xmmword [rsp + 0x58], xmm0
movzx edx, byte [rbp + 0x2a]
movzx eax, dl
and al, 0x7f
cmp al, 0x7f
je 0x14015a3db
movzx ecx, word [rbp + 0x24]
shl rcx, 0x20
mov eax, dword [rbp + 0x20]
or rcx, rax
je 0x14015a3db
mov eax, edx
and eax, 0x7f
mov edx, 1
shlx edx, edx, eax
neg rdx
shl rdx, 2
lock add qword [0x141443c50], rdx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
nop
mov rcx, qword [rsp + 0x58]
add qword [rcx + 0x10], rbx
lea rbx, [rcx + 0x18]
movzx ecx, word [rbx + 4]
shl rcx, 0x20
mov eax, dword [rbx]
or rcx, rax
jne 0x14015a3fb
xor eax, eax
jmp 0x14015a40c
movzx eax, byte [rbx + 0xa]
and eax, 0x7f
mov ecx, 1
shlx eax, ecx, eax
cmp dword [rbx + 6], eax
jne 0x14015a419
mov rcx, rbx
call fcn.1401617b0
movzx ecx, word [rbx + 4]
shl rcx, 0x20
mov eax, dword [rbx]
or rcx, rax
mov eax, dword [rbx + 6]
mov dword [rcx + rax*4], r12d
inc dword [rbx + 6]
inc r12
mov rcx, qword [rsp + 0x30]
add rcx, 0x16
mov qword [rsp + 0x30], rcx
mov rax, qword [rsp + 0x40]
mov eax, dword [rax + 6]
mov r10, qword [rbp - 0x68]
mov r15, qword [rbp - 0x70]
cmp r12, rax
jae 0x14015a467
mov esi, dword [rbp - 0x48]
mov r13, qword [rbp - 0x58]
mov rax, qword [rsp + 0x40]
jmp 0x14015a1d0
mov r13, qword [rbp - 0x60]
mov qword [rbp + 0x38], r13
xor esi, esi
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x58], rsi
mov word [rsp + 0x60], si
mov byte [rsp + 0x62], sil
test r13, r13
je 0x14015a550
lea rcx, [r13 - 1]
mov rax, rcx
shr rax, 1
or rcx, rax
mov rax, rcx
shr rax, 2
or rcx, rax
mov rax, rcx
shr rax, 4
or rcx, rax
mov rax, rcx
shr rax, 8
or rcx, rax
mov rax, rcx
shr rax, 0x10
or rax, rcx
popcnt rdx, rax
mov r8d, 1
shlx ecx, r8d, edx
shl rcx, 3
lock add qword [0x141443c50], rcx
and dl, 0x7f
movzx eax, byte [rsp + 0x62]
and al, 0x80
or dl, al
movzx eax, dl
movzx ecx, al
mov qword [rsp + 0x50], rcx
mov byte [rsp + 0x62], al
and eax, 0x7f
shlx ecx, r8d, eax
shl rcx, 3
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rbx, rax
mov qword [rsp + 0x48], rax
mov ecx, dword [rsp + 0x5e]
test ecx, ecx
je 0x14015a535
mov r8d, ecx
shl r8, 3
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov r12, rbx
shr r12, 0x20
mov dword [rsp + 0x58], ebx
mov word [rsp + 0x5c], r12w
mov r10, qword [rbp - 0x68]
mov r15, qword [rbp - 0x70]
jmp 0x14015a55f
movzx r12d, word [rsp + 0x5c]
mov ebx, dword [rsp + 0x58]
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x70], r12
mov dword [rsp + 0x5e], r13d
cmp qword [rbp - 0x60], 0
jne 0x14015a57a
mov r9, r10
xor esi, esi
mov r8d, esi
jmp 0x14015a5cc
mov r8, r10
mov rax, qword [r10]
test rax, rax
jne 0x14015a5a3
nop word [rax + rax]
add r8, 8
add r15, 0x140
mov rax, qword [r8]
test rax, rax
je 0x14015a590
bsf rcx, rax
mov dword [rsp + 0x38], ecx
mov eax, 0x40
cmovne eax, ecx
cdq
and edx, 7
add eax, edx
sar eax, 3
movsxd rcx, eax
add r8, rcx
lea rax, [rcx + rcx*4]
lea r9, [r15 + rax*8]
xor esi, esi
cmp r9, r10
je 0x14015a63f
movzx r11d, r12w
shl r11, 0x20
mov eax, ebx
or r11, rax
nop
lea rax, [r9 + 8]
mov qword [r11], rax
lea r11, [r11 + 8]
inc r8
add r9, 0x28
mov rax, qword [r8]
test rax, rax
jne 0x14015a613
nop word [rax + rax]
add r8, 8
add r9, 0x140
mov rax, qword [r8]
test rax, rax
je 0x14015a600
bsf rcx, rax
mov dword [rsp + 0x38], ecx
mov eax, 0x40
cmovne eax, ecx
cdq
and edx, 7
add eax, edx
sar eax, 3
movsxd rcx, eax
add r8, rcx
lea rax, [rcx + rcx*4]
lea r9, [r9 + rax*8]
cmp r9, r10
jne 0x14015a5e0
movzx ecx, r12w
shl rcx, 0x20
mov eax, ebx
or rcx, rax
mov eax, r13d
lea rax, [rax*8]
lea rdx, [rcx + rax]
cmp rcx, rdx
je 0x14015a688
mov r9d, esi
sar rax, 4
test rax, rax
je 0x14015a678
nop dword [rax]
inc r9d
sar rax, 1
jne 0x14015a670
mov byte [rsp + 0x20], 1
movzx r8d, byte [rsp + 0x38]
call fcn.140169cd0
mov rcx, qword [0x141443c60]
mov rax, qword [rcx + 0x4150]
mov byte [rax + 0xf5], 1
mov rax, qword [rcx + 0x4150]
mov rcx, qword [rax + 0x1e8]
test rcx, rcx
je 0x14015a6c1
cmp dword [rcx + 0x10], 2
jne 0x14015a6bc
cmp dword [rcx + 4], 0
je 0x14015a6ce
call fcn.1402152f0
xor r8d, r8d
mov edx, 2
call fcn.1402149f0
mov rcx, qword [0x141443c60]
vmovss xmm0, dword [rcx + 0x3a34]
vaddss xmm1, xmm0, xmm0
vaddss xmm2, xmm1, dword [rcx + 0x3e80]
vaddss xmm3, xmm2, xmm2
mov rax, qword [rcx + 0x4150]
mov byte [rax + 0xf5], 1
mov rax, qword [rcx + 0x4150]
vucomiss xmm3, xmm10
jp 0x14015a713
jne 0x14015a713
vmovss xmm3, dword [rcx + 0x3a64]
vaddss xmm0, xmm3, dword [rax + 0x184]
vmovss dword [rax + 0x184], xmm0
vaddss xmm0, xmm0, dword [rax + 0x58]
vaddss xmm1, xmm0, dword [rax + 0x188]
vmovss dword [rax + 0x140], xmm1
vmovdqu xmm2, xmmword [0x14140f0a0]
vmovups xmmword [rbp - 0x18], xmm2
lea rdx, [rbp - 0x18]
xor ecx, ecx
call fcn.1401e3800
mov r15d, 1
mov r8d, r15d
xor edx, edx
lea rcx, [0x1413ca6e8]
call fcn.140215e20
mov r8, qword [0x141443c60]
movsxd rax, dword [r8 + 0x4c00]
cmp eax, r15d
jl 0x14015a7ab
lea rdx, [rax + rax*4]
mov rcx, qword [r8 + 0x4c08]
movsxd rax, dword [rcx + rdx*4 - 0x14]
add rax, rax
vmovups xmm0, xmmword [rcx + rdx*4 - 0x10]
vmovups xmmword [r8 + rax*8 + 0x3ae8], xmm0
dec dword [r8 + 0x4c00]
mov r8, qword [0x141443c60]
vmovss xmm0, dword [r8 + 0x3a34]
vaddss xmm1, xmm0, xmm0
vaddss xmm2, xmm1, dword [r8 + 0x3e80]
vaddss xmm3, xmm2, xmm2
mov rax, qword [r8 + 0x4150]
mov byte [rax + 0xf5], r15b
mov rax, qword [r8 + 0x4150]
vucomiss xmm3, xmm10
jp 0x14015a7ec
jne 0x14015a7ec
vmovss xmm3, dword [r8 + 0x3a64]
vmovss xmm0, dword [rax + 0x184]
vsubss xmm1, xmm0, xmm3
vmovss dword [rax + 0x184], xmm1
vaddss xmm0, xmm1, dword [rax + 0x58]
vaddss xmm1, xmm0, dword [rax + 0x188]
vmovss dword [rax + 0x140], xmm1
call fcn.140214ff0
mov r8, qword [rsp + 0x68]
mov rcx, r8
sub rcx, r14
vxorps xmm6, xmm6, xmm6
js 0x14015a832
vcvtsi2sd xmm6, xmm6, rcx
jmp 0x14015a84a
mov rdx, rcx
shr rdx, 1
mov rax, rcx
and eax, r15d
or rdx, rax
vcvtsi2sd xmm6, xmm6, rdx
vaddsd xmm6, xmm6, xmm6
vxorps xmm0, xmm0, xmm0
vcvtsi2sd xmm0, xmm0, r8
vdivsd xmm1, xmm6, xmm0
vmovsd xmm8, qword [0x14140e9f0]
vmulsd xmm7, xmm1, xmm8
call fcn.1401c9cc0
mov rbx, 0xffffffffffffffff
inc rbx
cmp byte [rax + rbx], 0
jne 0x14015a870
mov r8, rbx
mov rdx, rax
lea rcx, [rbp + 0x160]
call sub.VCRUNTIME140.dll_memcpy
mov eax, 0x2820
mov word [rbp + rbx + 0x160], ax
lea rdx, [rbp + 0x162]
add rdx, rbx
vmovaps xmm3, xmm7
lea r8, [rbp + 0x1e0]
lea rcx, [rbp - 0x18]
call fcn.140063400
mov rcx, qword [rax]
movzx eax, word [0x1413c72f8]
mov word [rcx], ax
movzx eax, byte [0x1413c72fa]
mov byte [rcx + 2], al
vmovss dword [rsp + 0x30], xmm11
vmovss dword [rsp + 0x34], xmm12
vmulsd xmm0, xmm6, xmm9
vcvtsd2ss xmm0, xmm0, xmm0
lea r8, [rbp + 0x160]
lea rdx, [rsp + 0x30]
call fcn.140219a50
call fcn.140214ff0
mov rcx, rsi
mov qword [rsp + 0x68], rcx
test r13, r13
je 0x14015b403
movzx edx, r12w
shl rdx, 0x20
mov eax, dword [rsp + 0x48]
or rdx, rax
mov qword [rbp - 0x18], rdx
vmovss dword [rbp - 8], xmm11
vmovss dword [rbp - 4], xmm12
lea r13, [rdi + 0x150]
vmovss xmm7, dword [0x14140e870]
nop word [rax + rax]
xor r12b, r12b
mov rbx, qword [rdx + rcx*8]
mov qword [rsp + 0x38], rbx
movsx r8, word [rbx]
test r8w, r8w
jns 0x14015a988
movzx edx, word [r13 + 0xdac]
shl rdx, 0x20
mov eax, dword [r13 + 0xda8]
or rdx, rax
mov eax, r8d
not eax
cdqe
lea rcx, [rax + rax*2]
movzx esi, word [rdx + rcx*2 + 4]
shl rsi, 0x20
mov eax, dword [rdx + rcx*2]
or rsi, rax
jmp 0x14015a9c1
movzx ecx, word [r13 + 0xdfc]
shl rcx, 0x20
mov eax, dword [r13 + 0xdf8]
or rcx, rax
lea rdx, [rcx + r8*8]
lea rcx, [r13 + 0xd68]
call fcn.1401b58e0
lea rsi, [rax + rax*2]
shl rsi, 4
add rsi, 8
add rsi, qword [r13 + 0xd78]
movzx eax, byte [rsi + 8]
test al, 2
je 0x14015a9fc
test al, 1
je 0x14015a9ec
movzx ecx, word [r13 + 0xc9c]
shl rcx, 0x20
mov eax, dword [r13 + 0xc98]
or rcx, rax
mov rax, qword [rsi]
mov r14, qword [rcx + rax*8]
jmp 0x14015aa40
mov rdx, qword [rsi]
mov rcx, r13
call fcn.140184990
mov r14, rax
jmp 0x14015aa40
movzx eax, byte [rsi + 0x11]
test al, 1
je 0x14015aa24
movzx ecx, word [r13 + 0xc9c]
shl rcx, 0x20
mov eax, dword [r13 + 0xc98]
or rcx, rax
mov rax, qword [rsi + 9]
mov r14, qword [rcx + rax*8]
jmp 0x14015aa40
test al, 2
je 0x14015aa39
mov rdx, qword [rsi + 9]
mov rcx, r13
call fcn.140184990
mov r14, rax
jmp 0x14015aa40
lea r14, [0x1413ca658]
cmp dword [rbx + 0x16], 1
jne 0x14015abcb
movzx ecx, word [rbx + 0x14]
shl rcx, 0x20
mov eax, dword [rbx + 0x10]
or rcx, rax
mov eax, dword [rcx]
imul r14, rax, 0x16
mov rax, qword [rsp + 0x40]
movzx ecx, word [rax + 4]
shl rcx, 0x20
mov eax, dword [rax]
or rcx, rax
add r14, rcx
movzx edx, word [r14]
mov rcx, r13
call fcn.140184c20
mov r8, rax
mov rdx, r14
mov rcx, r13
call fcn.140184cb0
mov r15, rax
mov eax, dword [rsi + 0x1f]
test eax, eax
je 0x14015aaa7
cmp byte [rdi + 0x27bd], r12b
jne 0x14015aaa7
or eax, 0xff000000
jmp 0x14015aac5
cmp byte [rdi + 0x27bc], r12b
jne 0x14015aab7
mov eax, 0xffcc5555
jmp 0x14015aac5
xor r8d, r8d
mov rdx, rsi
mov rcx, rdi
call fcn.14014a5a0
mov ecx, eax
call fcn.14002d4e0
vmovaps xmm1, xmm11
vmovaps xmm0, xmm10
call fcn.1401f6d00
movzx edx, word [rbx + 0x14]
shl rdx, 0x20
mov eax, dword [rbx + 0x10]
or rdx, rax
mov rax, qword [0x141443c60]
mov rbx, qword [rax + 0x4150]
mov edx, dword [rdx]
mov rcx, rbx
call fcn.1401f34b0
mov esi, eax
add rbx, 0x130
mov r8d, dword [rbx + 4]
mov ecx, dword [rbx]
cmp ecx, r8d
jne 0x14015ab3d
inc ecx
test r8d, r8d
je 0x14015ab29
mov eax, r8d
cdq
sub eax, edx
sar eax, 1
add eax, r8d
jmp 0x14015ab2e
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
mov edx, ecx
mov rcx, rbx
call fcn.1401deb40
movsxd rcx, dword [rbx]
mov rax, qword [rbx + 8]
mov dword [rax + rcx*4], esi
inc dword [rbx]
mov edx, 0x108
mov rcx, r15
call fcn.140228f80
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.1401f4650
test al, al
je 0x14015ab7c
xor ecx, ecx
call fcn.1401e7340
test al, al
je 0x14015ab7c
mov rdx, r14
mov rcx, rdi
call fcn.140157500
xor ecx, ecx
call fcn.1401e7340
test al, al
je 0x14015abad
mov qword [rdi + 0x2980], r14
cmp byte [0x141446be7], r12b
je 0x14015aba2
mov rdx, r14
mov rcx, rdi
call fcn.14010b500
mov rdx, r14
mov rcx, rdi
call fcn.140157690
mov rax, qword [0x141443c60]
mov rcx, qword [rax + 0x4150]
dec dword [rcx + 0x130]
mov r15, qword [rsp + 0x38]
jmp 0x14015ae62
mov eax, dword [rsi + 0x1f]
test eax, eax
je 0x14015abe2
cmp byte [rdi + 0x27bd], r12b
jne 0x14015abe2
or eax, 0xff000000
jmp 0x14015ac00
cmp byte [rdi + 0x27bc], r12b
jne 0x14015abf2
mov eax, 0xffcc5555
jmp 0x14015ac00
xor r8d, r8d
mov rdx, rsi
mov rcx, rdi
call fcn.14014a5a0
mov ecx, eax
call fcn.14002d4e0
vmovaps xmm1, xmm11
vmovaps xmm0, xmm10
call fcn.1401f6d00
movsx edx, word [rbx]
mov rax, qword [0x141443c60]
mov rbx, qword [rax + 0x4150]
mov rcx, rbx
call fcn.1401f34b0
mov r15d, eax
add rbx, 0x130
mov r8d, dword [rbx + 4]
mov ecx, dword [rbx]
cmp ecx, r8d
jne 0x14015ac6c
inc ecx
test r8d, r8d
je 0x14015ac58
mov eax, r8d
cdq
sub eax, edx
sar eax, 1
add eax, r8d
jmp 0x14015ac5d
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
mov edx, ecx
mov rcx, rbx
call fcn.1401deb40
movsxd rdx, dword [rbx]
mov rax, qword [rbx + 8]
mov dword [rax + rdx*4], r15d
inc dword [rbx]
mov rcx, r14
call fcn.140228ee0
movzx r12d, al
mov rcx, qword [0x141443c60]
mov rdx, qword [rcx + 0x4150]
dec dword [rdx + 0x130]
xor ecx, ecx
call fcn.1401e7340
test al, al
je 0x14015ae36
xor edx, edx
xor ecx, ecx
call fcn.1401f7d60
movzx ecx, byte [rsi + 8]
test cl, 2
je 0x14015acfe
test cl, 1
je 0x14015acde
movzx ecx, word [r13 + 0xc9c]
shl rcx, 0x20
mov eax, dword [r13 + 0xc98]
or rcx, rax
mov rax, qword [rsi]
mov rax, qword [rcx + rax*8]
jmp 0x14015ace9
mov rdx, qword [rsi]
mov rcx, r13
call fcn.140184990
mov r15d, 1
mov r8d, r15d
xor edx, edx
mov rcx, rax
call fcn.140215e20
jmp 0x14015ad04
mov r15d, 1
movzx eax, byte [rsi + 0x11]
test al, 1
je 0x14015ad2c
movzx ecx, word [r13 + 0xc9c]
shl rcx, 0x20
mov eax, dword [r13 + 0xc98]
or rcx, rax
mov rax, qword [rsi + 9]
mov rax, qword [rcx + rax*8]
jmp 0x14015ad45
test al, 2
je 0x14015ad3e
mov rdx, qword [rsi + 9]
mov rcx, r13
call fcn.140184990
jmp 0x14015ad45
lea rax, [0x1413ca658]
mov r8d, r15d
xor edx, edx
mov rcx, rax
call fcn.140215e20
mov rax, qword [0x141443c60]
mov r8, qword [rax + 0x4150]
cmp byte [r8 + 0xf8], 0
jne 0x14015ad94
mov edx, dword [r8 + 0x1f4]
mov eax, edx
neg eax
sbb ecx, ecx
add ecx, 2
cmp qword [r8 + 0x1e8], 0
je 0x14015ad8b
neg edx
sbb ecx, ecx
add ecx, 6
vmovaps xmm1, xmm7
call fcn.14021a1b0
mov r14d, dword [rsi + 0x1b]
movzx eax, byte [rsi + 0x1a]
test al, 1
je 0x14015adc0
movzx ecx, word [r13 + 0xc9c]
shl rcx, 0x20
mov eax, dword [r13 + 0xc98]
or rcx, rax
mov rax, qword [rsi + 0x12]
mov rcx, qword [rcx + rax*8]
jmp 0x14015addc
test al, 2
je 0x14015add5
mov rdx, qword [rsi + 0x12]
mov rcx, r13
call fcn.140184990
mov rcx, rax
jmp 0x14015addc
lea rcx, [0x1413ca658]
test r14d, r14d
je 0x14015ae27
movsxd rax, dword [0x1414476d0]
mov rbx, rax
shl rbx, 0xc
lea rdx, [0x14145c6e0]
add rbx, rdx
inc eax
and eax, 0x80000007
jge 0x14015ae09
dec eax
or eax, 0xfffffff8
inc eax
mov dword [0x1414476d0], eax
mov r9d, r14d
mov r8, rcx
lea rdx, [0x1413c5ce0]
mov rcx, rbx
call fcn.140005590
mov rcx, rbx
mov r8d, r15d
xor edx, edx
call fcn.140215e20
call fcn.1401f2010
vmovaps xmm1, xmm11
vmovaps xmm0, xmm10
call fcn.1401f6d00
mov r15, qword [rsp + 0x38]
mov ecx, dword [r15 + 0x16]
call fcn.14004a750
mov rdx, rax
lea rcx, [0x1413cc18c]
call fcn.1402166f0
call fcn.140214ff0
mov rcx, qword [r15 + 8]
vxorps xmm0, xmm0, xmm0
test rcx, rcx
js 0x14015ae7b
vcvtsi2sd xmm0, xmm0, rcx
jmp 0x14015ae93
mov rdx, rcx
shr rdx, 1
mov rax, rcx
and eax, 1
or rdx, rax
vcvtsi2sd xmm0, xmm0, rdx
vaddsd xmm0, xmm0, xmm0
vmulsd xmm6, xmm0, xmm9
call fcn.1401c9cc0
mov rsi, 0xffffffffffffffff
mov rbx, rsi
inc rbx
cmp byte [rax + rbx], 0
jne 0x14015aea7
mov r8, rbx
mov rdx, rax
lea rcx, [rbp + 0x60]
call sub.VCRUNTIME140.dll_memcpy
mov eax, 0x2820
mov word [rbp + rbx + 0x60], ax
vmulsd xmm3, xmm6, xmm8
lea rdx, [rbp + 0x62]
add rdx, rbx
lea r8, [rbp + 0xe0]
lea rcx, [rbp + 0x10]
call fcn.140063400
mov rcx, qword [rax]
movzx eax, word [0x1413c72f8]
mov word [rcx], ax
movzx eax, byte [0x1413c72fa]
mov byte [rcx + 2], al
vcvtsd2ss xmm0, xmm6, xmm6
lea r8, [rbp + 0x60]
lea rdx, [rbp - 8]
call fcn.140219a50
call fcn.140214ff0
test r12b, r12b
je 0x14015b3db
mov ecx, dword [r15 + 0x16]
mov eax, 8
mul rcx
cmovb rax, rsi
mov rcx, rax
call fcn.1403f4de8
mov qword [rsp + 0x30], rax
mov ecx, dword [r15 + 0x16]
mov eax, 4
mul rcx
cmovb rax, rsi
mov rcx, rax
call fcn.1403f4de8
mov rsi, rax
mov qword [rbp + 0x30], rax
xor ebx, ebx
mov ecx, dword [r15 + 0x16]
mov r14, qword [rsp + 0x40]
test ecx, ecx
je 0x14015b061
nop word [rax + rax]
movzx ecx, word [r15 + 0x14]
shl rcx, 0x20
mov eax, dword [r15 + 0x10]
or rcx, rax
mov edx, dword [rcx + rbx*4]
movzx r11d, word [r14 + 4]
shl r11, 0x20
mov eax, dword [r14]
or r11, rax
imul rax, rdx, 0x16
add r11, rax
mov rcx, qword [r11 + 0xa]
mov rax, rcx
shr rax, 8
test rcx, rcx
jns 0x14015b037
mov rdx, r11
test al, al
js 0x14015b034
movzx r10d, word [r13 + 0x13ac]
shl r10, 0x20
mov eax, dword [r13 + 0x13a8]
or r10, rax
nop
movsxd rax, dword [rdx + 8]
imul rcx, rax, 0xb
add rcx, r10
mov r8d, dword [rcx]
movzx r9d, word [rcx + 4]
mov eax, dword [rcx + 6]
dec eax
mov edx, eax
cmp byte [rcx + 0xa], 0
mov ecx, r9d
jge 0x14015b003
shl rcx, 0x20
or rcx, r8
imul rdx, rdx, 0x16
add rdx, rcx
jmp 0x14015b020
shl rcx, 0x20
or rcx, r8
lea rax, [rax + rax*2]
add rax, rax
movzx edx, word [rcx + rax + 4]
shl rdx, 0x20
mov eax, dword [rcx + rax]
or rdx, rax
mov rcx, qword [rdx + 0xa]
mov rax, rcx
shr rax, 8
test rcx, rcx
jns 0x14015b037
test al, al
jns 0x14015afd0
mov rcx, qword [rdx]
sar rcx, 0x10
mov rax, qword [r11]
sar rax, 0x10
sub rcx, rax
mov rax, qword [rsp + 0x30]
mov qword [rax + rbx*8], rcx
mov dword [rsi + rbx*4], ebx
inc rbx
mov ecx, dword [r15 + 0x16]
cmp rbx, rcx
jb 0x14015af70
mov eax, ecx
lea rax, [rax*4]
lea rdx, [rax + rsi]
cmp rsi, rdx
je 0x14015b09a
xor r9d, r9d
sar rax, 3
test rax, rax
je 0x14015b088
inc r9d
sar rax, 1
jne 0x14015b080
mov byte [rsp + 0x20], 1
lea r8, [rsp + 0x30]
mov rcx, rsi
call fcn.14016a9d0
vpxor xmm0, xmm0, xmm0
xor eax, eax
vmovups ymmword [rbp - 0x40], ymm0
mov qword [rbp - 0x20], rax
vmovaps xmm2, xmm11
mov edx, dword [r15 + 0x16]
lea rcx, [rbp - 0x40]
vzeroupper
call fcn.1401e2cf0
lea rcx, [rbp - 0x40]
call fcn.1401e3630
test al, al
je 0x14015b3b3
nop
movsxd r13, dword [rbp - 0x38]
cmp r13d, dword [rbp - 0x34]
jge 0x14015b396
vmovss dword [rbp], xmm10
vmovss dword [rbp + 4], xmm10
vmovss dword [rbp + 8], xmm11
vmovss dword [rbp + 0xc], xmm12
lea r12, [rsi + r13*4]
nop word [rax + rax]
mov edx, dword [r12]
movzx ecx, word [r15 + 0x14]
shl rcx, 0x20
mov eax, dword [r15 + 0x10]
or rcx, rax
mov r8d, dword [rcx + rdx*4]
movzx esi, word [r14 + 4]
shl rsi, 0x20
mov eax, dword [r14]
or rsi, rax
imul rax, r8, 0x16
add rsi, rax
movzx edx, word [rsi]
lea rcx, [rdi + 0x150]
call fcn.140184c20
mov r8, rax
mov rdx, rsi
lea rcx, [rdi + 0x150]
call fcn.140184cb0
mov r14, rax
mov rbx, qword [0x141443c60]
mov rcx, qword [rbx + 0x4150]
mov byte [rcx + 0xf5], 1
mov rcx, qword [rbx + 0x4150]
vmovss xmm0, dword [rbx + 0x3a64]
vaddss xmm1, xmm0, dword [rcx + 0x184]
vmovss dword [rcx + 0x184], xmm1
vaddss xmm0, xmm1, dword [rcx + 0x58]
vaddss xmm1, xmm0, dword [rcx + 0x188]
vmovss dword [rcx + 0x140], xmm1
mov ecx, dword [r12]
movzx edx, word [r15 + 0x14]
shl rdx, 0x20
mov eax, dword [r15 + 0x10]
or rdx, rax
mov rbx, qword [rbx + 0x4150]
mov edx, dword [rdx + rcx*4]
mov rcx, rbx
call fcn.1401f34b0
mov r15d, eax
add rbx, 0x130
mov r8d, dword [rbx + 4]
mov ecx, dword [rbx]
cmp ecx, r8d
jne 0x14015b1fe
inc ecx
test r8d, r8d
je 0x14015b1ea
mov eax, r8d
cdq
sub eax, edx
sar eax, 1
add eax, r8d
jmp 0x14015b1ef
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
mov edx, ecx
mov rcx, rbx
call fcn.1401deb40
movsxd rcx, dword [rbx]
mov rax, qword [rbx + 8]
mov dword [rax + rcx*4], r15d
inc dword [rbx]
lea r9, [rbp]
xor edx, edx
mov r8d, 2
mov rcx, r14
call fcn.14022a0e0
test al, al
je 0x14015b22e
mov rdx, rsi
mov rcx, rdi
call fcn.140157500
xor ecx, ecx
call fcn.1401e7340
test al, al
je 0x14015b25f
mov qword [rdi + 0x2980], rsi
cmp byte [0x141446be7], 0
je 0x14015b254
mov rdx, rsi
mov rcx, rdi
call fcn.14010b500
mov rdx, rsi
mov rcx, rdi
call fcn.140157690
mov rcx, qword [0x141443c60]
mov rax, qword [rcx + 0x4150]
dec dword [rax + 0x130]
mov rax, qword [rcx + 0x4150]
mov byte [rax + 0xf5], 1
mov rax, qword [rcx + 0x4150]
vmovss xmm0, dword [rax + 0x184]
vsubss xmm1, xmm0, dword [rcx + 0x3a64]
vmovss dword [rax + 0x184], xmm1
vaddss xmm0, xmm1, dword [rax + 0x58]
vaddss xmm1, xmm0, dword [rax + 0x188]
vmovss dword [rax + 0x140], xmm1
call fcn.140214ff0
mov ecx, dword [r12]
mov rax, qword [rsp + 0x30]
mov rcx, qword [rax + rcx*8]
vxorps xmm0, xmm0, xmm0
test rcx, rcx
js 0x14015b2d7
vcvtsi2sd xmm0, xmm0, rcx
jmp 0x14015b2ef
mov rdx, rcx
shr rdx, 1
mov rax, rcx
and eax, 1
or rdx, rax
vcvtsi2sd xmm0, xmm0, rdx
vaddsd xmm0, xmm0, xmm0
vmulsd xmm6, xmm0, xmm9
call fcn.1401c9cc0
mov rbx, 0xffffffffffffffff
inc rbx
cmp byte [rax + rbx], 0
jne 0x14015b300
mov r8, rbx
mov rdx, rax
lea rcx, [rbp + 0xe0]
call sub.VCRUNTIME140.dll_memcpy
mov eax, 0x2820
mov word [rbp + rbx + 0xe0], ax
vmulsd xmm3, xmm6, xmm8
lea rdx, [rbp + 0xe2]
add rdx, rbx
lea r8, [rbp + 0x160]
lea rcx, [rbp + 0x40]
call fcn.140063400
mov rcx, qword [rax]
movzx eax, word [0x1413c72f8]
mov word [rcx], ax
movzx eax, byte [0x1413c72fa]
mov byte [rcx + 2], al
vcvtsd2ss xmm0, xmm6, xmm6
lea r8, [rbp + 0xe0]
lea rdx, [rbp + 8]
call fcn.140219a50
call fcn.140214ff0
inc r13d
add r12, 4
cmp r13d, dword [rbp - 0x34]
mov r15, qword [rsp + 0x38]
mov r14, qword [rsp + 0x40]
jl 0x14015b100
mov rsi, qword [rbp + 0x30]
lea rcx, [rbp - 0x40]
call fcn.1401e3630
test al, al
mov r14, qword [rsp + 0x40]
jne 0x14015b0d0
lea r13, [rdi + 0x150]
call fcn.140229f60
nop
lea rcx, [rbp - 0x40]
call fcn.1401e2e50
nop
mov rcx, rsi
call fcn.1403f4db4
nop
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x14015b3db
call fcn.1403f4db4
mov rcx, qword [rsp + 0x68]
inc rcx
mov qword [rsp + 0x68], rcx
cmp rcx, qword [rbp + 0x38]
mov rdx, qword [rbp - 0x18]
jb 0x14015a940
xor esi, esi
mov r12, qword [rsp + 0x70]
mov r15d, 1
call fcn.1402152f0
nop
mov rdx, qword [rsp + 0x50]
movzx eax, dl
and al, 0x7f
cmp al, 0x7f
je 0x14015b459
movzx ecx, r12w
shl rcx, 0x20
mov eax, dword [rsp + 0x48]
or rcx, rax
je 0x14015b459
movzx eax, dl
and eax, 0x7f
shlx ecx, r15d, eax
neg rcx
shl rcx, 3
lock add qword [0x141443c50], rcx
movzx ecx, word [rsp + 0x5c]
shl rcx, 0x20
mov eax, dword [rsp + 0x58]
or rcx, rax
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
nop
mov rdx, qword [rbp - 0x58]
test rdx, rdx
je 0x14015b4b6
mov qword [rbp - 0x60], rsi
inc rdx
call fcn.140049f90
mov rdi, rax
test rax, rax
je 0x14015b4a2
mov rbx, rsi
nop dword [rax]
mov rcx, qword [rbp - 0x68]
cmp byte [rsi + rcx], 0
je 0x14015b496
mov rcx, qword [rbp - 0x70]
add rcx, rbx
call fcn.140161aa0
inc rsi
add rbx, 0x28
cmp rsi, rdi
jb 0x14015b480
lea rax, [rbp - 0x58]
mov rcx, qword [rbp - 0x70]
cmp rcx, rax
je 0x14015b4b6
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
nop
jmp 0x14015bbe6
mov ecx, dword [r13 + 6]
mov eax, 8
mul rcx
mov r15, 0xffffffffffffffff
cmovb rax, r15
mov rcx, rax
call fcn.1403f4de8
mov qword [rsp + 0x30], rax
mov ecx, dword [r13 + 6]
mov eax, 4
mul rcx
cmovb rax, r15
mov rcx, rax
call fcn.1403f4de8
mov r12, rax
mov qword [rbp - 0x18], rax
xor r8d, r8d
mov r14d, r8d
mov ebx, r8d
mov ecx, dword [r13 + 6]
test ecx, ecx
je 0x14015b611
mov esi, r8d
nop word [rax + rax]
movzx r10d, word [r13 + 4]
shl r10, 0x20
mov eax, dword [r13]
or r10, rax
add r10, rsi
mov rcx, qword [r10 + 0xa]
mov rax, rcx
shr rax, 8
test rcx, rcx
jns 0x14015b5d7
mov rdx, r10
test al, al
js 0x14015b5d4
movzx r11d, word [rdi + 0x14fc]
shl r11, 0x20
mov eax, dword [rdi + 0x14f8]
or r11, rax
nop word [rax + rax]
movsxd rax, dword [rdx + 8]
imul rcx, rax, 0xb
add rcx, r11
mov r8d, dword [rcx]
movzx r9d, word [rcx + 4]
mov eax, dword [rcx + 6]
dec eax
mov edx, eax
cmp byte [rcx + 0xa], 0
mov ecx, r9d
jge 0x14015b5a3
shl rcx, 0x20
or rcx, r8
imul rdx, rdx, 0x16
add rdx, rcx
jmp 0x14015b5c0
shl rcx, 0x20
or rcx, r8
lea rax, [rax + rax*2]
add rax, rax
movzx edx, word [rcx + rax + 4]
shl rdx, 0x20
mov eax, dword [rcx + rax]
or rdx, rax
mov rcx, qword [rdx + 0xa]
mov rax, rcx
shr rax, 8
test rcx, rcx
jns 0x14015b5d7
test al, al
jns 0x14015b570
mov rcx, qword [rdx]
sar rcx, 0x10
mov rax, qword [r10]
sar rax, 0x10
sub rcx, rax
add r14, rcx
mov rax, qword [rsp + 0x30]
mov qword [rax + rbx*8], rcx
mov dword [r12 + rbx*4], ebx
inc rbx
add rsi, 0x16
mov ecx, dword [r13 + 6]
cmp rbx, rcx
jb 0x14015b520
mov rsi, qword [rsp + 0x68]
xor r8d, r8d
mov eax, ecx
lea rax, [rax*4]
lea rdx, [rax + r12]
cmp r12, rdx
je 0x14015b64d
sar rax, 3
test rax, rax
je 0x14015b638
nop dword [rax]
inc r8d
sar rax, 1
jne 0x14015b630
mov byte [rsp + 0x20], 1
mov r9d, r8d
lea r8, [rsp + 0x30]
mov rcx, r12
call fcn.14016a9d0
mov rcx, qword [0x141443c60]
mov rax, qword [rcx + 0x4150]
mov byte [rax + 0xf5], 1
mov rax, qword [rcx + 0x4150]
mov rcx, qword [rax + 0x1e8]
test rcx, rcx
je 0x14015b686
cmp dword [rcx + 0x10], 2
jne 0x14015b681
cmp dword [rcx + 4], 0
je 0x14015b693
call fcn.1402152f0
xor r8d, r8d
mov edx, 2
call fcn.1402149f0
mov rcx, qword [0x141443c60]
vmovss xmm0, dword [rcx + 0x3a34]
vaddss xmm1, xmm0, xmm0
vaddss xmm2, xmm1, dword [rcx + 0x3e80]
mov rax, qword [rcx + 0x4150]
mov byte [rax + 0xf5], 1
mov rax, qword [rcx + 0x4150]
vucomiss xmm2, xmm10
jp 0x14015b6d4
jne 0x14015b6d4
vmovss xmm2, dword [rcx + 0x3a64]
vaddss xmm0, xmm2, dword [rax + 0x184]
vmovss dword [rax + 0x184], xmm0
vaddss xmm0, xmm0, dword [rax + 0x58]
vaddss xmm1, xmm0, dword [rax + 0x188]
vmovss dword [rax + 0x140], xmm1
vmovdqu xmm2, xmmword [0x14140f0a0]
vmovups xmmword [rsp + 0x58], xmm2
lea rdx, [rsp + 0x58]
xor ecx, ecx
call fcn.1401e3800
xor edx, edx
mov r8d, 1
lea rcx, [0x1413ca6e8]
call fcn.140215e20
mov r8, qword [0x141443c60]
movsxd rax, dword [r8 + 0x4c00]
cmp eax, 1
jl 0x14015b76b
lea rdx, [rax + rax*4]
mov rcx, qword [r8 + 0x4c08]
movsxd rax, dword [rcx + rdx*4 - 0x14]
add rax, rax
vmovups xmm0, xmmword [rcx + rdx*4 - 0x10]
vmovups xmmword [r8 + rax*8 + 0x3ae8], xmm0
dec dword [r8 + 0x4c00]
mov r8, qword [0x141443c60]
vmovss xmm0, dword [r8 + 0x3a34]
vaddss xmm1, xmm0, xmm0
vaddss xmm2, xmm1, dword [r8 + 0x3e80]
mov rax, qword [r8 + 0x4150]
mov byte [rax + 0xf5], 1
mov rax, qword [r8 + 0x4150]
vucomiss xmm2, xmm10
jp 0x14015b7a8
jne 0x14015b7a8
vmovss xmm2, dword [r8 + 0x3a64]
vmovss xmm0, dword [rax + 0x184]
vsubss xmm1, xmm0, xmm2
vmovss dword [rax + 0x184], xmm1
vaddss xmm0, xmm1, dword [rax + 0x58]
vaddss xmm1, xmm0, dword [rax + 0x188]
vmovss dword [rax + 0x140], xmm1
call fcn.140214ff0
mov rcx, rsi
sub rcx, r14
vxorps xmm6, xmm6, xmm6
js 0x14015b7e9
vcvtsi2sd xmm6, xmm6, rcx
jmp 0x14015b801
mov rdx, rcx
shr rdx, 1
mov rax, rcx
and eax, 1
or rdx, rax
vcvtsi2sd xmm6, xmm6, rdx
vaddsd xmm6, xmm6, xmm6
vxorps xmm0, xmm0, xmm0
vcvtsi2sd xmm0, xmm0, rsi
vdivsd xmm1, xmm6, xmm0
vmovsd xmm8, qword [0x14140e9f0]
vmulsd xmm7, xmm1, xmm8
call fcn.1401c9cc0
mov rbx, r15
inc rbx
cmp byte [rax + rbx], 0
jne 0x14015b823
mov r8, rbx
mov rdx, rax
lea rcx, [rbp + 0xe0]
call sub.VCRUNTIME140.dll_memcpy
mov eax, 0x2820
mov word [rbp + rbx + 0xe0], ax
lea rdx, [rbp + 0xe2]
add rdx, rbx
vmovaps xmm3, xmm7
lea r8, [rbp + 0x160]
lea rcx, [rbp + 0x40]
call fcn.140063400
mov rcx, qword [rax]
movzx eax, word [0x1413c72f8]
mov word [rcx], ax
movzx eax, byte [0x1413c72fa]
mov byte [rcx + 2], al
vmovss dword [rsp + 0x50], xmm11
vmovss dword [rsp + 0x54], xmm12
vmulsd xmm0, xmm6, xmm9
vcvtsd2ss xmm0, xmm0, xmm0
lea r8, [rbp + 0xe0]
lea rdx, [rsp + 0x50]
call fcn.140219a50
call fcn.140214ff0
vpxor xmm0, xmm0, xmm0
xor eax, eax
vmovups ymmword [rbp - 0x40], ymm0
mov qword [rbp - 0x20], rax
vmovaps xmm2, xmm11
mov edx, dword [r13 + 6]
lea rcx, [rbp - 0x40]
vzeroupper
call fcn.1401e2cf0
lea rcx, [rbp - 0x40]
call fcn.1401e3630
test al, al
je 0x14015bbbe
movsxd r15, dword [rbp - 0x38]
cmp r15d, dword [rbp - 0x34]
jge 0x14015bbad
vmovss dword [rsp + 0x50], xmm10
vmovss dword [rsp + 0x54], xmm10
vmovss dword [rsp + 0x70], xmm11
vmovss dword [rsp + 0x74], xmm12
lea r12, [r12 + r15*4]
lea rbx, [rdi + 0x150]
mov ecx, dword [r12]
movzx esi, word [r13 + 4]
shl rsi, 0x20
mov eax, dword [r13]
or rsi, rax
imul rax, rcx, 0x16
add rsi, rax
movsx r14, word [rsi]
movzx edx, r14w
mov rcx, rbx
call fcn.140184c20
mov r8, rax
mov rdx, rsi
mov rcx, rbx
call fcn.140184cb0
mov r13, rax
test r14w, r14w
jns 0x14015b984
movzx edx, word [rdi + 0xefc]
shl rdx, 0x20
mov ecx, dword [rdi + 0xef8]
or rdx, rcx
mov eax, r14d
not eax
cdqe
lea rcx, [rax + rax*2]
movzx r9d, word [rdx + rcx*2 + 4]
shl r9, 0x20
mov eax, dword [rdx + rcx*2]
or r9, rax
jmp 0x14015b9bb
movzx ecx, word [rdi + 0xf4c]
shl rcx, 0x20
mov eax, dword [rdi + 0xf48]
or rcx, rax
lea rdx, [rcx + r14*8]
lea rcx, [rdi + 0xeb8]
call fcn.1401b58e0
lea r9, [rax + rax*2]
shl r9, 4
add r9, 8
add r9, qword [rdi + 0xec8]
mov eax, dword [r9 + 0x1f]
test eax, eax
je 0x14015b9d3
cmp byte [rdi + 0x27bd], 0
jne 0x14015b9d3
or eax, 0xff000000
jmp 0x14015b9f1
cmp byte [rdi + 0x27bc], 0
jne 0x14015b9e3
mov eax, 0xffcc5555
jmp 0x14015b9f1
xor r8d, r8d
mov rdx, r9
mov rcx, rdi
call fcn.14014a5a0
mov ecx, eax
call fcn.14002d4e0
vmovaps xmm1, xmm11
vmovaps xmm0, xmm10
call fcn.1401f6d00
mov rdx, qword [0x141443c60]
mov rbx, qword [rdx + 0x4150]
mov edx, r15d
mov rcx, rbx
call fcn.1401f34b0
mov r14d, eax
add rbx, 0x130
mov r8d, dword [rbx + 4]
mov ecx, dword [rbx]
cmp ecx, r8d
jne 0x14015ba5d
inc ecx
test r8d, r8d
je 0x14015ba49
mov eax, r8d
cdq
sub eax, edx
sar eax, 1
add eax, r8d
jmp 0x14015ba4e
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
mov edx, ecx
mov rcx, rbx
call fcn.1401deb40
movsxd rcx, dword [rbx]
mov rax, qword [rbx + 8]
mov dword [rax + rcx*4], r14d
inc dword [rbx]
lea r9, [rsp + 0x50]
xor edx, edx
mov r8d, 2
mov rcx, r13
call fcn.14022a0e0
test al, al
je 0x14015ba8e
mov rdx, rsi
mov rcx, rdi
call fcn.140157500
xor ecx, ecx
call fcn.1401e7340
test al, al
je 0x14015babf
mov qword [rdi + 0x2980], rsi
cmp byte [0x141446be7], 0
je 0x14015bab4
mov rdx, rsi
mov rcx, rdi
call fcn.14010b500
mov rdx, rsi
mov rcx, rdi
call fcn.140157690
mov rax, qword [0x141443c60]
mov rcx, qword [rax + 0x4150]
dec dword [rcx + 0x130]
call fcn.140214ff0
mov ecx, dword [r12]
mov rax, qword [rsp + 0x30]
mov rcx, qword [rax + rcx*8]
vxorps xmm0, xmm0, xmm0
test rcx, rcx
js 0x14015baf5
vcvtsi2sd xmm0, xmm0, rcx
jmp 0x14015bb0d
mov rdx, rcx
shr rdx, 1
mov rax, rcx
and eax, 1
or rdx, rax
vcvtsi2sd xmm0, xmm0, rdx
vaddsd xmm0, xmm0, xmm0
vmulsd xmm6, xmm0, xmm9
call fcn.1401c9cc0
mov rbx, 0xffffffffffffffff
nop
inc rbx
cmp byte [rax + rbx], 0
jne 0x14015bb20
mov r8, rbx
mov rdx, rax
lea rcx, [rbp + 0x60]
call sub.VCRUNTIME140.dll_memcpy
mov eax, 0x2820
mov word [rbp + rbx + 0x60], ax
vmulsd xmm3, xmm6, xmm8
lea rdx, [rbp + 0x62]
add rdx, rbx
lea r8, [rbp + 0xe0]
lea rcx, [rbp + 0x40]
call fcn.140063400
mov rcx, qword [rax]
movzx eax, word [0x1413c72f8]
mov word [rcx], ax
movzx eax, byte [0x1413c72fa]
mov byte [rcx + 2], al
vcvtsd2ss xmm0, xmm6, xmm6
lea r8, [rbp + 0x60]
lea rdx, [rsp + 0x70]
call fcn.140219a50
call fcn.140214ff0
inc r15d
add r12, 4
cmp r15d, dword [rbp - 0x34]
lea rbx, [rdi + 0x150]
mov r13, qword [rsp + 0x40]
jl 0x14015b911
mov r12, qword [rbp - 0x18]
lea rcx, [rbp - 0x40]
call fcn.1401e3630
test al, al
jne 0x14015b8e0
call fcn.1402152f0
nop
lea rcx, [rbp - 0x40]
call fcn.1401e2e50
nop
mov rcx, r12
call fcn.1403f4db4
nop
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x14015bbe6
call fcn.1403f4db4
mov rcx, qword [rbp + 0x1e0]
xor rcx, rsp
call fcn.1403f4b10
lea r11, [rsp + 0x360]
mov rbx, qword [r11 + 0x58]
vmovaps xmm6, xmmword [r11 - 0x10]
vmovaps xmm7, xmmword [r11 - 0x20]
vmovaps xmm8, xmmword [r11 - 0x30]
vmovaps xmm9, xmmword [r11 - 0x40]
vmovaps xmm10, xmmword [r11 - 0x50]
vmovaps xmm11, xmmword [r11 - 0x60]
vmovaps xmm12, xmmword [r11 - 0x70]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.14001c8f0
nop