Function at 0x1402e1730
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa
Hash data using crc32b
Read file on windows

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x428]
sub rsp, 0x500
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm9
movaps xmmword [rax - 0x78], xmm10
movaps xmmword [rax - 0x88], xmm11
mov rax, qword [0x140424a38]
xor rax, rsp
mov qword [rbp + 0x390], rax
xor r13d, r13d
mov qword [rsp + 0x40], rcx
mov dword [rsp + 0x28], r13d
mov rsi, rcx
mov byte [rcx + 0x6e5], 1
call fcn.1402e3df0
test eax, eax
je 0x1402e3c23
movzx eax, byte [rsi + 0x6e3]
test al, 2
je 0x1402e18a3
test al, 4
jne 0x1402e18a3
test al, 1
jne 0x1402e18a3
cmp dword [rsi + 0x5e0], 1
jne 0x1402e18a3
movzx eax, byte [rsi + 0x5e4]
cmp al, 0x1e
je 0x1402e18b2
cmp al, 0x40
jne 0x1402e18a3
mov rcx, qword [rsi + 0x40]
test rcx, rcx
je 0x1402e181d
lea rdx, [rcx + 6]
cmp rdx, qword [rsi + 0x50]
ja 0x1402e1899
mov eax, dword [rcx]
mov dword [rbp + 0x340], eax
movzx eax, word [rcx + 4]
mov word [rbp + 0x344], ax
mov qword [rsi + 0x40], rdx
jmp 0x1402e183c
mov r9, qword [rsi + 0x30]
lea rcx, [rbp + 0x340]
mov edx, 6
lea r8d, [rdx - 5]
call fcn.1403364cc
cmp rax, 1
jne 0x1402e1899
cmp byte [rbp + 0x340], 0x66
jne 0x1402e18a3
cmp byte [rbp + 0x341], 0x69
jne 0x1402e18a3
cmp byte [rbp + 0x342], 0x73
jne 0x1402e18a3
cmp byte [rbp + 0x343], 0x68
jne 0x1402e18a3
cmp byte [rbp + 0x344], 0x65
jne 0x1402e18a3
cmp byte [rbp + 0x345], 0x61
jne 0x1402e18a3
mov rcx, rsi
call fcn.1402de990
cmp al, 0x64
jne 0x1402e18a3
mov rcx, rsi
call fcn.1402de990
test al, al
jne 0x1402e18a3
mov dword [rsi + 0x9c], 0x26
jmp 0x1402e3c23
mov dword [rsi + 0x98], 1
mov dword [rsi + 0x9c], 0x22
jmp 0x1402e3c23
mov rcx, rsi
call fcn.1402de990
cmp al, 1
jne 0x1402e18a3
mov rax, qword [rsi + 0x40]
test rax, rax
je 0x1402e18ee
lea rdi, [rax + 6]
cmp rdi, qword [rsi + 0x50]
ja 0x1402e3c0f
mov ecx, dword [rax]
mov dword [rbp + 0x340], ecx
movzx edx, word [rax + 4]
mov word [rbp + 0x344], dx
mov qword [rsi + 0x40], rdi
jmp 0x1402e191e
mov r9, qword [rsi + 0x30]
lea rcx, [rbp + 0x340]
mov edx, 6
lea r8d, [rdx - 5]
call fcn.1403364cc
cmp rax, 1
jne 0x1402e3c0f
movzx edx, word [rbp + 0x344]
mov ecx, dword [rbp + 0x340]
cmp ecx, dword [str.vorbis]
jne 0x1402e18a3
cmp dx, word [0x1404234c8]
jne 0x1402e18a3
mov rcx, rsi
call fcn.1402de7d0
test eax, eax
jne 0x1402e18a3
mov rcx, rsi
call fcn.1402de990
movzx eax, al
mov dword [rsi + 4], eax
test eax, eax
je 0x1402e18a3
cmp eax, 0x10
jbe 0x1402e1971
mov dword [rsi + 0x9c], 5
jmp 0x1402e3c23
mov rcx, rsi
call fcn.1402de7d0
mov dword [rsi], eax
test eax, eax
je 0x1402e18a3
mov rcx, rsi
call fcn.1402de7d0
mov rcx, rsi
call fcn.1402de7d0
mov rcx, rsi
call fcn.1402de7d0
mov rcx, rsi
call fcn.1402de990
movzx edx, al
mov eax, 1
mov edi, edx
shr edx, 4
and edi, 0xf
mov ecx, edi
shl eax, cl
mov ecx, edx
mov dword [rsi + 0xa8], eax
mov eax, 1
shl eax, cl
mov dword [rsi + 0xac], eax
lea eax, [rdi - 6]
cmp eax, 7
ja 0x1402e1c90
lea eax, [rdx - 6]
cmp eax, 7
ja 0x1402e1c90
cmp edi, edx
ja 0x1402e1c90
mov rcx, rsi
call fcn.1402de990
test al, 1
je 0x1402e18a3
mov rcx, rsi
call fcn.1402e3df0
test eax, eax
je 0x1402e3c23
mov rcx, rsi
call fcn.1402e3c80
test eax, eax
je 0x1402e3c23
mov rcx, rsi
call fcn.1402e0f70
test eax, eax
je 0x1402e3c23
mov rcx, rsi
call fcn.1402de9e0
mov dword [rsi + 0x6f8], r13d
cmp eax, 3
jne 0x1402e1c90
mov rdi, r13
mov rcx, rsi
call fcn.1402de9e0
mov byte [rbp + rdi + 0x340], al
inc rdi
mov dword [rsi + 0x6f8], r13d
cmp rdi, 6
jl 0x1402e1a47
mov eax, dword [rbp + 0x340]
cmp eax, dword [str.vorbis]
jne 0x1402e1c90
movzx eax, word [rbp + 0x344]
cmp ax, word [0x1404234c8]
jne 0x1402e1c90
mov rcx, rsi
call fcn.1402de900
movsxd rdi, eax
mov rcx, rsi
lea edx, [rdi + 1]
call fcn.1402e1640
mov qword [rsi + 0x18], rax
test rax, rax
je 0x1402e2ff3
mov rbx, rdi
test edi, edi
jle 0x1402e1ae2
mov rdi, r13
nop dword [rax]
mov rcx, rsi
call fcn.1402de9e0
mov rcx, qword [rsi + 0x18]
mov dword [rsi + 0x6f8], r13d
mov byte [rdi + rcx], al
inc rdi
cmp rdi, rbx
jl 0x1402e1ac0
mov rax, qword [rsi + 0x18]
mov rcx, rsi
mov byte [rbx + rax], r13b
call fcn.1402de900
mov dword [rsi + 0x20], eax
mov qword [rsi + 0x28], r13
test eax, eax
jle 0x1402e1b15
lea edx, [rax*8]
mov rcx, rsi
call fcn.1402e1640
mov qword [rsi + 0x28], rax
test rax, rax
je 0x1402e2ff3
mov r12d, r13d
cmp dword [rsi + 0x20], r13d
jle 0x1402e1be2
mov r14, r13
mov rcx, rsi
call fcn.1402de900
mov rdi, qword [rsi + 0x80]
movsxd r15, eax
lea ecx, [r15 + 8]
and ecx, 0xfffffff8
add dword [rsi + 8], ecx
test rdi, rdi
je 0x1402e1b64
movsxd rax, dword [rsi + 0x90]
lea edx, [rax + rcx]
cmp edx, dword [rsi + 0x94]
jg 0x1402e1b75
mov dword [rsi + 0x90], edx
lea rcx, [rdi + rax]
jmp 0x1402e1b78
test ecx, ecx
je 0x1402e1b75
movsxd rcx, ecx
call fcn.14033c138
mov rcx, rax
jmp 0x1402e1b78
mov rcx, r13
mov rax, qword [rsi + 0x28]
mov qword [r14 + rax], rcx
mov rax, qword [rsi + 0x28]
cmp qword [r14 + rax], r13
je 0x1402e2ff3
test r15d, r15d
jle 0x1402e1bc9
mov rdi, r13
mov ebx, r15d
nop dword [rax]
mov rcx, rsi
call fcn.1402de9e0
mov rcx, qword [rsi + 0x28]
lea rdi, [rdi + 1]
mov dword [rsi + 0x6f8], r13d
mov rdx, qword [r14 + rcx]
mov byte [rdi + rdx - 1], al
sub rbx, 1
jne 0x1402e1ba0
mov rax, qword [rsi + 0x28]
mov rax, qword [r14 + rax]
inc r12d
add r14, 8
mov byte [r15 + rax], r13b
cmp r12d, dword [rsi + 0x20]
jl 0x1402e1b25
mov rcx, rsi
call fcn.1402de9e0
mov dword [rsi + 0x6f8], r13d
test al, 1
je 0x1402e1c90
movzx edx, byte [rsi + 0x6e4]
mov rcx, rsi
call fcn.1402e16d0
mov byte [rsi + 0x6e4], r13b
nop
mov rcx, rsi
call fcn.1402e0f70
movsxd rdi, eax
mov rax, qword [rsi + 0x40]
test rax, rax
je 0x1402e1c3e
lea rdx, [rax + rdi]
mov qword [rsi + 0x40], rdx
cmp rdx, qword [rsi + 0x50]
jb 0x1402e1c56
mov dword [rsi + 0x98], 1
jmp 0x1402e1c56
mov rcx, qword [rsi + 0x30]
call fcn.14033968c
mov rcx, qword [rsi + 0x30]
xor r8d, r8d
lea edx, [rax + rdi]
call fcn.1403367dc
mov byte [rsi + 0x6e4], r13b
test edi, edi
jne 0x1402e1c10
mov rcx, rsi
call fcn.1402e3c80
test eax, eax
je 0x1402e3c23
cmp byte [rsi + 0x5c], r13b
je 0x1402e1c9f
mov rcx, rsi
call fcn.1402e0d20
test eax, eax
jne 0x1402e1c9f
cmp dword [rsi + 0x9c], 0x15
jne 0x1402e3c23
mov dword [rsi + 0x9c], 0x14
jmp 0x1402e3c23
mov r8d, r13d
lea r9, [0x140675e80]
mov r10d, 0x4c11db7
nop
mov eax, r8d
lea r9, [r9 + 4]
shl eax, 0x18
mov ecx, r13d
cmp eax, 0x80000000
mov edx, r13d
mov edi, r13d
cmovae ecx, r10d
add eax, eax
xor ecx, eax
cmp ecx, 0x80000000
cmovae edx, r10d
lea eax, [rcx + rcx]
mov ecx, r13d
xor edx, eax
cmp edx, 0x80000000
cmovae ecx, r10d
lea eax, [rdx + rdx]
mov edx, r13d
xor ecx, eax
cmp ecx, 0x80000000
cmovae edx, r10d
lea eax, [rcx + rcx]
mov ecx, r13d
xor edx, eax
cmp edx, 0x80000000
cmovae ecx, r10d
lea eax, [rdx + rdx]
mov edx, r13d
xor ecx, eax
cmp ecx, 0x80000000
cmovae edx, r10d
lea eax, [rcx + rcx]
mov ecx, r13d
xor edx, eax
cmp edx, 0x80000000
cmovae edi, r10d
lea eax, [rdx + rdx]
xor edi, eax
cmp edi, 0x80000000
cmovae ecx, r10d
inc r8d
lea eax, [rdi + rdi]
xor ecx, eax
mov dword [r9 - 4], ecx
cmp r8d, 0x100
jl 0x1402e1cb0
cmp byte [rsi + 0x6e4], r13b
jne 0x1402e1d90
cmp dword [rsi + 0x6ec], r13d
jne 0x1402e1d7a
mov rcx, rsi
call fcn.1402e0f70
test eax, eax
jne 0x1402e1d90
mov dword [rsi + 0x6f8], r13d
mov dword [rsi + 0x9c], 0x14
jmp 0x1402e3c23
dec byte [rsi + 0x6e4]
inc dword [rsi + 0x6fc]
mov rax, qword [rsi + 0x40]
test rax, rax
je 0x1402e1db7
cmp rax, qword [rsi + 0x50]
jae 0x1402e1dc7
movzx ecx, byte [rax]
inc rax
mov qword [rsi + 0x40], rax
jmp 0x1402e1dd3
mov rcx, qword [rsi + 0x30]
call fcn.140335fa4
mov ecx, eax
cmp eax, 0xffffffff
jne 0x1402e1dd3
xor cl, cl
mov dword [rsi + 0x98], 1
mov dword [rsi + 0x6f8], r13d
cmp cl, 5
jne 0x1402e1c90
mov rdi, r13
cmp byte [rsi + 0x6e4], r13b
jne 0x1402e1e0c
cmp dword [rsi + 0x6ec], r13d
je 0x1402e1dfc
mov cl, 0xff
jmp 0x1402e1e4f
mov rcx, rsi
call fcn.1402e0f70
test eax, eax
jne 0x1402e1e0c
mov cl, 0xff
jmp 0x1402e1e4f
dec byte [rsi + 0x6e4]
inc dword [rsi + 0x6fc]
mov rax, qword [rsi + 0x40]
test rax, rax
je 0x1402e1e33
cmp rax, qword [rsi + 0x50]
jae 0x1402e1e43
movzx ecx, byte [rax]
inc rax
mov qword [rsi + 0x40], rax
jmp 0x1402e1e4f
mov rcx, qword [rsi + 0x30]
call fcn.140335fa4
mov ecx, eax
cmp eax, 0xffffffff
jne 0x1402e1e4f
xor cl, cl
mov dword [rsi + 0x98], 1
mov byte [rbp + rdi + 0x340], cl
inc rdi
mov dword [rsi + 0x6f8], r13d
cmp rdi, 6
jl 0x1402e1de6
mov eax, dword [rbp + 0x340]
cmp eax, dword [str.vorbis]
jne 0x1402e1c90
movzx eax, word [rbp + 0x344]
cmp ax, word [0x1404234c8]
jne 0x1402e1c90
mov edx, 8
mov rcx, rsi
call fcn.1402dea70
inc eax
mov rcx, rsi
imul edx, eax, 0x848
mov dword [rsi + 0xb0], eax
call fcn.1402e1640
mov qword [rsi + 0xb8], rax
mov rcx, rax
test rax, rax
je 0x1402e2ff3
movsxd rax, dword [rsi + 0xb0]
xor edx, edx
imul r8, rax, 0x848
call fcn.140328dd0
mov r15d, 0xffffffff
mov dword [rsp + 0x20], r13d
cmp dword [rsi + 0xb0], r13d
jle 0x1402e2bd8
movsd xmm9, qword [0x14039b430]
mov rax, r13
movss xmm11, dword [0x14036ef80]
xorps xmm8, xmm8
mov qword [rsp + 0x30], rax
xorps xmm10, xmm10
imul r14, rax, 0x848
mov edx, 8
mov rcx, rsi
add r14, qword [rsi + 0xb8]
mov r12d, r13d
call fcn.1402dea70
cmp al, 0x42
jne 0x1402e1c90
mov edx, 8
mov rcx, rsi
call fcn.1402dea70
cmp al, 0x43
jne 0x1402e1c90
mov edx, 8
mov rcx, rsi
call fcn.1402dea70
cmp al, 0x56
jne 0x1402e1c90
mov edx, 8
mov rcx, rsi
call fcn.1402dea70
mov edx, 8
mov rcx, rsi
mov edi, eax
call fcn.1402dea70
shl eax, 8
mov edx, 8
movzx ecx, dil
add eax, ecx
mov rcx, rsi
mov dword [r14], eax
call fcn.1402dea70
mov edx, 8
mov rcx, rsi
mov ebx, eax
call fcn.1402dea70
mov edx, 8
mov rcx, rsi
mov edi, eax
call fcn.1402dea70
shl eax, 0x10
mov edx, 1
movzx ecx, dil
shl ecx, 8
add eax, ecx
movzx ecx, bl
add eax, ecx
mov rcx, rsi
mov dword [r14 + 4], eax
call fcn.1402dea70
mov edi, eax
test eax, eax
je 0x1402e1fe1
mov eax, r13d
jmp 0x1402e1fee
mov edx, 1
mov rcx, rsi
call fcn.1402dea70
mov byte [r14 + 0x1b], al
cmp dword [r14], r12d
jne 0x1402e2001
cmp dword [r14 + 4], r12d
jne 0x1402e1c90
mov ecx, dword [r14 + 4]
mov rdx, qword [rsi + 0x80]
add ecx, 7
and ecx, 0xfffffff8
test al, al
je 0x1402e204a
test rdx, rdx
je 0x1402e203d
mov eax, dword [rsi + 0x94]
sub eax, ecx
cmp eax, dword [rsi + 0x90]
jl 0x1402e2ff3
movsxd rbx, eax
add rbx, rdx
mov dword [rsi + 0x94], eax
jmp 0x1402e2087
movsxd rcx, ecx
call fcn.14033c138
mov rbx, rax
jmp 0x1402e2087
add dword [rsi + 8], ecx
test rdx, rdx
je 0x1402e206f
movsxd rax, dword [rsi + 0x90]
add ecx, eax
cmp ecx, dword [rsi + 0x94]
jg 0x1402e2080
mov dword [rsi + 0x90], ecx
lea rbx, [rdx + rax]
jmp 0x1402e2083
test ecx, ecx
je 0x1402e2080
movsxd rcx, ecx
call fcn.14033c138
mov rbx, rax
jmp 0x1402e2083
mov rbx, r13
mov qword [r14 + 8], rbx
test rbx, rbx
je 0x1402e2ff3
test edi, edi
mov edi, r13d
je 0x1402e210b
mov edx, 5
mov rcx, rsi
call fcn.1402dea70
mov ecx, dword [r14 + 4]
mov edx, ecx
lea r15d, [rax + 1]
test ecx, ecx
jle 0x1402e2103
sub ecx, edi
call fcn.1402dee30
mov edx, eax
mov rcx, rsi
call fcn.1402dea70
movsxd rcx, eax
cmp r15d, 0x20
jge 0x1402e1c90
lea eax, [rcx + rdi]
mov dword [rsp + 0x24], eax
cmp eax, dword [r14 + 4]
jg 0x1402e1c90
mov r8, rcx
mov edx, r15d
movsxd rcx, edi
add rcx, rbx
call fcn.140328dd0
mov ecx, dword [r14 + 4]
inc r15d
mov edi, dword [rsp + 0x24]
mov edx, ecx
cmp edi, ecx
jl 0x1402e20b2
mov r15d, 0xffffffff
jmp 0x1402e2161
mov ecx, dword [r14 + 4]
mov edx, ecx
test ecx, ecx
jle 0x1402e2161
cmp byte [r14 + 0x1b], r13b
je 0x1402e2135
mov edx, 1
mov rcx, rsi
call fcn.1402dea70
test eax, eax
jne 0x1402e2135
movsxd rax, edi
mov byte [rax + rbx], 0xff
jmp 0x1402e2155
mov edx, 5
mov rcx, rsi
call fcn.1402dea70
inc al
movsxd rcx, edi
inc r12d
mov byte [rcx + rbx], al
cmp al, 0x20
je 0x1402e1c90
mov ecx, dword [r14 + 4]
inc edi
mov edx, ecx
cmp edi, ecx
jl 0x1402e2115
movzx edi, byte [r14 + 0x1b]
test dil, dil
je 0x1402e221a
mov eax, ecx
sar eax, 2
cmp r12d, eax
jl 0x1402e2291
cmp ecx, dword [rsi + 0x10]
jle 0x1402e2189
mov dword [rsi + 0x10], ecx
mov ecx, dword [r14 + 4]
mov rdi, qword [rsi + 0x80]
add ecx, 7
and ecx, 0xfffffff8
add dword [rsi + 8], ecx
test rdi, rdi
je 0x1402e21bf
movsxd rax, dword [rsi + 0x90]
lea edx, [rax + rcx]
cmp edx, dword [rsi + 0x94]
jg 0x1402e2fef
mov dword [rsi + 0x90], edx
add rax, rdi
jmp 0x1402e21cf
test ecx, ecx
je 0x1402e2fef
movsxd rcx, ecx
call fcn.14033c138
mov qword [r14 + 8], rax
test rax, rax
je 0x1402e2ff3
movsxd r8, dword [r14 + 4]
mov rdx, rbx
mov rcx, rax
call fcn.140328640
cmp qword [rsi + 0x80], r13
je 0x1402e2206
mov eax, dword [r14 + 4]
add eax, 7
and eax, 0xfffffff8
add dword [rsi + 0x94], eax
jmp 0x1402e220e
mov rcx, rbx
call fcn.14032cd24
mov rbx, qword [r14 + 8]
mov edx, dword [r14 + 4]
mov byte [r14 + 0x1b], r13b
xor al, al
mov r12d, r13d
test edx, edx
jle 0x1402e2240
mov rcx, rbx
movzx eax, byte [rcx]
sub al, 0xb
cmp al, 0xf3
ja 0x1402e2232
inc r12d
inc rcx
sub rdx, 1
jne 0x1402e2226
movzx eax, byte [r14 + 0x1b]
mov dword [r14 + 0x840], r12d
mov rdi, r13
test al, al
jne 0x1402e229d
mov eax, dword [r14 + 4]
mov r8, qword [rsi + 0x80]
lea eax, [rax*4 + 7]
and eax, 0xfffffff8
add dword [rsi + 8], eax
test r8, r8
je 0x1402e22e3
movsxd rcx, dword [rsi + 0x90]
lea edx, [rcx + rax]
cmp edx, dword [rsi + 0x94]
jg 0x1402e3002
mov dword [rsi + 0x90], edx
lea rax, [r8 + rcx]
jmp 0x1402e22f3
test dil, dil
je 0x1402e221a
mov dword [r14 + 0x840], r12d
mov rdi, r13
test r12d, r12d
je 0x1402e23c9
mov rdx, qword [rsi + 0x80]
add r12d, 7
and r12d, 0xfffffff8
add dword [rsi + 8], r12d
test rdx, rdx
je 0x1402e2305
movsxd rax, dword [rsi + 0x90]
lea ecx, [rax + r12]
cmp ecx, dword [rsi + 0x94]
jg 0x1402e3015
mov dword [rsi + 0x90], ecx
add rax, rdx
jmp 0x1402e2316
test eax, eax
je 0x1402e3002
movsxd rcx, eax
call fcn.14033c138
mov qword [r14 + 0x28], rax
test rax, rax
je 0x1402e2ff3
jmp 0x1402e23df
test r12d, r12d
je 0x1402e3015
movsxd rcx, r12d
call fcn.14033c138
mov qword [r14 + 8], rax
test rax, rax
je 0x1402e302f
mov eax, dword [r14 + 0x840]
mov rdx, qword [rsi + 0x80]
lea ecx, [rax*4 + 7]
and ecx, 0xfffffff8
test rdx, rdx
je 0x1402e2361
mov eax, dword [rsi + 0x94]
sub eax, ecx
cmp eax, dword [rsi + 0x90]
jl 0x1402e3002
mov dword [rsi + 0x94], eax
cdqe
add rax, rdx
jmp 0x1402e2369
movsxd rcx, ecx
call fcn.14033c138
mov qword [r14 + 0x28], rax
test rax, rax
je 0x1402e2ff3
mov eax, dword [r14 + 0x840]
mov rdx, qword [rsi + 0x80]
lea ecx, [rax*4 + 7]
and ecx, 0xfffffff8
test rdx, rdx
je 0x1402e23b5
mov eax, dword [rsi + 0x94]
sub eax, ecx
cmp eax, dword [rsi + 0x90]
jl 0x1402e2ff3
movsxd rdi, eax
add rdi, rdx
mov dword [rsi + 0x94], eax
jmp 0x1402e23c0
movsxd rcx, ecx
call fcn.14033c138
mov rdi, rax
test rdi, rdi
je 0x1402e2ff3
mov edx, dword [r14 + 0x840]
mov ecx, dword [r14 + 4]
lea eax, [rcx + rdx*8]
cmp eax, dword [rsi + 0x10]
jbe 0x1402e23df
mov dword [rsi + 0x10], eax
mov r8d, dword [r14 + 4]
mov r9, rdi
mov rdx, rbx
mov rcx, r14
call fcn.1402ba7a0
test eax, eax
je 0x1402e3102
mov eax, dword [r14 + 0x840]
test eax, eax
je 0x1402e24e2
mov r8, qword [rsi + 0x80]
lea eax, [rax*4 + 0xb]
and eax, 0xfffffff8
add dword [rsi + 8], eax
test r8, r8
je 0x1402e2443
movsxd rcx, dword [rsi + 0x90]
lea edx, [rcx + rax]
cmp edx, dword [rsi + 0x94]
jg 0x1402e303e
mov dword [rsi + 0x90], edx
lea rax, [r8 + rcx]
jmp 0x1402e2453
test eax, eax
je 0x1402e303e
movsxd rcx, eax
call fcn.14033c138
mov qword [r14 + 0x830], rax
test rax, rax
je 0x1402e3045
mov eax, dword [r14 + 0x840]
mov r8, qword [rsi + 0x80]
lea eax, [rax*4 + 0xb]
and eax, 0xfffffff8
add dword [rsi + 8], eax
test r8, r8
je 0x1402e24a5
movsxd rcx, dword [rsi + 0x90]
lea edx, [rcx + rax]
cmp edx, dword [rsi + 0x94]
jg 0x1402e3028
mov dword [rsi + 0x90], edx
lea rax, [r8 + rcx]
jmp 0x1402e24b5
test eax, eax
je 0x1402e3028
movsxd rcx, eax
call fcn.14033c138
mov qword [r14 + 0x838], rax
test rax, rax
je 0x1402e302f
add rax, 4
mov r8, rdi
mov qword [r14 + 0x838], rax
mov rdx, rbx
mov rcx, r14
mov dword [rax - 4], r15d
call fcn.1402baa20
cmp byte [r14 + 0x1b], r13b
je 0x1402e2568
cmp qword [rsi + 0x80], r13
je 0x1402e250e
mov eax, dword [r14 + 0x840]
lea eax, [rax*4 + 7]
and eax, 0xfffffff8
add dword [rsi + 0x94], eax
jmp 0x1402e251f
mov rcx, rdi
call fcn.14032cd24
cmp qword [rsi + 0x80], r13
je 0x1402e2538
mov eax, dword [r14 + 0x840]
lea eax, [rax*4 + 7]
and eax, 0xfffffff8
add dword [rsi + 0x94], eax
jmp 0x1402e254a
mov rcx, qword [r14 + 0x28]
call fcn.14032cd24
cmp qword [rsi + 0x80], r13
je 0x1402e255c
mov eax, dword [r14 + 4]
add eax, 7
and eax, 0xfffffff8
add dword [rsi + 0x94], eax
jmp 0x1402e2564
mov rcx, rbx
call fcn.14032cd24
mov qword [r14 + 0x28], r13
lea rdi, [r14 + 0x30]
movsx rax, r15w
mov ecx, 0x400
rep stosw word [rdi], ax
cmp byte [r14 + 0x1b], r13b
je 0x1402e2587
mov r11d, dword [r14 + 0x840]
jmp 0x1402e258b
mov r11d, dword [r14 + 4]
cmp r11d, 0x7fff
jle 0x1402e259c
mov r11d, 0x7fff
jmp 0x1402e25a5
test r11d, r11d
jle 0x1402e2671
mov r8, qword [r14 + 8]
mov r9, r13
mov r10d, r13d
nop
cmp byte [r8 + r9], 0xa
ja 0x1402e2662
cmp byte [r14 + 0x1b], r13b
je 0x1402e2630
mov rax, qword [r14 + 0x830]
mov ecx, dword [rax + r9*4]
mov edx, ecx
shr edx, 1
lea eax, [rcx + rcx]
xor edx, eax
lea eax, [rcx + rcx]
and edx, 0x55555555
xor edx, eax
mov ecx, edx
shr ecx, 2
lea eax, [rdx*4]
xor ecx, eax
lea eax, [rdx*4]
and ecx, 0x33333333
xor ecx, eax
mov edx, ecx
mov eax, ecx
shr edx, 4
shl eax, 4
xor edx, eax
shl ecx, 4
and edx, 0xf0f0f0f
xor edx, ecx
mov edi, edx
mov eax, edx
shr edi, 8
shl eax, 8
xor edi, eax
shl edx, 8
and edi, 0xff00ff
xor edi, edx
rol edi, 0x10
jmp 0x1402e2638
mov rax, qword [r14 + 0x28]
mov edi, dword [rax + r9*4]
cmp edi, 0x400
jae 0x1402e2662
mov eax, edi
mov word [r14 + rax*2 + 0x30], r10w
mov eax, 1
mov r8, qword [r14 + 8]
movzx ecx, byte [r8 + r9]
shl eax, cl
add edi, eax
cmp edi, 0x400
jb 0x1402e2640
inc r10d
inc r9
cmp r10d, r11d
jl 0x1402e25b0
mov edx, 4
mov rcx, rsi
call fcn.1402dea70
mov byte [r14 + 0x19], al
cmp al, 2
ja 0x1402e1c90
test al, al
je 0x1402e2bb5
mov eax, dword [rsi + 0x6f8]
test eax, eax
jns 0x1402e26a5
mov edx, r13d
movaps xmm0, xmm8
jmp 0x1402e2707
cmp eax, 0x20
jge 0x1402e26cf
mov edx, 0x18
mov rcx, rsi
call fcn.1402dea70
mov edx, 8
mov rcx, rsi
mov edi, eax
call fcn.1402dea70
mov ecx, eax
shl ecx, 0x18
add ecx, edi
jmp 0x1402e26e5
mov ecx, dword [rsi + 0x6f4]
add eax, 0xffffffe0
mov dword [rsi + 0x6f8], eax
mov dword [rsi + 0x6f4], r13d
mov eax, ecx
mov edx, ecx
shr edx, 0x15
and eax, 0x1fffff
and edx, 0x3ff
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
test ecx, ecx
jns 0x1402e2707
xorps xmm0, xmm9
cvtsd2ss xmm0, xmm0
add edx, 0xfffffcec
cvtss2sd xmm0, xmm0
call fcn.140331f64
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movss dword [r14 + 0x10], xmm1
mov eax, dword [rsi + 0x6f8]
test eax, eax
jns 0x1402e273a
mov edx, r13d
movaps xmm0, xmm8
jmp 0x1402e279c
cmp eax, 0x20
jge 0x1402e2764
mov edx, 0x18
mov rcx, rsi
call fcn.1402dea70
mov edx, 8
mov rcx, rsi
mov edi, eax
call fcn.1402dea70
mov ecx, eax
shl ecx, 0x18
add ecx, edi
jmp 0x1402e277a
mov ecx, dword [rsi + 0x6f4]
add eax, 0xffffffe0
mov dword [rsi + 0x6f8], eax
mov dword [rsi + 0x6f4], r13d
mov eax, ecx
mov edx, ecx
shr edx, 0x15
and eax, 0x1fffff
and edx, 0x3ff
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
test ecx, ecx
jns 0x1402e279c
xorps xmm0, xmm9
cvtsd2ss xmm0, xmm0
add edx, 0xfffffcec
cvtss2sd xmm0, xmm0
call fcn.140331f64
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movss dword [r14 + 0x14], xmm1
mov ecx, dword [rsi + 0x6f8]
test ecx, ecx
jns 0x1402e27ce
mov edx, r13d
jmp 0x1402e28b8
cmp ecx, 4
jge 0x1402e289b
test ecx, ecx
jne 0x1402e27e2
mov dword [rsi + 0x6f4], r13d
lea rdi, [rsi + 0x6f8]
nop dword [rax]
cmp byte [rsi + 0x6e4], r13b
jne 0x1402e2816
cmp dword [rsi + 0x6ec], r13d
jne 0x1402e2997
mov rcx, rsi
call fcn.1402e0f70
test eax, eax
je 0x1402e2997
dec byte [rsi + 0x6e4]
inc dword [rsi + 0x6fc]
mov rax, qword [rsi + 0x40]
test rax, rax
je 0x1402e2855
lea rdi, [rsi + 0x6f8]
cmp rax, qword [rsi + 0x50]
jb 0x1402e2847
mov dword [rsi + 0x98], 1
mov eax, r13d
jmp 0x1402e287c
movzx ecx, byte [rax]
inc rax
mov qword [rsi + 0x40], rax
mov eax, ecx
jmp 0x1402e287c
mov rcx, qword [rsi + 0x30]
call fcn.140335fa4
lea rdi, [rsi + 0x6f8]
cmp eax, 0xffffffff
jne 0x1402e2879
mov dword [rsi + 0x98], 1
mov eax, r13d
jmp 0x1402e287c
movzx eax, al
mov rcx, rdi
mov ecx, dword [rcx]
shl eax, cl
add ecx, 8
add dword [rsi + 0x6f4], eax
mov dword [rsi + 0x6f8], ecx
cmp ecx, 4
jl 0x1402e27f0
mov edx, dword [rsi + 0x6f4]
mov eax, edx
shr eax, 4
mov dword [rsi + 0x6f4], eax
and edx, 0xf
lea eax, [rcx - 4]
mov dword [rsi + 0x6f8], eax
inc dl
mov rcx, rsi
mov byte [r14 + 0x18], dl
mov edx, 1
call fcn.1402dea70
cmp byte [r14 + 0x19], 1
mov byte [r14 + 0x1a], al
jne 0x1402e29a2
mov r15d, dword [r14 + 4]
xorps xmm0, xmm0
mov edi, dword [r14]
cvtsi2ss xmm0, r15d
cvtps2pd xmm0, xmm0
call fcn.14033c5b0
xorps xmm2, xmm2
xorps xmm1, xmm1
cvtsd2ss xmm2, xmm0
cvtsi2ss xmm1, edi
divss xmm2, xmm1
cvtps2pd xmm0, xmm2
call fcn.1403397a0
call fcn.14033c500
cvttsd2si ebx, xmm0
xorps xmm0, xmm0
xorps xmm6, xmm6
cvtsi2sd xmm6, edi
cvtsi2ss xmm0, ebx
movaps xmm1, xmm6
addss xmm0, xmm11
cvtps2pd xmm0, xmm0
call fcn.14032eb30
call fcn.14033c500
cvttsd2si eax, xmm0
lea edi, [rbx + 1]
xorps xmm7, xmm7
movaps xmm1, xmm6
cmp eax, r15d
cmovg edi, ebx
cvtsi2ss xmm7, edi
movaps xmm0, xmm7
addss xmm0, xmm11
cvtps2pd xmm0, xmm0
call fcn.14032eb30
xorps xmm2, xmm2
cvtsi2sd xmm2, r15d
comisd xmm2, xmm0
jae 0x1402e1c90
cvtps2pd xmm0, xmm7
movaps xmm1, xmm6
call fcn.14032eb30
call fcn.14033c500
cvttsd2si eax, xmm0
cmp eax, r15d
jg 0x1402e1c90
test edi, edi
js 0x1402e1c90
jmp 0x1402e29aa
mov dword [rdi], r15d
mov edx, r13d
jmp 0x1402e28b8
mov edi, dword [r14 + 4]
imul edi, dword [r14]
mov dword [r14 + 0x1c], edi
test edi, edi
je 0x1402e1c90
mov edx, edi
mov rcx, rsi
add edx, edx
call fcn.1402e1690
mov rbx, rax
test rax, rax
je 0x1402e2ff3
mov edx, dword [r14 + 0x1c]
mov edi, r13d
test edx, edx
jle 0x1402e2a07
nop dword [rax]
movzx edx, byte [r14 + 0x18]
mov rcx, rsi
call fcn.1402dea70
cmp eax, 0xffffffff
je 0x1402e3054
movsxd rcx, edi
inc edi
mov word [rbx + rcx*2], ax
mov edx, dword [r14 + 0x1c]
cmp edi, edx
jl 0x1402e29e0
cmp byte [r14 + 0x19], 1
movaps xmm6, xmm10
jne 0x1402e2b25
movzx r12d, byte [r14 + 0x1b]
test r12b, r12b
je 0x1402e2a31
mov edx, dword [r14 + 0x840]
test edx, edx
je 0x1402e2b88
jmp 0x1402e2a35
mov edx, dword [r14 + 4]
imul edx, dword [r14]
mov rcx, rsi
lea edx, [rdx*4]
call fcn.1402e1640
mov qword [r14 + 0x20], rax
test rax, rax
je 0x1402e30bf
test r12b, r12b
je 0x1402e2a63
mov r15d, dword [r14 + 0x840]
jmp 0x1402e2a67
mov r15d, dword [r14 + 4]
mov r10d, r13d
test r15d, r15d
jle 0x1402e2b1e
test r12b, r12b
je 0x1402e2a88
mov rax, qword [r14 + 0x838]
movsxd rcx, r10d
mov r11d, dword [rax + rcx*4]
jmp 0x1402e2a8b
mov r11d, r10d
mov edi, dword [r14]
mov r9d, 1
mov r8d, r13d
test edi, edi
jle 0x1402e2b12
nop dword [rax + rax]
xor edx, edx
imul edi, r10d
mov eax, r11d
div r9d
xor edx, edx
add edi, r8d
div dword [r14 + 0x1c]
movsxd rax, edx
movzx ecx, word [rbx + rax*2]
mov rax, qword [r14 + 0x20]
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movsxd rcx, edi
mulss xmm0, dword [r14 + 0x14]
addss xmm0, dword [r14 + 0x10]
addss xmm0, xmm6
movss dword [rax + rcx*4], xmm0
cmp byte [r14 + 0x1a], r13b
je 0x1402e2ae8
movaps xmm6, xmm0
mov edi, dword [r14]
inc r8d
cmp r8d, edi
jge 0x1402e2b12
mov ecx, dword [r14 + 0x1c]
xor edx, edx
mov eax, 0xffffffff
div ecx
cmp r9d, eax
ja 0x1402e3097
imul r9d, ecx
cmp r8d, edi
jl 0x1402e2aa0
inc r10d
cmp r10d, r15d
jl 0x1402e2a73
mov byte [r14 + 0x19], 2
jmp 0x1402e2b88
lea edx, [rdx*4]
mov rcx, rsi
call fcn.1402e1640
mov qword [r14 + 0x20], rax
test rax, rax
je 0x1402e30bf
mov edx, r13d
cmp dword [r14 + 0x1c], edx
jle 0x1402e2b88
nop word [rax + rax]
movsxd rcx, edx
movzx eax, word [rbx + rcx*2]
movd xmm0, eax
mov rax, qword [r14 + 0x20]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [r14 + 0x14]
addss xmm0, dword [r14 + 0x10]
addss xmm0, xmm6
movss dword [rax + rcx*4], xmm0
cmp byte [r14 + 0x1a], r13b
je 0x1402e2b80
movaps xmm6, xmm0
inc edx
cmp edx, dword [r14 + 0x1c]
jl 0x1402e2b50
cmp qword [rsi + 0x80], r13
je 0x1402e2ba7
mov eax, dword [r14 + 0x1c]
lea eax, [rax*2 + 7]
and eax, 0xfffffff8
add dword [rsi + 0x94], eax
jmp 0x1402e2baf
mov rcx, rbx
call fcn.14032cd24
mov r15d, 0xffffffff
mov edi, dword [rsp + 0x20]
mov rax, qword [rsp + 0x30]
inc edi
inc rax
mov dword [rsp + 0x20], edi
mov qword [rsp + 0x30], rax
cmp edi, dword [rsi + 0xb0]
jl 0x1402e1f11
mov edx, 6
mov rcx, rsi
mov edi, r13d
call fcn.1402dea70
add al, 1
movzx ebx, al
je 0x1402e2c0b
nop
mov edx, 0x10
mov rcx, rsi
call fcn.1402dea70
test eax, eax
jne 0x1402e1c90
inc edi
cmp edi, ebx
jl 0x1402e2bf0
mov edx, 6
mov rcx, rsi
call fcn.1402dea70
inc eax
mov rcx, rsi
imul edx, eax, 0x63c
mov dword [rsi + 0xc0], eax
call fcn.1402e1640
mov qword [rsi + 0x148], rax
test rax, rax
je 0x1402e2ff3
mov edi, r13d
mov dword [rsp + 0x24], r13d
cmp dword [rsi + 0xc0], r13d
jle 0x1402e3134
lea rbx, [rsi + 0xc4]
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], rbx
mov r14, r13
nop word [rax + rax]
mov edx, 0x10
mov rcx, rsi
call fcn.1402dea70
mov word [rbx], ax
cmp ax, 1
ja 0x1402e1c90
mov rcx, qword [rsi + 0x148]
test ax, ax
je 0x1402e32d0
lea rbx, [r14 + rcx]
mov edx, 5
mov rcx, rsi
mov r12d, r15d
call fcn.1402dea70
mov byte [rbx], al
mov r14d, r13d
test al, al
je 0x1402e2ced
nop word [rax + rax]
mov edx, 4
mov rcx, rsi
mov edi, r12d
call fcn.1402dea70
movzx r12d, al
movsxd rcx, r14d
cmp r12d, edi
cmovle r12d, edi
inc r14d
mov byte [rcx + rbx + 1], al
movzx eax, byte [rbx]
cmp r14d, eax
jl 0x1402e2cc0
mov eax, r13d
mov dword [rsp + 0x20], eax
test r12d, r12d
js 0x1402e2dbb
nop dword [rax]
mov edx, 3
movsxd rdi, eax
mov rcx, rsi
call fcn.1402dea70
inc al
lea r15, [rbx + rdi]
mov edx, 2
mov byte [rbx + rdi + 0x21], al
mov rcx, rsi
call fcn.1402dea70
mov byte [r15 + 0x31], al
test al, al
je 0x1402e2d4f
mov edx, 8
mov rcx, rsi
call fcn.1402dea70
mov byte [rbx + rdi + 0x41], al
movzx eax, al
cmp eax, dword [rsi + 0xb0]
jge 0x1402e1c90
movzx ecx, byte [r15 + 0x31]
mov eax, 1
shl eax, cl
mov r14d, r13d
test eax, eax
jle 0x1402e2da8
shl rdi, 4
add rdi, 0x52
add rdi, rbx
nop dword [rax]
mov edx, 8
mov rcx, rsi
call fcn.1402dea70
dec ax
mov word [rdi], ax
cwde
cmp eax, dword [rsi + 0xb0]
jge 0x1402e1c90
movzx ecx, byte [r15 + 0x31]
mov eax, 1
shl eax, cl
inc r14d
add rdi, 2
cmp r14d, eax
jl 0x1402e2d70
mov eax, dword [rsp + 0x20]
inc eax
mov dword [rsp + 0x20], eax
cmp eax, r12d
jle 0x1402e2d00
mov edx, 2
mov rcx, rsi
call fcn.1402dea70
inc al
mov edx, 4
mov rcx, rsi
mov byte [rbx + 0x634], al
call fcn.1402dea70
mov byte [rbx + 0x635], al
movzx ecx, al
mov eax, 1
mov word [rbx + 0x152], r13w
shl ax, cl
mov r12d, r13d
mov word [rbx + 0x154], ax
mov eax, 2
mov dword [rbx + 0x638], 2
cmp byte [rbx], r12b
jbe 0x1402e2e71
movsxd rax, r12d
mov edi, r13d
movzx r14d, byte [rax + rbx + 1]
cmp byte [r14 + rbx + 0x21], dil
jbe 0x1402e2e60
nop word [rax + rax]
movzx edx, byte [rbx + 0x635]
mov rcx, rsi
call fcn.1402dea70
movsxd rcx, dword [rbx + 0x638]
inc edi
mov word [rbx + rcx*2 + 0x152], ax
inc dword [rbx + 0x638]
movzx eax, byte [r14 + rbx + 0x21]
cmp edi, eax
jl 0x1402e2e30
movzx eax, byte [rbx]
inc r12d
cmp r12d, eax
jl 0x1402e2e14
mov eax, dword [rbx + 0x638]
mov edx, r13d
test eax, eax
jle 0x1402e2ea1
nop dword [rax + rax]
movsxd rcx, edx
movzx eax, word [rbx + rcx*2 + 0x152]
mov word [rsp + rcx*4 + 0x52], dx
inc edx
mov word [rsp + rcx*4 + 0x50], ax
mov eax, dword [rbx + 0x638]
cmp edx, eax
jl 0x1402e2e80
movsxd rdx, eax
lea r9, [0x1402e1030]
mov r8d, 4
lea rcx, [rsp + 0x50]
call fcn.14033c140
mov edx, dword [rbx + 0x638]
mov edi, r13d
lea r8d, [rdx - 1]
test r8d, r8d
jle 0x1402e2eea
nop dword [rax]
movsxd rcx, edi
movzx eax, word [rsp + rcx*4 + 0x54]
cmp word [rsp + rcx*4 + 0x50], ax
je 0x1402e1c90
inc edi
cmp edi, r8d
jl 0x1402e2ed0
mov edi, r13d
test edx, edx
jle 0x1402e2f0c
movsxd rcx, edi
inc edi
movzx eax, byte [rsp + rcx*4 + 0x52]
mov byte [rbx + rcx + 0x346], al
mov edx, dword [rbx + 0x638]
cmp edi, edx
jl 0x1402e2ef1
mov edi, 2
cmp edx, edi
jle 0x1402e2fa2
mov esi, 0xffffffff
nop
mov r14d, r13d
mov r11d, r13d
mov r10d, esi
mov r9d, 0x10000
mov edx, r13d
test edi, edi
jle 0x1402e2f7e
lea r8, [rbx + 0x152]
nop dword [rax]
movzx ecx, word [r8]
cmp ecx, r10d
jle 0x1402e2f5c
movsxd rax, edi
cmp cx, word [rbx + rax*2 + 0x152]
jae 0x1402e2f5c
mov r14d, edx
mov r10d, ecx
cmp ecx, r9d
jge 0x1402e2f74
movsxd rax, edi
cmp cx, word [rbx + rax*2 + 0x152]
jbe 0x1402e2f74
mov r11d, edx
mov r9d, ecx
inc edx
add r8, 2
cmp edx, edi
jl 0x1402e2f40
movsxd rax, edi
inc edi
mov byte [rbx + rax*2 + 0x440], r14b
mov byte [rbx + rax*2 + 0x441], r11b
mov edx, dword [rbx + 0x638]
cmp edi, edx
jl 0x1402e2f20
mov rsi, qword [rsp + 0x40]
cmp edx, dword [rsp + 0x28]
mov edi, dword [rsp + 0x24]
cmovle edx, dword [rsp + 0x28]
inc edi
mov rbx, qword [rsp + 0x30]
mov r14, qword [rsp + 0x38]
add rbx, 2
add r14, 0x63c
mov dword [rsp + 0x28], edx
mov dword [rsp + 0x24], edi
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x38], r14
cmp edi, dword [rsi + 0xc0]
jge 0x1402e3130
mov r15d, 0xffffffff
jmp 0x1402e2c70
mov qword [r14 + 8], r13
mov dword [rsi + 0x9c], 3
jmp 0x1402e3c23
mov qword [r14 + 0x28], r13
mov dword [rsi + 0x9c], 3
jmp 0x1402e3c23
mov qword [r14 + 8], r13
mov dword [rsi + 0x9c], 3
jmp 0x1402e3c23
mov qword [r14 + 0x838], r13
mov dword [rsi + 0x9c], 3
jmp 0x1402e3c23
mov qword [r14 + 0x830], r13
mov dword [rsi + 0x9c], 3
jmp 0x1402e3c23
cmp qword [rsi + 0x80], r13
je 0x1402e3080
mov eax, dword [r14 + 0x1c]
mov dword [rsi + 0x9c], 0x14
lea eax, [rax*2 + 7]
and eax, 0xfffffff8
add dword [rsi + 0x94], eax
jmp 0x1402e3c23
mov rcx, rbx
call fcn.14032cd24
mov dword [rsi + 0x9c], 0x14
jmp 0x1402e3c23
cmp qword [rsi + 0x80], r13
je 0x1402e3080
lea eax, [rcx*2 + 7]
mov dword [rsi + 0x9c], 0x14
and eax, 0xfffffff8
add dword [rsi + 0x94], eax
jmp 0x1402e3c23
cmp qword [rsi + 0x80], r13
je 0x1402e30eb
mov eax, dword [r14 + 0x1c]
mov dword [rsi + 0x9c], 3
lea eax, [rax*2 + 7]
and eax, 0xfffffff8
add dword [rsi + 0x94], eax
jmp 0x1402e3c23
mov rcx, rbx
call fcn.14032cd24
mov dword [rsi + 0x9c], 3
jmp 0x1402e3c23
cmp byte [r14 + 0x1b], r13b
je 0x1402e1c90
cmp qword [rsi + 0x80], r13
jne 0x1402e1c90
mov rcx, rdi
call fcn.14032cd24
mov dword [rsi + 0x9c], 0x14
jmp 0x1402e3c23
mov dword [rsp + 0x28], edx
mov edx, 6
mov rcx, rsi
call fcn.1402dea70
mov rcx, rsi
lea edx, [rax + 1]
mov dword [rsi + 0x150], edx
shl edx, 5
call fcn.1402e1640
mov qword [rsi + 0x1d8], rax
test rax, rax
je 0x1402e2ff3
movsxd r8, dword [rsi + 0x150]
xor edx, edx
shl r8, 5
mov rcx, rax
call fcn.140328dd0
mov dword [rsp + 0x20], r13d
cmp dword [rsi + 0x150], r13d
jle 0x1402e35f7
lea r15, [rsi + 0x154]
mov rdi, r13
mov qword [rsp + 0x38], r15
nop dword [rax + rax]
mov rbx, qword [rsi + 0x1d8]
mov edx, 0x10
mov rcx, rsi
call fcn.1402dea70
mov word [r15], ax
cmp ax, 2
ja 0x1402e1c90
mov edx, 0x18
mov rcx, rsi
call fcn.1402dea70
mov edx, 0x18
mov dword [rdi + rbx], eax
mov rcx, rsi
call fcn.1402dea70
mov dword [rdi + rbx + 4], eax
cmp eax, dword [rdi + rbx]
jb 0x1402e1c90
mov edx, 0x18
mov rcx, rsi
call fcn.1402dea70
inc eax
mov edx, 6
mov rcx, rsi
mov dword [rdi + rbx + 8], eax
call fcn.1402dea70
inc al
mov edx, 8
mov rcx, rsi
mov byte [rdi + rbx + 0xc], al
call fcn.1402dea70
mov byte [rdi + rbx + 0xd], al
movzx eax, al
cmp eax, dword [rsi + 0xb0]
jge 0x1402e1c90
movzx eax, byte [rdi + rbx + 0xc]
mov r15d, r13d
test al, al
je 0x1402e3293
nop
mov edx, 3
mov rcx, rsi
xor r14b, r14b
call fcn.1402dea70
mov edx, 1
mov rcx, rsi
mov r12d, eax
call fcn.1402dea70
test eax, eax
je 0x1402e3274
mov edx, 5
mov rcx, rsi
call fcn.1402dea70
mov r14d, eax
movzx eax, byte [rdi + rbx + 0xc]
shl r14b, 3
movsxd rcx, r15d
add r14b, r12b
inc r15d
mov byte [rbp + rcx + 0x350], r14b
cmp r15d, eax
jl 0x1402e3240
mov r8, qword [rsi + 0x80]
movzx ecx, al
shl ecx, 4
add dword [rsi + 8], ecx
test r8, r8
je 0x1402e3371
movsxd rax, dword [rsi + 0x90]
lea edx, [rcx + rax]
cmp edx, dword [rsi + 0x94]
jg 0x1402e36d2
mov dword [rsi + 0x90], edx
add rax, r8
jmp 0x1402e337e
movsxd rax, edi
mov edx, 8
imul rdi, rax, 0x63c
add rdi, rcx
mov rcx, rsi
call fcn.1402dea70
mov edx, 0x10
mov byte [rdi], al
mov rcx, rsi
call fcn.1402dea70
mov edx, 0x10
mov word [rdi + 2], ax
mov rcx, rsi
call fcn.1402dea70
mov edx, 6
mov word [rdi + 4], ax
mov rcx, rsi
call fcn.1402dea70
mov edx, 8
mov byte [rdi + 6], al
mov rcx, rsi
call fcn.1402dea70
mov edx, 4
mov byte [rdi + 7], al
mov rcx, rsi
call fcn.1402dea70
add al, 1
mov byte [rdi + 8], al
je 0x1402e3362
mov edx, 8
mov rcx, rsi
call fcn.1402dea70
movsxd rcx, r13d
inc r13d
mov byte [rcx + rdi + 9], al
movzx eax, byte [rdi + 8]
cmp r13d, eax
jl 0x1402e3342
mov dword [rsi + 0x9c], 4
jmp 0x1402e3c23
test ecx, ecx
je 0x1402e36d2
call fcn.14033c138
mov qword [rdi + rbx + 0x18], rax
test rax, rax
je 0x1402e36d7
mov ecx, r13d
mov dword [rsp + 0x24], ecx
cmp byte [rdi + rbx + 0xc], cl
jbe 0x1402e3437
nop dword [rax]
movsxd rax, ecx
mov r15d, r13d
mov r12, r13
mov qword [rsp + 0x40], rax
movzx ecx, byte [rbp + rax + 0x350]
mov dword [rsp + 0x30], ecx
nop word [rax + rax]
lea r14, [r12 + rax*8]
add r14, r14
bt ecx, r15d
jae 0x1402e3400
mov edx, 8
mov rcx, rsi
call fcn.1402dea70
mov rcx, qword [rdi + rbx + 0x18]
mov word [r14 + rcx], ax
mov rax, qword [rdi + rbx + 0x18]
movsx ecx, word [r14 + rax]
cmp ecx, dword [rsi + 0xb0]
jge 0x1402e1c90
mov ecx, dword [rsp + 0x30]
jmp 0x1402e340f
mov rax, qword [rdi + rbx + 0x18]
mov edx, 0xffffffff
mov word [r14 + rax], dx
mov rax, qword [rsp + 0x40]
inc r15d
inc r12
cmp r15d, 8
jl 0x1402e33c0
mov ecx, dword [rsp + 0x24]
movzx eax, byte [rdi + rbx + 0xc]
inc ecx
mov dword [rsp + 0x24], ecx
cmp ecx, eax
jl 0x1402e33a0
movzx eax, byte [rdi + rbx + 0xd]
mov r8, qword [rsi + 0x80]
imul rcx, rax, 0x848
mov rax, qword [rsi + 0xb8]
mov edx, dword [rcx + rax + 4]
shl edx, 3
add dword [rsi + 8], edx
test r8, r8
je 0x1402e3481
movsxd rax, dword [rsi + 0x90]
lea ecx, [rdx + rax]
cmp ecx, dword [rsi + 0x94]
jg 0x1402e36be
mov dword [rsi + 0x90], ecx
add rax, r8
jmp 0x1402e3491
test edx, edx
je 0x1402e36be
movsxd rcx, edx
call fcn.14033c138
mov qword [rdi + rbx + 0x10], rax
test rax, rax
je 0x1402e36c3
movzx ecx, byte [rdi + rbx + 0xd]
imul rdx, rcx, 0x848
mov rcx, qword [rsi + 0xb8]
movsxd r8, dword [rdx + rcx + 4]
xor edx, edx
shl r8, 3
mov rcx, rax
call fcn.140328dd0
movzx ecx, byte [rdi + rbx + 0xd]
mov r15d, r13d
mov rdx, qword [rsi + 0xb8]
imul rax, rcx, 0x848
cmp dword [rax + rdx + 4], r13d
jle 0x1402e35cb
nop word [rax + rax]
mov r8, qword [rsi + 0x80]
mov r14d, r15d
movzx eax, cl
imul rcx, rax, 0x848
mov r12d, dword [rcx + rdx]
lea eax, [r12 + 7]
and eax, 0xfffffff8
add dword [rsi + 8], eax
test r8, r8
je 0x1402e3535
movsxd rcx, dword [rsi + 0x90]
lea edx, [rax + rcx]
cmp edx, dword [rsi + 0x94]
jg 0x1402e3546
mov dword [rsi + 0x90], edx
add rcx, r8
jmp 0x1402e3549
test eax, eax
je 0x1402e3546
movsxd rcx, eax
call fcn.14033c138
mov rcx, rax
jmp 0x1402e3549
mov rcx, r13
mov rax, qword [rdi + rbx + 0x10]
movsxd r9, r15d
mov qword [rax + r9*8], rcx
mov rax, qword [rdi + rbx + 0x10]
cmp qword [rax + r9*8], r13
je 0x1402e2ff3
lea eax, [r12 - 1]
movsxd r8, eax
test eax, eax
js 0x1402e35a7
movzx ecx, byte [rdi + rbx + 0xc]
nop word [rax + rax]
mov eax, r14d
cdq
idiv ecx
mov rcx, qword [rdi + rbx + 0x10]
mov eax, r14d
mov rcx, qword [rcx + r9*8]
mov byte [r8 + rcx], dl
cdq
movzx ecx, byte [rdi + rbx + 0xc]
idiv ecx
sub r8, 1
mov r14d, eax
jns 0x1402e3580
movzx eax, byte [rdi + rbx + 0xd]
inc r15d
mov rdx, qword [rsi + 0xb8]
movzx ecx, al
imul rax, rax, 0x848
cmp r15d, dword [rax + rdx + 4]
jl 0x1402e34f0
mov r14d, dword [rsp + 0x20]
add rdi, 0x20
mov r15, qword [rsp + 0x38]
inc r14d
add r15, 2
mov dword [rsp + 0x20], r14d
mov qword [rsp + 0x38], r15
cmp r14d, dword [rsi + 0x150]
jl 0x1402e31a0
mov edx, 6
mov rcx, rsi
call fcn.1402dea70
inc eax
mov rcx, rsi
mov dword [rsi + 0x1e0], eax
lea edx, [rax + rax*2]
shl edx, 4
call fcn.1402e1640
mov qword [rsi + 0x1e8], rax
mov rcx, rax
test rax, rax
je 0x1402e2ff3
movsxd rax, dword [rsi + 0x1e0]
xor edx, edx
lea r8, [rax + rax*2]
shl r8, 4
call fcn.140328dd0
mov r15d, r13d
cmp dword [rsi + 0x1e0], r13d
jle 0x1402e38e4
mov r12, r13
nop word [rax + rax]
mov rbx, qword [rsi + 0x1e8]
mov edx, 0x10
mov rcx, rsi
add rbx, r12
call fcn.1402dea70
test eax, eax
jne 0x1402e1c90
mov eax, dword [rsi + 4]
mov rdi, qword [rsi + 0x80]
lea ecx, [rax*2 + 7]
add ecx, eax
and ecx, 0xfffffff8
add dword [rsi + 8], ecx
test rdi, rdi
je 0x1402e36e6
movsxd rax, dword [rsi + 0x90]
lea edx, [rcx + rax]
cmp edx, dword [rsi + 0x94]
jg 0x1402e3a00
mov dword [rsi + 0x90], edx
add rax, rdi
jmp 0x1402e36f6
mov qword [rdi + rbx + 0x10], r13
mov dword [rsi + 0x9c], 3
jmp 0x1402e3c23
mov qword [rdi + rbx + 0x18], r13
mov dword [rsi + 0x9c], 3
jmp 0x1402e3c23
test ecx, ecx
je 0x1402e3a00
movsxd rcx, ecx
call fcn.14033c138
mov qword [rbx + 8], rax
test rax, rax
je 0x1402e3a04
mov edx, 1
mov rcx, rsi
call fcn.1402dea70
test eax, eax
je 0x1402e3725
mov edx, 4
mov rcx, rsi
call fcn.1402dea70
inc al
jmp 0x1402e3727
mov al, 1
mov edx, 1
mov byte [rbx + 0x10], al
mov rcx, rsi
call fcn.1402dea70
test eax, eax
je 0x1402e37dd
mov edx, 8
mov rcx, rsi
call fcn.1402dea70
inc ax
movzx edx, ax
mov word [rbx], dx
mov ecx, dword [rsi + 4]
cmp edx, ecx
jg 0x1402e1c90
mov r14d, r13d
test edx, edx
je 0x1402e37e1
mov rdi, r13
nop word [rax + rax]
dec ecx
call fcn.1402dee30
mov edx, eax
mov rcx, rsi
call fcn.1402dea70
mov rcx, qword [rbx + 8]
mov byte [rdi + rcx], al
mov ecx, dword [rsi + 4]
dec ecx
call fcn.1402dee30
mov edx, eax
mov rcx, rsi
call fcn.1402dea70
mov rcx, qword [rbx + 8]
mov byte [rdi + rcx + 1], al
mov rax, qword [rbx + 8]
mov ecx, dword [rsi + 4]
movzx edx, byte [rdi + rax]
cmp edx, ecx
jge 0x1402e1c90
movzx eax, byte [rdi + rax + 1]
cmp eax, ecx
jge 0x1402e1c90
cmp dl, al
je 0x1402e1c90
movzx eax, word [rbx]
inc r14d
add rdi, 3
cmp r14d, eax
jl 0x1402e3770
jmp 0x1402e37e1
mov word [rbx], r13w
mov edx, 2
mov rcx, rsi
call fcn.1402dea70
test eax, eax
jne 0x1402e1c90
movzx ecx, byte [rbx + 0x10]
mov eax, dword [rsi + 4]
cmp cl, 1
jbe 0x1402e3849
mov r14d, r13d
test eax, eax
jle 0x1402e386b
nop dword [rax]
movsxd rax, r14d
mov edx, 4
mov rcx, rsi
lea rdi, [rax + rax*2]
call fcn.1402dea70
mov rcx, qword [rbx + 8]
mov byte [rdi + rcx + 2], al
mov rax, qword [rbx + 8]
movzx ecx, byte [rbx + 0x10]
cmp byte [rdi + rax + 2], cl
jae 0x1402e1c90
inc r14d
cmp r14d, dword [rsi + 4]
jl 0x1402e3810
jmp 0x1402e386b
mov edx, r13d
test eax, eax
jle 0x1402e386b
movsxd rax, edx
inc edx
lea rcx, [rax + rax*2]
mov rax, qword [rbx + 8]
mov byte [rcx + rax + 2], r13b
cmp edx, dword [rsi + 4]
jl 0x1402e3850
movzx ecx, byte [rbx + 0x10]
mov r14d, r13d
test cl, cl
je 0x1402e38d0
mov edx, 8
mov rcx, rsi
call fcn.1402dea70
mov edx, 8
movsxd rdi, r14d
mov rcx, rsi
call fcn.1402dea70
mov edx, 8
mov byte [rdi + rbx + 0x11], al
mov rcx, rsi
call fcn.1402dea70
movzx ecx, byte [rdi + rbx + 0x11]
mov byte [rdi + rbx + 0x20], al
cmp ecx, dword [rsi + 0xc0]
jge 0x1402e1c90
movzx eax, al
cmp eax, dword [rsi + 0x150]
jge 0x1402e1c90
movzx eax, byte [rbx + 0x10]
inc r14d
cmp r14d, eax
jl 0x1402e3872
inc r15d
add r12, 0x30
cmp r15d, dword [rsi + 0x1e0]
jl 0x1402e3660
mov edx, 6
mov rcx, rsi
call fcn.1402dea70
inc eax
mov ebx, r13d
mov dword [rsi + 0x1f0], eax
test eax, eax
jle 0x1402e3983
lea rdi, [rsi + 0x1f6]
nop dword [rax + rax]
mov edx, 1
mov rcx, rsi
call fcn.1402dea70
mov edx, 0x10
mov byte [rdi - 2], al
mov rcx, rsi
call fcn.1402dea70
mov edx, 0x10
mov word [rdi], ax
mov rcx, rsi
call fcn.1402dea70
mov edx, 8
mov word [rdi + 2], ax
mov rcx, rsi
call fcn.1402dea70
mov byte [rdi - 1], al
cmp word [rdi], r13w
jne 0x1402e1c90
cmp word [rdi + 2], r13w
jne 0x1402e1c90
movzx eax, al
cmp eax, dword [rsi + 0x1e0]
jge 0x1402e1c90
inc ebx
add rdi, 6
cmp ebx, dword [rsi + 0x1f0]
jl 0x1402e3910
mov rcx, rsi
call fcn.1402de750
mov r14d, r13d
mov dword [rsi + 0x4f8], r13d
cmp dword [rsi + 4], r13d
jle 0x1402e3b09
mov ebx, dword [rsp + 0x28]
lea rdi, [rsi + 0x378]
lea ebx, [rbx*2 + 7]
and ebx, 0xfffffff8
nop dword [rax]
nop dword [rax + rax]
mov eax, dword [rsi + 0xac]
mov rcx, qword [rsi + 0x80]
lea eax, [rax*4 + 7]
and eax, 0xfffffff8
add dword [rsi + 8], eax
test rcx, rcx
je 0x1402e3a13
movsxd rdx, dword [rsi + 0x90]
lea r8d, [rax + rdx]
cmp r8d, dword [rsi + 0x94]
jg 0x1402e3a21
mov dword [rsi + 0x90], r8d
lea rax, [rcx + rdx]
jmp 0x1402e3a24
mov qword [rbx + 8], r13
mov dword [rsi + 0x9c], 3
jmp 0x1402e3c23
test eax, eax
je 0x1402e3a21
movsxd rcx, eax
call fcn.14033c138
jmp 0x1402e3a24
mov rax, r13
mov qword [rdi], rax
movsxd rax, dword [rsi + 0xac]
mov r8, qword [rsi + 0x80]
shl rax, 2
shr rax, 1
add eax, 7
and eax, 0xfffffff8
add dword [rsi + 8], eax
test r8, r8
je 0x1402e3a68
movsxd rcx, dword [rsi + 0x90]
lea edx, [rax + rcx]
cmp edx, dword [rsi + 0x94]
jg 0x1402e3a76
mov dword [rsi + 0x90], edx
lea rax, [r8 + rcx]
jmp 0x1402e3a79
test eax, eax
je 0x1402e3a76
movsxd rcx, eax
call fcn.14033c138
jmp 0x1402e3a79
mov rax, r13
mov qword [rdi + 0x100], rax
add dword [rsi + 8], ebx
mov rcx, qword [rsi + 0x80]
test rcx, rcx
je 0x1402e3aac
movsxd rax, dword [rsi + 0x90]
lea edx, [rbx + rax]
cmp edx, dword [rsi + 0x94]
jg 0x1402e3aba
mov dword [rsi + 0x90], edx
add rax, rcx
jmp 0x1402e3abd
test ebx, ebx
je 0x1402e3aba
movsxd rcx, ebx
call fcn.14033c138
jmp 0x1402e3abd
mov rax, r13
mov rcx, qword [rdi]
mov qword [rdi + 0x188], rax
test rcx, rcx
je 0x1402e2ff3
cmp qword [rdi + 0x100], r13
je 0x1402e2ff3
test rax, rax
je 0x1402e2ff3
movsxd r8, dword [rsi + 0xac]
xor edx, edx
shl r8, 2
call fcn.140328dd0
inc r14d
add rdi, 8
cmp r14d, dword [rsi + 4]
jl 0x1402e39c0
mov r8d, dword [rsi + 0xa8]
xor edx, edx
mov rcx, rsi
call fcn.1402df880
test eax, eax
je 0x1402e3c23
mov r8d, dword [rsi + 0xac]
mov edx, 1
mov rcx, rsi
call fcn.1402df880
test eax, eax
je 0x1402e3c23
mov eax, dword [rsi + 0xa8]
mov edi, r13d
mov dword [rsi + 0xa0], eax
movsxd rax, dword [rsi + 0xac]
mov r10, rax
mov dword [rsi + 0xa4], eax
mov ecx, dword [rsi + 0x150]
shl r10, 2
shr r10, 1
test ecx, ecx
jle 0x1402e3bad
mov r8, qword [rsi + 0x1d8]
cdq
sub eax, edx
mov r11d, ecx
sar eax, 1
mov r9d, eax
cmp dword [r8], r9d
mov edx, r9d
mov eax, r9d
cmovb edx, dword [r8]
cmp dword [r8 + 4], r9d
cmovb eax, dword [r8 + 4]
lea r8, [r8 + 0x20]
sub eax, edx
xor edx, edx
div dword [r8 - 0x18]
cmp eax, edi
cmovg edi, eax
sub r11, 1
jne 0x1402e3b80
inc edi
imul edi, dword [rsi + 4]
shl edi, 3
mov dword [rsi + 0xc], edi
cmp r10d, edi
jbe 0x1402e3bc5
mov dword [rsi + 0xc], r10d
mov edi, r10d
cmp qword [rsi + 0x80], r13
je 0x1402e3bf0
movsxd rcx, dword [rsi + 0x90]
mov eax, dword [rsi + 0x94]
mov edx, edi
add rdx, 0x770
add rdx, rcx
cmp rdx, rax
ja 0x1402e2ff3
cmp dword [rsi + 0x6e8], 0xffffffff
jne 0x1402e3c04
mov rcx, rsi
call fcn.1402e4110
mov r13d, eax
mov dword [rsi + 0x60], r13d
mov eax, 1
jmp 0x1402e3c25
mov dword [rsi + 0x98], 1
mov dword [rsi + 0x9c], 0xa
xor eax, eax
mov rcx, qword [rbp + 0x390]
xor rcx, rsp
call fcn.140322a80
lea r11, [rsp + 0x500]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret