Function at 0x14004cf30
Capabilities:
Encrypt data using speck
Resolve function by parsing pe exports

Disassembly:
mov r11, rsp
push rbp
push r13
lea rbp, [r11 - 0x368]
sub rsp, 0x458
mov rax, qword [0x1401b26d0]
xor rax, rsp
mov qword [rbp + 0x310], rax
mov rax, qword [rcx + 0x68]
mov r13, rcx
mov qword [r11 + 0x10], rbx
mov qword [r11 + 0x18], rsi
mov qword [r11 + 0x20], rdi
mov qword [r11 - 0x18], r12
mov r12, qword [rcx]
mov qword [r11 - 0x20], r14
mov r14, qword [rcx + 0x70]
mov qword [r11 - 0x28], r15
xor r15d, r15d
mov rbx, qword [r12 + 0x30]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x30], rax
movzx eax, byte [r12 + 0x52]
movaps xmmword [r11 - 0x38], xmm6
mov byte [rsp + 0x48], al
mov qword [rsp + 0x40], rbx
movaps xmmword [r11 - 0x48], xmm7
mov qword [rbp - 0x80], rcx
mov dword [rsp + 0x3c], r15d
mov qword [rsp + 0x58], r12
mov byte [rsp + 0x78], r15b
mov dword [rbp - 0x70], r15d
mov dword [rsp + 0x38], r15d
mov dword [rbp - 0x3c], r15d
mov qword [rsp + 0x60], r14
mov qword [rbp + 0x10], r15
call fcn.140044210
cmp dword [r13 + 0x38], 7
lea r10d, [r15 + 1]
je 0x14004e98b
mov dword [r13 + 0x38], r15d
mov qword [r13 + 0x48], r15
mov qword [r13 + 0x88], r15
mov eax, dword [r12 + 0x150]
mov dword [r12 + 0x228], r15d
test eax, eax
jne 0x14005231b
cmp qword [r12 + 0x1a0], r15
je 0x14004d02f
mov r8d, dword [r12 + 0x1b0]
xor edx, edx
mov eax, dword [r13 + 0xdc]
div r8d
sub r8d, edx
mov dword [rbp - 0x3c], r8d
movsxd rax, dword [r13 + 0x34]
mov edx, 0x2460
mov r9, qword [rsp + 0x50]
xorps xmm7, xmm7
mov r11d, r15d
lea rcx, [rax + rax*2]
lea rdi, [r9 + rcx*8]
mov qword [rsp + 0x30], rdi
lea rcx, [0x140000000]
mov rsi, rdi
inc r11d
mov rdi, rbx
movzx ebx, byte [rsi]
mov r8d, 0x1000
mov dword [rsp + 0x38], r11d
cmp ebx, 0x9f
ja case.default.0x14004d08b
mov ecx, dword [rcx + rbx*4 + 0x5237c]
lea rax, [0x140000000]
add rcx, rax
jmp rcx
mov rcx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x30]
movsxd rax, dword [rcx + 4]
sub rcx, r9
imul r8, rax, 0x38
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
mov word [r8 + r14 + 8], 4
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rax, rdx
cdqe
mov qword [r8 + r14], rax
jmp 0x140051d80
mov rax, qword [rsp + 0x30]
movsxd rax, dword [rax + 4]
imul rdx, rax, 0x38
mov rax, qword [rdx + r14]
lea rcx, [rax + rax*2]
mov word [rdx + r14 + 8], 0x80
lea rsi, [r9 + rcx*8]
mov edx, 0x2460
jmp case.0x14004d08b.112
mov rax, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x30]
movsxd rax, dword [rax + 4]
imul rcx, rax, 0x38
mov rax, qword [rsp + 0x30]
mov eax, dword [rax + 0xc]
dec eax
mov word [rcx + r14 + 8], 4
cdqe
mov qword [rcx + r14], rax
cmp dword [rsi + 8], 0
jne 0x140051d80
jmp case.0x14004d08b.112
mov rax, qword [rsp + 0x30]
movsxd rax, dword [rax + 4]
imul rdx, rax, 0x38
mov rax, qword [rdx + r14]
lea rcx, [rax + rax*2]
mov eax, dword [r9 + rcx*8 + 8]
dec eax
cdqe
jmp 0x14004d0e1
mov rbx, qword [rsp + 0x30]
movsxd rax, dword [rbx + 4]
sub rbx, r9
imul r8, rax, 0x38
movabs rax, 0x2aaaaaaaaaaaaaab
imul rbx
movsxd rcx, dword [r8 + r14]
sar rdx, 2
mov rax, rdx
mov word [r8 + r14 + 8], 4
shr rax, 0x3f
add rax, rdx
lea rcx, [rcx + rcx*2]
cdqe
lea rsi, [r9 + rcx*8]
mov qword [r8 + r14], rax
mov edx, 0x2460
jmp case.0x14004d08b.112
mov rax, qword [rsp + 0x30]
movsxd rax, dword [rax + 0xc]
imul rcx, rax, 0x38
test byte [rcx + r14 + 8], 1
je 0x14004d540
mov rcx, qword [rsp + 0x30]
movabs rax, 0x2aaaaaaaaaaaaaab
sub rcx, r9
imul rcx
mov rbx, rdx
mov rdx, qword [rsp + 0x30]
sar rbx, 2
mov rax, rbx
shr rax, 0x3f
mov ecx, dword [rdx + 4]
add rbx, rax
test ecx, ecx
jne 0x140051dc0
mov rdi, qword [r13 + 0xf0]
test rdi, rdi
je 0x140051dc0
mov rax, qword [rdi + 8]
mov rcx, r12
mov edx, dword [r13 + 0x3c]
dec dword [r13 + 0x100]
mov qword [r13 + 0xf0], rax
call fcn.140048c90
mov rcx, rdi
call fcn.140045180
mov rcx, qword [rsp + 0x30]
mov rbx, qword [r12 + 0x30]
mov qword [rsp + 0x40], rbx
cmp dword [rcx + 8], 4
jne 0x14004d24d
cdqe
lea rcx, [rax + rax*2]
mov rax, qword [r13 + 0x68]
mov eax, dword [rax + rcx*8 + 8]
dec eax
mov r9, qword [r13 + 0x68]
mov r14, qword [r13 + 0x70]
cdqe
mov qword [rsp + 0x50], r9
mov qword [rsp + 0x60], r14
lea rcx, [rax + rax*2]
lea rsi, [r9 + rcx*8]
mov r11d, dword [rsp + 0x38]
mov r10d, 1
mov edx, 0x2460
lea rcx, [0x140000000]
mov r13, qword [rbp - 0x80]
add rsi, 0x18
mov qword [rsp + 0x30], rsi
jmp 0x14004d05a
mov rdx, qword [rsp + 0x30]
mov rcx, r13
call fcn.14004cf00
mov rcx, rax
mov rax, qword [rsp + 0x30]
movsxd rax, dword [rax + 4]
mov qword [rcx], rax
mov rsi, qword [rsp + 0x30]
mov r9, qword [rsp + 0x50]
mov r10d, 1
mov r11d, dword [rsp + 0x38]
mov edx, 0x2460
jmp case.0x14004d08b.112
mov rdx, qword [rsp + 0x30]
mov rcx, r13
call fcn.14004cf00
mov rdx, rax
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x10]
mov rcx, qword [rax]
mov qword [rdx], rcx
jmp 0x14004d2ae
mov rdx, qword [rsp + 0x30]
mov rcx, r13
call fcn.14004cf00
mov rdx, rax
mov word [rax + 8], 8
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x10]
mov rcx, qword [rax]
mov qword [rdx], rcx
jmp 0x14004d2ae
mov rdi, qword [rsp + 0x30]
mov rcx, r13
mov rdx, rdi
call fcn.14004cf00
mov rcx, qword [rdi + 0x10]
mov rbx, rax
mov byte [rdi], 0x4e
call fcn.140020e40
mov rcx, rdi
mov dword [rdi + 4], eax
movzx edi, byte [rsp + 0x48]
cmp dil, 1
je 0x14004d3b0
mov rdx, qword [rcx + 0x10]
mov r9b, 1
mov rcx, rbx
mov qword [rsp + 0x20], r15
mov r8d, 0xffffffff
call fcn.140041d60
mov edx, edi
mov dword [rsp + 0x3c], eax
mov rcx, rbx
call fcn.140040cb0
test eax, eax
jne 0x14004e98b
mov rcx, qword [rsp + 0x30]
mov eax, 0x800
or word [rbx + 8], ax
mov dword [rbx + 0x20], r15d
cmp byte [rcx + 1], 0xff
jne 0x14004d39e
mov rdx, qword [rcx + 0x10]
mov rcx, r12
call fcn.14001de90
mov rcx, qword [rsp + 0x30]
mov byte [rcx + 1], 0xff
mov rax, qword [rbx + 0x10]
mov qword [rcx + 0x10], rax
mov eax, dword [rbx + 0xc]
mov dword [rcx + 4], eax
cmp eax, dword [r12 + 0x70]
jg 0x14005209c
jmp 0x14004d3c2
movzx edi, byte [rsp + 0x48]
mov rbx, qword [rsp + 0x30]
movsxd rax, dword [rbx + 8]
imul rdx, rax, 0x38
mov eax, 0x2460
add rdx, qword [r13 + 0x70]
test word [rdx + 8], ax
je 0x14004d3e9
mov rcx, rdx
call fcn.14004ced0
mov rdx, rax
mov word [rdx + 8], 0xa02
mov rax, qword [rbx + 0x10]
mov qword [rdx + 0x10], rax
mov eax, dword [rbx + 4]
mov dword [rdx + 0xc], eax
mov byte [rdx + 0xa], dil
movsxd rax, dword [rbx + 0xc]
test eax, eax
jle 0x14004f3c8
mov r9, qword [rsp + 0x50]
mov rsi, rbx
mov r11d, dword [rsp + 0x38]
mov r10d, 1
imul rcx, rax, 0x38
movzx eax, byte [rbx + 3]
mov rbx, qword [rsp + 0x40]
cmp qword [rcx + r14], rax
lea rcx, [0x140000000]
jne 0x14004d440
mov word [rdx + 8], 0xa10
mov edx, 0x2460
mov r13, qword [rbp - 0x80]
add rsi, 0x18
mov qword [rsp + 0x30], rsi
jmp 0x14004d05a
mov rbx, qword [rsp + 0x30]
movsxd rax, dword [rbx + 8]
imul rcx, rax, 0x38
add rcx, qword [r13 + 0x70]
test word [rcx + 8], dx
je 0x14004d48d
call fcn.14004ced0
mov r9, qword [rsp + 0x50]
mov rcx, rax
mov r11d, dword [rsp + 0x38]
mov r10d, 1
mov edx, 0x2460
jmp 0x14004d493
mov word [rcx + 8], 4
cmp dword [rbx + 4], 0
mov esi, r10d
mov edi, dword [rbx + 0xc]
mov r8d, 0x101
mov eax, dword [rbx + 8]
cmovne si, r8w
sub edi, eax
mov word [rcx + 8], si
mov dword [rcx + 0xc], r15d
lea rbx, [rcx + 8]
test edi, edi
jle 0x14004d540
test word [rbx + 0x38], dx
lea rbx, [rbx + 0x38]
je 0x14004d4d9
lea rcx, [rbx - 8]
call fcn.140041480
mov edx, 0x2460
dec edi
mov word [rbx], si
mov dword [rbx + 4], r15d
test edi, edi
jg 0x14004d4c1
mov rsi, qword [rsp + 0x30]
mov r10d, 1
mov r11d, dword [rsp + 0x38]
mov r9, qword [rsp + 0x50]
lea rcx, [0x140000000]
mov rbx, qword [rsp + 0x40]
mov r13, qword [rbp - 0x80]
add rsi, 0x18
mov qword [rsp + 0x30], rsi
jmp 0x14004d05a
mov rax, qword [rsp + 0x30]
mov r8d, 0xff7f
movsxd rax, dword [rax + 4]
imul rcx, rax, 0x38
movzx eax, word [rcx + r14 + 8]
and ax, r8w
or ax, 1
mov word [rcx + r14 + 8], ax
mov rsi, qword [rsp + 0x30]
jmp case.0x14004d08b.112
mov rax, qword [rsp + 0x30]
movsxd rax, dword [rax + 8]
imul rbx, rax, 0x38
add rbx, qword [r13 + 0x70]
test word [rbx + 8], dx
je 0x14004d56b
mov rcx, rbx
call fcn.14004ced0
mov rbx, rax
jmp 0x14004d571
mov word [rbx + 8], 4
mov rax, qword [rsp + 0x30]
xor r9d, r9d
mov rcx, rbx
mov qword [rsp + 0x20], r15
mov r8d, dword [rax + 4]
mov rdx, qword [rax + 0x10]
call fcn.140041d60
movzx eax, byte [rsp + 0x48]
mov byte [rbx + 0xa], al
jmp 0x14004d2ae
mov rax, qword [rsp + 0x30]
mov eax, dword [rax + 4]
dec eax
cdqe
imul rbx, rax, 0x38
add rbx, qword [r13 + 0xa0]
mov rcx, rbx
call fcn.140041c10
test eax, eax
jne 0x14005209c
mov rdx, qword [rsp + 0x30]
mov rcx, r13
call fcn.14004cf00
mov r8d, 0x800
mov rdx, rbx
mov rcx, rax
call fcn.140041c80
jmp 0x14004d2ae
mov rcx, qword [rsp + 0x30]
movsxd rax, dword [rcx + 4]
mov esi, dword [rcx + 0xc]
imul rdi, rax, 0x38
movsxd rax, dword [rcx + 8]
imul rbx, rax, 0x38
add rdi, r14
add rbx, r14
test word [rbx + 8], dx
jne 0x14004d60f
cmp dword [rbx + 0x20], 0
je 0x14004d623
mov rcx, rbx
call fcn.140041500
mov r10d, 1
mov r8d, 0x1000
movups xmm0, xmmword [rdi]
movups xmmword [rbx], xmm0
movups xmm1, xmmword [rdi + 0x10]
movups xmmword [rbx + 0x10], xmm1
movups xmm0, xmmword [rdi + 0x20]
movups xmmword [rbx + 0x20], xmm0
movsd xmm1, qword [rdi + 0x30]
movsd qword [rbx + 0x30], xmm1
mov word [rdi + 8], r10w
mov dword [rdi + 0x20], r15d
test word [rbx + 8], r8w
je 0x14004d66d
mov rcx, rbx
call fcn.140041040
test eax, eax
jne 0x14004e98b
lea r10d, [rax + 1]
mov r8d, 0x1000
add rdi, 0x38
add rbx, 0x38
mov edx, 0x2460
sub esi, 1
jne 0x14004d603
mov rsi, qword [rsp + 0x30]
jmp 0x14004d4f1
mov rcx, qword [rsp + 0x30]
movsxd rax, dword [rcx + 4]
mov esi, dword [rcx + 0xc]
imul rdi, rax, 0x38
movsxd rax, dword [rcx + 8]
imul rbx, rax, 0x38
add rdi, r14
add rbx, r14
nop word [rax + rax]
mov rdx, rdi
mov rcx, rbx
call fcn.140041c80
mov r8d, 0x1000
test word [rbx + 8], r8w
je 0x14004d6de
mov rcx, rbx
call fcn.140041040
test eax, eax
jne 0x14004e98b
mov r8d, 0x1000
mov eax, esi
dec esi
test eax, eax
je 0x14004d2ae
add rbx, 0x38
add rdi, 0x38
jmp 0x14004d6b0
mov rcx, qword [rsp + 0x30]
movsxd rax, dword [rcx + 4]
imul rdx, rax, 0x38
movsxd rax, dword [rcx + 8]
imul rcx, rax, 0x38
add rdx, r14
add rcx, r14
call fcn.140041c80
jmp 0x14004d2ae
mov rcx, qword [rsp + 0x30]
movsxd rax, dword [rcx + 8]
imul r8, rax, 0x38
movsxd rax, dword [rcx + 4]
imul rcx, rax, 0x38
add r8, r14
mov rax, qword [rcx + r14]
test word [r8 + 8], dx
je 0x14004d74c
mov rdx, rax
mov rcx, r8
call fcn.140041ac0
jmp 0x14004d2ae
mov rsi, qword [rsp + 0x30]
mov qword [r8], rax
mov word [r8 + 8], 4
jmp case.0x14004d08b.112
mov rcx, qword [rsp + 0x30]
movsxd rax, dword [rcx + 4]
imul rsi, rax, 0x38
movsxd rax, dword [rcx + 8]
imul rbx, rax, 0x38
movsxd rax, dword [rcx + 0xc]
add rsi, r14
imul rdi, rax, 0x38
movzx ecx, word [rsi + 8]
add rbx, r14
movzx eax, cl
add rdi, r14
or al, byte [rbx + 8]
test al, 1
je 0x14004d7a1
mov rcx, rdi
call fcn.140041aa0
jmp 0x14004d2ae
mov r14d, 0x4000
test r14w, cx
je 0x14004d7bd
mov rcx, rsi
call fcn.140041140
test eax, eax
jne 0x14004e98b
test word [rbx + 8], r14w
je 0x14004d7d4
mov rcx, rbx
call fcn.140041140
test eax, eax
jne 0x14004e98b
test byte [rsi + 8], 0x12
movzx r14d, byte [rsp + 0x48]
jne 0x14004d7f7
xor r8d, r8d
movzx edx, r14b
mov rcx, rsi
call fcn.140041200
test eax, eax
jne 0x14004e98b
test byte [rbx + 8], 0x12
jne 0x14004d814
xor r8d, r8d
movzx edx, r14b
mov rcx, rbx
call fcn.140041200
test eax, eax
jne 0x14004e98b
mov r14d, dword [rsi + 0xc]
add r14d, dword [rbx + 0xc]
movsxd rax, dword [r12 + 0x70]
movsxd r15, r14d
cmp r15, rax
jg 0x14005209c
xor r8d, r8d
lea edx, [r14 + 2]
cmp rdi, rbx
mov rcx, rdi
sete r8b
call fcn.140040cd0
test eax, eax
jne 0x14004e98b
movzx eax, word [rdi + 8]
mov ecx, 0x3e00
and ax, cx
or ax, 2
mov word [rdi + 8], ax
cmp rdi, rbx
je 0x14004d875
movsxd r8, dword [rbx + 0xc]
mov rdx, qword [rbx + 0x10]
mov rcx, qword [rdi + 0x10]
call fcn.140132db0
movsxd rcx, dword [rbx + 0xc]
add rcx, qword [rdi + 0x10]
movsxd r8, dword [rsi + 0xc]
mov rdx, qword [rsi + 0x10]
call fcn.140132db0
mov rax, qword [rdi + 0x10]
mov byte [r15 + rax], 0
mov rax, qword [rdi + 0x10]
mov byte [rax + r15 + 1], 0
mov eax, 0x200
or word [rdi + 8], ax
movzx eax, byte [rsp + 0x48]
mov byte [rdi + 0xa], al
mov dword [rdi + 0xc], r14d
mov r14, qword [rsp + 0x60]
xor r15d, r15d
jmp 0x14004d2ae
mov rbx, qword [rsp + 0x30]
movsxd rax, dword [rbx + 4]
imul rdi, rax, 0x38
add rdi, r14
mov rcx, rdi
call fcn.14004ceb0
movzx r12d, ax
movsxd rax, dword [rbx + 8]
imul rsi, rax, 0x38
add rsi, r14
mov rcx, rsi
call fcn.14004ceb0
movzx r14d, ax
movsxd rax, dword [rbx + 0xc]
imul rbx, rax, 0x38
movzx eax, byte [rsi + 8]
add rbx, qword [rsp + 0x60]
or al, byte [rdi + 8]
test al, 1
jne 0x14004dae3
movzx eax, r14b
and al, r12b
test al, 4
je 0x14004d9f0
mov rax, qword [rsp + 0x30]
mov r15b, 1
mov r8, qword [rsi]
mov rcx, qword [rdi]
mov qword [rbp - 0x18], r8
movzx edx, byte [rax]
sub edx, 0x2f
je 0x14004d9b3
sub edx, 1
je 0x14004d9a5
sub edx, 1
je 0x14004d997
cmp edx, 1
je 0x14004d96b
test rcx, rcx
je 0x14004dae0
cmp rcx, 0xffffffffffffffff
mov r9d, 1
mov rax, r8
cmove rcx, r9
cqo
idiv rcx
mov qword [rbp - 0x18], rdx
jmp 0x14004d9c3
test rcx, rcx
je 0x14004dae0
cmp rcx, 0xffffffffffffffff
jne 0x14004d989
movabs rax, 0x8000000000000000
cmp r8, rax
je 0x14004d9f3
mov rax, r8
cqo
idiv rcx
mov qword [rbp - 0x18], rax
jmp 0x14004d9c3
mov rdx, rcx
lea rcx, [rbp - 0x18]
call fcn.1400221a0
jmp 0x14004d9bf
mov rdx, rcx
lea rcx, [rbp - 0x18]
call fcn.140022130
jmp 0x14004d9bf
mov rdx, rcx
lea rcx, [rbp - 0x18]
call fcn.1400220e0
test eax, eax
jne 0x14004d9f3
mov rax, qword [rbp - 0x18]
mov ecx, 0x3e00
mov qword [rbx], rax
movzx eax, word [rbx + 8]
and ax, cx
or ax, 4
mov word [rbx + 8], ax
mov r12, qword [rsp + 0x58]
xor r15d, r15d
mov r14, qword [rsp + 0x60]
jmp 0x14004d2ae
xor r15b, r15b
mov rcx, rdi
call fcn.1400416e0
mov rcx, rsi
movaps xmm6, xmm0
call fcn.1400416e0
mov rax, qword [rsp + 0x30]
movaps xmm3, xmm0
movzx ecx, byte [rax]
sub ecx, 0x2f
je 0x14004da73
sub ecx, 1
je 0x14004da6d
sub ecx, 1
je 0x14004da67
cmp ecx, 1
je 0x14004da59
cvttsd2si rcx, xmm6
cvttsd2si rax, xmm0
mov qword [rbp - 0x18], rax
test rcx, rcx
je 0x14004dae0
cmp rcx, 0xffffffffffffffff
mov r9d, 1
cqo
xorps xmm3, xmm3
cmove rcx, r9
idiv rcx
cvtsi2sd xmm3, rdx
jmp 0x14004da77
ucomisd xmm6, xmm7
jp 0x14004da61
je 0x14004dae0
divsd xmm3, xmm6
jmp 0x14004da77
mulsd xmm3, xmm6
jmp 0x14004da77
subsd xmm3, xmm6
jmp 0x14004da77
addsd xmm3, xmm6
movsd qword [rbp - 0x68], xmm3
movsd xmm0, qword [rbp - 0x68]
movsd qword [rbp - 0x10], xmm0
movsd xmm2, qword [rbp - 0x68]
movsd xmm1, qword [rbp - 0x10]
ucomisd xmm2, xmm1
jp 0x14004dae0
jne 0x14004dae0
movzx eax, word [rbx + 8]
mov ecx, 0x3e00
and ax, cx
movsd qword [rbx], xmm3
or ax, 8
or r14b, r12b
mov word [rbx + 8], ax
test r14b, 8
jne 0x14004d9de
test r15b, r15b
jne 0x14004d9de
mov rcx, rbx
call fcn.140041740
mov r12, qword [rsp + 0x58]
xor r15d, r15d
mov r14, qword [rsp + 0x60]
jmp 0x14004d2ae
xor r15d, r15d
mov edx, 0x2460
test word [rbx + 8], dx
je 0x14004db05
mov rcx, rbx
call fcn.140041480
mov r12, qword [rsp + 0x58]
mov r14, qword [rsp + 0x60]
jmp 0x14004d2ae
mov rsi, qword [rsp + 0x30]
mov r10d, 1
mov r12, qword [rsp + 0x58]
mov r14, qword [rsp + 0x60]
mov word [rbx + 8], r10w
jmp 0x14004d4f1
mov rax, qword [rsp + 0x30]
movsxd rax, dword [rax + 4]
test eax, eax
je 0x14004d540
imul rcx, rax, 0x38
xor edx, edx
add rcx, r14
call fcn.140041b00
jmp 0x14004d2ae
mov rdi, qword [rsp + 0x30]
mov rcx, r12
movzx ebx, byte [rdi + 3]
lea rdx, [rbx*8 + 0x30]
call fcn.14001e2a0
mov r8, rax
test rax, rax
je 0x14004e98b
mov qword [rax], r15
mov rcx, rdi
mov rax, qword [rdi + 0x10]
sub rcx, qword [rsp + 0x50]
mov qword [r8 + 8], rax
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
mov qword [r8 + 0x18], r13
sar rdx, 2
mov rax, rdx
mov byte [r8 + 0x2a], bl
shr rax, 0x3f
add rdx, rax
mov rax, rdi
mov dword [r8 + 0x20], edx
mov word [rdi], 0xeb5a
mov qword [rdi + 0x10], r8
jmp 0x14004dbba
mov rax, qword [rsp + 0x30]
mov rbx, qword [rax + 0x10]
movsxd rax, dword [rax + 0xc]
imul rdi, rax, 0x38
add rdi, r14
mov qword [rbp - 0x10], rdi
cmp qword [rbx], rdi
je 0x14004dc24
movzx eax, byte [rbx + 0x2a]
mov edx, eax
mov qword [rbx], rdi
sub rdx, 1
lea r9d, [rax - 1]
js 0x14004dc24
mov rdi, qword [rsp + 0x30]
lea r8, [rdx + 6]
lea r8, [rbx + r8*8]
nop dword [rax]
nop word [rax + rax]
mov eax, dword [rdi + 8]
lea r8, [r8 - 8]
add eax, r9d
dec r9d
cdqe
imul rcx, rax, 0x38
add rcx, r14
sub rdx, 1
mov qword [r8 + 8], rcx
jns 0x14004dc00
mov rdi, qword [rbp - 0x10]
mov rcx, qword [rbx]
lea r8, [rbx + 0x30]
mov edx, 0x3e00
movzx eax, word [rcx + 8]
and ax, dx
or ax, 1
mov word [rcx + 8], ax
mov rcx, qword [rsp + 0x40]
mov byte [rbx + 0x29], 0
mov qword [r12 + 0x30], rcx
mov rcx, rbx
mov rax, qword [rbx + 8]
movzx edx, byte [rbx + 0x2a]
call qword [rax + 0x18]
cmp byte [rbx + 0x29], 0
mov rax, qword [r12 + 0x30]
mov qword [rsp + 0x40], rax
je 0x14004dcbc
cmp dword [rbx + 0x24], 0
je 0x14004dc94
mov rcx, qword [rbx]
mov dl, 1
call fcn.140042240
mov r8, rax
lea rdx, [0x14018cbb4]
mov rcx, r13
call fcn.1400429f0
mov eax, dword [rbx + 0x24]
mov dword [rsp + 0x3c], eax
mov rax, qword [rsp + 0x30]
lea rdx, [r13 + 0x110]
mov r8d, dword [rbx + 0x20]
mov rcx, r12
mov r9d, dword [rax + 4]
call fcn.140046930
mov esi, dword [rsp + 0x3c]
test esi, esi
jne 0x14004f241
test byte [rdi + 8], 0x12
je 0x14004d2ae
mov rcx, qword [rbx]
test byte [rcx + 8], 2
je 0x14004dce3
movzx edi, byte [rsp + 0x48]
cmp byte [rcx + 0xa], dil
je 0x14004dce3
movzx edx, dil
call fcn.140020850
mov rcx, qword [rbx]
call fcn.140041c10
test eax, eax
jne 0x14005209c
jmp 0x14004d2ae
mov rcx, qword [rsp + 0x30]
movsxd rax, dword [rcx + 4]
imul rdi, rax, 0x38
movsxd rax, dword [rcx + 8]
imul rcx, rax, 0x38
mov rax, qword [rsp + 0x30]
add rdi, r14
add rcx, r14
movsxd rax, dword [rax + 0xc]
imul rsi, rax, 0x38
movzx eax, byte [rcx + 8]
or al, byte [rdi + 8]
add rsi, r14
test al, 1
je 0x14004dd50
test word [rsi + 8], dx
je 0x14004dd41
mov rcx, rsi
call fcn.140041480
jmp 0x14004d2ae
mov word [rsi + 8], r10w
mov rsi, qword [rsp + 0x30]
jmp case.0x14004d08b.112
call fcn.140041650
mov rcx, rdi
mov rbx, rax
call fcn.140041650
mov rdx, rax
mov rax, qword [rsp + 0x30]
movzx ecx, byte [rax]
cmp cl, 0x2b
jne 0x14004dd75
and rbx, rdx
jmp 0x14004dde9
cmp cl, 0x2c
jne 0x14004dd7f
or rbx, rdx
jmp 0x14004dde9
test rdx, rdx
je 0x14004dde9
jns 0x14004dd99
mov eax, 0x5b
sub al, cl
movzx ecx, al
cmp rdx, 0xffffffffffffffc0
jle 0x14004dd9f
neg rdx
cmp rdx, 0x40
jl 0x14004ddb7
test rbx, rbx
jns 0x14004ddb2
cmp cl, 0x2d
je 0x14004ddb2
mov rbx, 0xffffffffffffffff
jmp 0x14004dde9
mov rbx, r15
jmp 0x14004dde9
cmp cl, 0x2d
mov rcx, rdx
jne 0x14004ddc7
shl rbx, cl
mov r8, rbx
jmp 0x14004dde6
mov r8, rbx
shr r8, cl
test rbx, rbx
jns 0x14004dde6
mov ecx, 0x40
mov rax, 0xffffffffffffffff
sub cl, dl
shl rax, cl
or r8, rax
mov rbx, r8
movzx eax, word [rsi + 8]
mov ecx, 0x3e00
and ax, cx
mov qword [rsi], rbx
or ax, 4
mov word [rsi + 8], ax
jmp 0x14004d2ae
mov rax, qword [rsp + 0x30]
movsxd rax, dword [rax + 4]
imul rbx, rax, 0x38
add rbx, r14
mov rcx, rbx
call fcn.140041650
mov qword [rbx], rax
mov rcx, rax
movzx eax, word [rbx + 8]
mov edx, 0x3e00
and ax, dx
or ax, 4
mov word [rbx + 8], ax
mov rax, qword [rsp + 0x30]
movsxd rax, dword [rax + 8]
add rax, rcx
mov qword [rbx], rax
jmp 0x14004d2ae
mov rax, qword [rsp + 0x30]
movsxd rax, dword [rax + 4]
imul rbx, rax, 0x38
add rbx, r14
movzx eax, word [rbx + 8]
test al, 4
jne 0x14004dea9
movzx r8d, byte [rsp + 0x48]
mov dl, 0x43
mov rcx, rbx
call fcn.14004ccd0
movzx eax, word [rbx + 8]
test al, 4
jne 0x14004de94
mov rsi, qword [rsp + 0x30]
cmp dword [rsi + 8], 0
jne 0x140051d7b
mov esi, 0x14
jmp 0x14004f241
mov r9, qword [rsp + 0x50]
mov r10d, 1
mov r11d, dword [rsp + 0x38]
mov edx, 0x2460
mov rsi, qword [rsp + 0x30]
mov ecx, 0x3e00
and ax, cx
or ax, 4
mov word [rbx + 8], ax
jmp case.0x14004d08b.112
mov rax, qword [rsp + 0x30]
movsxd rax, dword [rax + 4]
imul rcx, rax, 0x38
add rcx, r14
test byte [rcx + 8], 4
je 0x14004d540
call fcn.1400417e0
jmp 0x14004d2ae
mov rcx, qword [rsp + 0x30]
movsxd rax, dword [rcx + 4]
imul rbx, rax, 0x38
mov eax, 0x4000
add rbx, r14
test word [rbx + 8], ax
je 0x14004df36
mov rcx, rbx
call fcn.140041140
movzx r8d, byte [rsp + 0x48]
mov rcx, rbx
mov dword [rsp + 0x3c], eax
mov rax, qword [rsp + 0x30]
movzx edx, byte [rax + 8]
call fcn.140041970
mov esi, dword [rsp + 0x3c]
test esi, esi
jne 0x14004f241
jmp 0x14004d2ae
movzx edx, byte [rcx + 8]
mov rcx, rbx
movzx r8d, byte [rsp + 0x48]
mov dword [rsp + 0x3c], r15d
call fcn.140041970
jmp 0x14004d2ae
mov rcx, qword [rsp + 0x30]
movsxd rax, dword [rcx + 4]
imul rsi, rax, 0x38
movsxd rax, dword [rcx + 0xc]
imul rdi, rax, 0x38
add rsi, r14
add rdi, r14
movzx r14d, word [rsi + 8]
movzx ebx, word [rdi + 8]
movzx ecx, bx
or cx, r14w
test cl, 1
je 0x14004dfe7
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 3]
test al, al
jns 0x14004dfb4
movzx eax, bx
and ax, r14w
bt ax, r15w
jae 0x14004e04f
bt bx, 8
jb 0x14004e04f
mov ecx, r15d
jmp 0x14004e0e8
mov r14, qword [rsp + 0x60]
test al, 0x20
je 0x14004dfd5
mov rax, qword [rsp + 0x30]
mov r8d, 0x3e00
mov dword [rbp - 0x70], r10d
movsxd rax, dword [rax + 8]
jmp 0x14004d528
mov rsi, qword [rsp + 0x30]
test al, 0x10
jne 0x140051d80
jmp case.0x14004d08b.112
mov r15, qword [rsp + 0x30]
movzx eax, byte [r15 + 3]
and al, 0x47
cmp al, 0x43
jb 0x14004e067
test cl, 2
je 0x14004e027
movzx eax, r14b
and al, 0xe
cmp al, 2
jne 0x14004e014
xor edx, edx
mov rcx, rsi
call fcn.14004cbd0
movzx ebx, word [rdi + 8]
movzx eax, bl
and al, 0xe
cmp al, 2
jne 0x14004e027
xor edx, edx
mov rcx, rdi
call fcn.14004cbd0
movzx eax, byte [rdi + 8]
and al, byte [rsi + 8]
test al, 4
je 0x14004e0cb
mov rax, qword [rdi]
xor r15d, r15d
mov rdx, qword [rsi]
mov r10d, 1
mov r11d, dword [rsp + 0x38]
cmp rax, rdx
jle 0x14004e057
mov ecx, r10d
jmp 0x14004e0e8
cmp rax, rdx
mov ecx, r15d
setge cl
dec ecx
jmp 0x14004e0e8
cmp al, 0x42
jne 0x14004e0cb
movzx r13d, byte [rsp + 0x48]
test r14b, 2
jne 0x14004e0a0
test r14b, 0xc
je 0x14004e0a0
mov r8b, 1
movzx edx, r13b
mov rcx, rsi
call fcn.140041200
movzx eax, r14w
mov ecx, 0x7e00
xor ax, word [rsi + 8]
and ax, cx
xor r14w, ax
test bl, 2
jne 0x14004e0cb
test bl, 0xc
je 0x14004e0cb
mov r8b, 1
movzx edx, r13b
mov rcx, rdi
call fcn.140041200
movzx eax, bx
mov ecx, 0x7e00
xor ax, word [rdi + 8]
and ax, cx
xor bx, ax
mov r8, qword [r15 + 0x10]
mov rdx, rsi
mov rcx, rdi
call fcn.140047b00
mov r11d, dword [rsp + 0x38]
xor r15d, r15d
mov ecx, eax
lea r10d, [r15 + 1]
mov rax, qword [rsp + 0x30]
movzx edx, byte [rax]
sub edx, 0x24
je 0x14004e130
sub edx, 1
je 0x14004e126
sub edx, 1
je 0x14004e11c
sub edx, 1
je 0x14004e112
cmp edx, 1
mov edx, ecx
je 0x14004e10d
not edx
shr edx, 0x1f
jmp 0x14004e132
test ecx, ecx
mov edx, r15d
setle dl
jmp 0x14004e132
test ecx, ecx
mov edx, r15d
setg dl
jmp 0x14004e132
test ecx, ecx
mov edx, r15d
sete dl
jmp 0x14004e132
mov edx, ecx
mov word [rsi + 8], r14w
mov r14, qword [rsp + 0x60]
mov word [rdi + 8], bx
movzx r9d, byte [rax + 3]
test r9b, 0x20
je 0x14004e1ae
movsxd rax, dword [rax + 8]
imul r8, rax, 0x38
mov dword [rbp - 0x70], ecx
test r9b, 8
je 0x14004e176
mov rax, qword [rsp + 0x30]
mov ecx, r15d
cmp byte [rax], 0x25
mov eax, r15d
sete cl
test edx, edx
setne al
cmp ecx, eax
je 0x14004e19a
movzx eax, word [r8 + r14 + 8]
mov ecx, 0x3e00
and ax, cx
or ax, 4
mov word [r8 + r14 + 8], ax
test edx, edx
mov rax, r15
setne al
mov qword [r8 + r14], rax
mov rsi, qword [rsp + 0x30]
mov edx, 0x2460
mov r9, qword [rsp + 0x50]
jmp case.0x14004d08b.112
mov r9, qword [rsp + 0x50]
mov rsi, rax
test edx, edx
jne 0x140051d80
mov edx, 0x2460
jmp case.0x14004d08b.112
cmp dword [rbp - 0x70], 0
jne 0x140051d80
jmp case.0x14004d08b.112
mov rax, qword [rsi + 0x10]
add rax, 4
mov qword [rbp + 0x10], rax
jmp case.0x14004d08b.112
mov rcx, qword [rsp + 0x30]
mov edi, r15d
mov rax, qword [rbp + 0x10]
mov rbx, r15
test byte [rcx + 3], 1
mov r13, qword [rcx + 0x10]
mov r12d, dword [rcx + 4]
cmove rax, r15
mov r15, qword [rsp + 0x30]
mov ecx, dword [rcx + 8]
mov qword [rbp + 0x10], rax
mov dword [rbp - 0x58], ecx
movsxd r15, dword [r15 + 0xc]
test r15, r15
jle 0x14004e2ad
lea rsi, [r13 + 0x20]
test rax, rax
je 0x14004e232
mov r8d, dword [rax + rbx*4]
jmp 0x14004e235
mov r8d, edi
mov rax, qword [r13 + 0x18]
movzx r14d, byte [rbx + rax]
lea eax, [r8 + rcx]
movsxd rcx, eax
lea eax, [r8 + r12]
mov r8, qword [rsi]
imul rdx, rcx, 0x38
movsxd rcx, eax
add rdx, qword [rsp + 0x60]
imul rcx, rcx, 0x38
add rcx, qword [rsp + 0x60]
call fcn.140047b00
mov dword [rbp - 0x70], eax
mov r11d, eax
test eax, eax
jne 0x14004e287
mov ecx, dword [rbp - 0x58]
inc edi
mov rax, qword [rbp + 0x10]
inc rbx
add rsi, 8
cmp rbx, r15
jl 0x14004e227
jmp 0x14004e293
test r14b, r14b
je 0x14004e293
neg r11d
mov dword [rbp - 0x70], r11d
mov r14, qword [rsp + 0x60]
mov r10d, 1
mov r9, qword [rsp + 0x50]
mov edx, 0x2460
mov r11d, dword [rsp + 0x38]
mov rsi, qword [rsp + 0x30]
xor r15d, r15d
mov r12, qword [rsp + 0x58]
mov qword [rbp + 0x10], r15
jmp case.0x14004d08b.112
mov r11d, dword [rbp - 0x70]
test r11d, r11d
mov r11d, dword [rsp + 0x38]
mov rax, qword [rsp + 0x30]
jns 0x14004e2ea
mov eax, dword [rax + 4]
dec eax
cdqe
lea rcx, [rax + rax*2]
lea rsi, [r9 + rcx*8]
jmp case.0x14004d08b.112
mov rbx, qword [rsp + 0x40]
jne 0x14004e305
mov eax, dword [rax + 8]
dec eax
cdqe
lea rcx, [rax + rax*2]
lea rsi, [r9 + rcx*8]
jmp 0x14004d279
mov eax, dword [rax + 0xc]
dec eax
cdqe
lea rcx, [rax + rax*2]
lea rsi, [r9 + rcx*8]
lea rcx, [0x140000000]
mov r13, qword [rbp - 0x80]
add rsi, 0x18
mov qword [rsp + 0x30], rsi
jmp 0x14004d05a
mov rdi, qword [rsp + 0x30]
movsxd rax, dword [rdi + 4]
imul rcx, rax, 0x38
add rcx, r14
test byte [rcx + 8], 1
je 0x14004e34c
mov edx, 2
mov ebx, edx
jmp 0x14004e35f
call fcn.140041650
test rax, rax
mov rbx, r15
mov edx, 2
setne bl
movsxd rax, dword [rdi + 8]
imul rcx, rax, 0x38
add rcx, r14
test byte [rcx + 8], 1
je 0x14004e375
mov rcx, rdx
jmp 0x14004e383
call fcn.140041650
test rax, rax
mov rcx, r15
setne cl
lea r8, [rcx + rbx*2]
add r8, rbx
lea rcx, [0x140000000]
cmp byte [rdi], 0x1c
jne 0x14004e3a1
movzx r8d, byte [r8 + rcx + 0x1946d8]
jmp 0x14004e3aa
movzx r8d, byte [r8 + rcx + 0x1954a8]
movsxd rax, dword [rdi + 0xc]
imul rdx, rax, 0x38
mov eax, 0x3e00
movzx ecx, word [rdx + r14 + 8]
and cx, ax
cmp r8b, 2
jne 0x14004e3d8
or cx, 1
mov rsi, rdi
mov word [rdx + r14 + 8], cx
jmp 0x14004d2b3
movzx eax, r8b
or cx, 4
mov qword [rdx + r14], rax
mov rsi, rdi
mov word [rdx + r14 + 8], cx
jmp 0x14004d2b3
mov rbx, qword [rsp + 0x30]
movsxd rax, dword [rbx + 4]
imul rdi, rax, 0x38
movsxd rax, dword [rbx + 8]
imul rbx, rax, 0x38
add rdi, r14
add rbx, r14
test word [rbx + 8], dx
je 0x14004e432
mov rcx, rbx
call fcn.140041480
mov r9, qword [rsp + 0x50]
mov r10d, 1
mov r11d, dword [rsp + 0x38]
mov edx, 0x2460
jmp 0x14004e437
mov word [rbx + 8], r10w
test byte [rdi + 8], 1
jne 0x14004d540
mov rcx, rdi
mov word [rbx + 8], 4
call fcn.140041650
mov rcx, r15
test rax, rax
sete cl
mov qword [rbx], rcx
jmp 0x14004d2ae
mov rbx, qword [rsp + 0x30]
movsxd rax, dword [rbx + 4]
imul rdi, rax, 0x38
movsxd rax, dword [rbx + 8]
imul rbx, rax, 0x38
add rdi, r14
add rbx, r14
test word [rbx + 8], dx
je 0x14004e4a0
mov rcx, rbx
call fcn.140041480
mov r9, qword [rsp + 0x50]
mov r10d, 1
mov r11d, dword [rsp + 0x38]
mov edx, 0x2460
jmp 0x14004e4a5
mov word [rbx + 8], r10w
test byte [rdi + 8], 1
jne 0x14004d540
mov rcx, rdi
mov word [rbx + 8], 4
call fcn.140041650
not rax
mov qword [rbx], rax
jmp 0x14004d2ae
mov rax, qword [r13 + 0x68]
mov ecx, dword [rax + 4]
cmp ecx, dword [rsi + 4]
je 0x140051d80
mov dword [rsi + 4], ecx
jmp case.0x14004d08b.112
mov rax, qword [rsp + 0x30]
movsxd rax, dword [rax + 4]
imul rcx, rax, 0x38
add rcx, r14
test byte [rcx + 8], 1
je 0x14004e505
mov rax, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x30]
mov eax, dword [rax + 0xc]
jmp 0x14004e542
call fcn.1400416e0
ucomisd xmm0, xmm7
jp 0x14004e51d
jne 0x14004e51d
mov eax, r15d
mov r10d, 1
jmp 0x14004e526
mov r10d, 1
mov eax, r10d
mov rsi, qword [rsp + 0x30]
mov edx, 0x2460
mov r9, qword [rsp + 0x50]
mov r11d, dword [rsp + 0x38]
cmp byte [rsi], 0x16
jne 0x14004e542
xor eax, 1
test eax, eax
jne 0x140051d80
jmp case.0x14004d08b.112
mov rax, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x30]
movsxd rax, dword [rax + 4]
imul rcx, rax, 0x38
test byte [rcx + r14 + 8], 1
jne 0x140051d80
jmp case.0x14004d08b.112
mov rax, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x30]
movsxd rax, dword [rax + 4]
imul rcx, rax, 0x38
test byte [rcx + r14 + 8], 1
je 0x140051d80
jmp case.0x14004d08b.112
mov rax, qword [r13 + 0x98]
lea rdx, [rbp - 0x74]
mov rbx, qword [rsp + 0x30]
movsxd rcx, dword [rbx + 4]
mov rcx, qword [rax + rcx*8]
mov eax, dword [rbx + 8]
mov qword [rsp + 0x70], rcx
lea rcx, [rsp + 0x70]
mov dword [rbp - 0x74], eax
call fcn.1400471b0
mov dword [rsp + 0x3c], eax
mov esi, eax
test eax, eax
jne 0x14004f241
movsxd rax, dword [rbx + 0xc]
mov r8, qword [rsp + 0x70]
mov rdi, qword [rbp - 0x80]
imul r13, rax, 0x38
mov rbx, qword [r8 + 0x18]
mov eax, dword [rdi + 0x30]
add r13, r14
mov r12, qword [r8 + 0x70]
mov qword [rbp - 0x58], rbx
cmp dword [r8 + 0x58], eax
je 0x14004e71a
cmp byte [r8 + 2], sil
je 0x14004e649
cmp byte [r8], 3
jne 0x14004e637
movsxd rax, ebx
imul rdx, rax, 0x38
mov eax, dword [rdx + r14 + 0xc]
mov dword [rbp - 0x50], eax
mov dword [r8 + 0x60], eax
mov rcx, qword [rsp + 0x70]
mov eax, dword [rbp - 0x50]
mov dword [rcx + 0x5c], eax
mov rax, qword [rsp + 0x70]
mov rcx, qword [rdx + r14 + 0x10]
mov qword [rax + 0x68], rcx
jmp 0x14004e694
mov rcx, r13
call fcn.140041aa0
mov r12, qword [rsp + 0x58]
jmp 0x14004d2ae
mov rcx, rbx
call fcn.140038450
mov rcx, qword [rsp + 0x70]
lea rdx, [rbp - 0x50]
mov dword [rcx + 0x5c], eax
mov rcx, rbx
call fcn.140038af0
mov rcx, qword [rsp + 0x70]
mov qword [rcx + 0x68], rax
mov rcx, qword [rsp + 0x70]
mov edx, dword [rbp - 0x50]
mov eax, dword [rcx + 0x5c]
cmp eax, edx
ja 0x14004e682
mov dword [rcx + 0x60], eax
jmp 0x14004e694
mov r8, qword [rsp + 0x58]
cmp eax, dword [r8 + 0x70]
ja 0x140052096
mov dword [rcx + 0x60], edx
mov rax, qword [rsp + 0x70]
mov ecx, dword [rdi + 0x30]
mov dword [rax + 0x58], ecx
mov rcx, qword [rsp + 0x70]
mov r8, qword [rcx + 0x68]
movzx eax, byte [r8]
cmp al, 0x80
jae 0x14004e6b7
mov dword [rbp - 0x4c], eax
mov al, 1
jmp 0x14004e6c8
lea rdx, [rbp - 0x4c]
mov rcx, r8
call fcn.140021f70
mov rcx, qword [rsp + 0x70]
movzx eax, al
mov dword [rcx + 0x64], eax
mov rax, qword [rsp + 0x70]
mov word [rax + 0x12], r15w
mov eax, dword [rbp - 0x4c]
mov dword [r12], eax
mov eax, dword [rbp - 0x4c]
cmp dword [rbp - 0x50], eax
jae 0x14004e7ed
mov rax, qword [rsp + 0x70]
mov qword [rax + 0x68], r15
mov rax, qword [rsp + 0x70]
mov dword [rax + 0x60], r15d
mov eax, dword [rbp - 0x4c]
cmp eax, 0x18003
ja 0x140051e89
mov r8, qword [rsp + 0x70]
cmp eax, dword [r8 + 0x5c]
ja 0x140051e89
movzx eax, word [r8 + 0x12]
movsxd r9, dword [rbp - 0x74]
cmp eax, r9d
jg 0x14004e8ed
mov eax, dword [r12]
cmp dword [r8 + 0x64], eax
jae 0x14004e8b1
mov rax, qword [r8 + 0x68]
mov qword [rbp - 0x68], rax
test rax, rax
jne 0x14004e7a9
xorps xmm0, xmm0
mov qword [rbp + 0x1a0], rax
movups xmmword [rbp + 0x170], xmm0
mov r9d, r15d
mov rcx, rbx
movups xmmword [rbp + 0x180], xmm0
movups xmmword [rbp + 0x190], xmm0
cmp byte [r8 + 4], al
lea rax, [rbp + 0x170]
mov r8d, dword [r12]
sete r9b
mov qword [rsp + 0x20], rax
xor edx, edx
call fcn.140042130
mov dword [rsp + 0x3c], eax
mov esi, eax
test eax, eax
jne 0x140051e95
mov rax, qword [rbp + 0x180]
mov r8, qword [rsp + 0x70]
mov qword [rbp - 0x68], rax
movzx esi, word [r8 + 0x12]
mov ebx, dword [r8 + 0x64]
mov r14d, esi
mov r15d, dword [r12]
add rbx, rax
add r15, rax
mov edi, dword [r12 + rsi*4]
nop dword [rax]
nop word [rax + rax]
movzx ecx, byte [rbx]
mov eax, 0x80
mov dword [rsp + 0x68], ecx
cmp ecx, eax
jae 0x14004e800
inc rbx
call fcn.140047320
movzx eax, al
jmp 0x14004e81e
mov r8, qword [rsp + 0x70]
test eax, eax
je 0x14004e71a
mov rax, qword [r8 + 0x68]
jmp 0x14004e7a5
lea rdx, [rsp + 0x68]
mov rcx, rbx
call fcn.140021f70
mov ecx, dword [rsp + 0x68]
movzx eax, al
add rbx, rax
call fcn.140047300
mov eax, eax
mov rcx, qword [rsp + 0x70]
add rdi, rax
mov eax, dword [rsp + 0x68]
inc esi
mov dword [rcx + r14*4 + 0x78], eax
movsxd r14, esi
mov dword [r12 + r14*4], edi
mov rcx, qword [rsp + 0x70]
cmp esi, dword [rbp - 0x74]
jg 0x14004e849
cmp rbx, r15
jb 0x14004e7d0
jmp 0x14004e84e
cmp rbx, r15
jb 0x14004e863
cmp rbx, r15
ja 0x140051ea2
mov eax, dword [rcx + 0x5c]
cmp rdi, rax
jne 0x140051ea2
mov eax, dword [rcx + 0x5c]
cmp rdi, rax
ja 0x140051ea2
sub ebx, dword [rbp - 0x68]
mov word [rcx + 0x12], si
mov rax, qword [rsp + 0x70]
mov dword [rax + 0x64], ebx
mov r8, qword [rsp + 0x70]
cmp qword [r8 + 0x68], 0
jne 0x14004e89b
lea rcx, [rbp + 0x170]
call fcn.140041630
mov r8, qword [rsp + 0x70]
mov r9d, dword [rbp - 0x74]
xor r15d, r15d
mov edx, dword [rsp + 0x68]
mov rbx, qword [rbp - 0x58]
mov r14, qword [rsp + 0x60]
jmp 0x14004e8b8
mov edx, r15d
mov dword [rsp + 0x68], edx
movzx eax, word [r8 + 0x12]
cmp eax, r9d
jg 0x14004e8f6
mov rax, qword [rsp + 0x30]
mov rcx, r13
cmp byte [rax + 1], 0xf8
jne 0x14004e63a
mov rdx, qword [rax + 0x10]
mov r8d, 0x800
call fcn.140041c80
mov r12, qword [rsp + 0x58]
jmp 0x14004d2ae
mov edx, dword [r8 + r9*4 + 0x78]
mov dword [rsp + 0x68], edx
mov eax, 0x2460
test word [r13 + 8], ax
je 0x14004e917
mov rcx, r13
call fcn.140041aa0
mov r8, qword [rsp + 0x70]
mov r9d, dword [rbp - 0x74]
mov edx, dword [rsp + 0x68]
lea eax, [r9 + 1]
movsxd rcx, eax
mov eax, dword [r12 + rcx*4]
cmp dword [r8 + 0x60], eax
jb 0x14004ea18
movsxd rax, r9d
mov edi, dword [r12 + rax*4]
add rdi, qword [r8 + 0x68]
cmp edx, 0xc
jae 0x14004e951
mov r8, r13
mov rcx, rdi
call fcn.140047470
mov r12, qword [rsp + 0x58]
jmp 0x14004d2ae
movzx eax, byte [rsp + 0x48]
lea ebx, [rdx - 0xc]
shr ebx, 1
mov dword [r13 + 0xc], ebx
mov byte [r13 + 0xa], al
lea edx, [rbx + 2]
cmp dword [r13 + 0x20], edx
jge 0x14004e9b1
xor r8d, r8d
mov word [r13 + 8], 1
mov rcx, r13
call fcn.140040cd0
test eax, eax
je 0x14004e9b9
mov r12, qword [rsp + 0x58]
mov r13, qword [rbp - 0x80]
mov rcx, r12
call fcn.14001e680
lea rdx, [0x14018d710]
mov rcx, r13
call fcn.1400429f0
mov ebx, 7
mov esi, ebx
lea edi, [rbx - 6]
jmp 0x14004f24b
mov rax, qword [r13 + 0x18]
mov qword [r13 + 0x10], rax
mov rcx, qword [r13 + 0x10]
mov r8, rbx
mov rdx, rdi
call fcn.140132db0
mov rax, qword [r13 + 0x10]
lea rcx, [0x140000000]
mov rsi, qword [rsp + 0x30]
mov r10d, 1
mov r12, qword [rsp + 0x58]
mov edx, 0x2460
mov r9, qword [rsp + 0x50]
mov r11d, dword [rsp + 0x38]
mov byte [rbx + rax], 0
mov rax, qword [r13 + 0x10]
mov byte [rbx + rax + 1], 0
mov eax, dword [rsp + 0x68]
and eax, 1
movzx eax, word [rcx + rax*2 + 0x191a28]
mov word [r13 + 8], ax
jmp case.default.0x14004d08b
movzx eax, byte [rsp + 0x48]
mov byte [r13 + 0xa], al
mov rax, qword [rsp + 0x30]
mov edx, dword [rsp + 0x68]
movzx eax, byte [rax + 3]
test al, 0xc0
je 0x14004ea40
cmp edx, 0xc
jb 0x14004ea3c
test dl, 1
je 0x14004ea52
test al, al
js 0x14004ea52
mov ecx, edx
call fcn.140047300
mov r8d, eax
test eax, eax
jne 0x14004ea6b
mov edx, dword [rsp + 0x68]
mov r8, r13
lea rcx, [0x1401baca8]
call fcn.140047470
mov r12, qword [rsp + 0x58]
jmp 0x14004d2ae
mov rax, qword [rsp + 0x70]
mov r9d, r15d
movsxd rdx, dword [rbp - 0x74]
mov rcx, rbx
mov qword [rsp + 0x20], r13
cmp byte [rax + 4], 0
mov edx, dword [r12 + rdx*4]
sete r9b
call fcn.140042130
mov dword [rsp + 0x3c], eax
mov esi, eax
test eax, eax
jne 0x140051ec1
mov edx, dword [rsp + 0x68]
mov r8, r13
mov rcx, qword [r13 + 0x10]
call fcn.140047470
mov r12, qword [rsp + 0x58]
mov eax, 0xefff
and word [r13 + 8], ax
jmp 0x14004d2ae
mov rax, qword [rsp + 0x30]
mov rdi, qword [rax + 0x10]
movsxd rax, dword [rax + 4]
imul rbx, rax, 0x38
movzx eax, byte [rdi]
add rbx, r14
test al, al
je 0x14004d540
movzx r14d, byte [rsp + 0x48]
nop word [rax + rax]
movzx r8d, r14b
lea rdi, [rdi + 1]
movzx edx, al
mov rcx, rbx
call fcn.14004ccd0
movzx eax, byte [rdi]
add rbx, 0x38
test al, al
jne 0x14004eaf0
mov r14, qword [rsp + 0x60]
jmp 0x14004d2ae
mov rcx, qword [rsp + 0x30]
mov rsi, r15
mov r12d, r15d
mov qword [rbp - 0x68], r15
mov r13, r15
movsxd rax, dword [rcx + 4]
mov rbx, qword [rcx + 0x10]
imul r15, rax, 0x38
mov eax, dword [rcx + 8]
dec eax
add r15, r14
cdqe
imul rax, rax, 0x38
add rax, r15
mov qword [rbp - 0x58], rax
mov rax, qword [rbp - 0x80]
movzx r14d, byte [rax + 0xbf]
movsxd rax, dword [rcx + 0xc]
imul rax, rax, 0x38
add rax, qword [rsp + 0x60]
mov qword [rbp - 0x10], rax
test rbx, rbx
je 0x14004eba3
movzx eax, byte [rbx]
mov rdi, r15
movzx r13d, byte [rsp + 0x48]
nop dword [rax]
movzx r8d, r13b
movzx edx, al
mov rcx, rdi
call fcn.14004ccd0
movzx eax, byte [rbx + 1]
lea rbx, [rbx + 1]
add rdi, 0x38
test al, al
jne 0x14004eb80
mov r13, qword [rbp - 0x68]
mov rbx, qword [rbp - 0x58]
nop word [rax + rax]
lea r8, [rbp - 0x30]
mov edx, r14d
mov rcx, rbx
call fcn.140047200
mov edi, eax
mov eax, 0x4000
mov dword [rbx + 0x24], edi
test word [rbx + 8], ax
je 0x14004ebf3
test rsi, rsi
je 0x14004ebe6
mov rcx, rbx
call fcn.140041140
test eax, eax
jne 0x14004e982
jmp 0x14004ebf3
movsxd rcx, dword [rbx]
add r13, rcx
sub dword [rbp - 0x30], ecx
mov qword [rbp - 0x68], r13
mov eax, dword [rbp - 0x30]
mov ecx, 1
add rsi, rax
cmp edi, 0x7f
jbe 0x14004ec1b
mov rax, rdi
shr rax, 7
test rax, rax
je 0x14004ec1b
nop
inc ecx
shr rax, 7
test rax, rax
jne 0x14004ec10
add r12d, ecx
cmp rbx, r15
je 0x14004ec29
sub rbx, 0x38
jmp 0x14004ebb0
cmp r12d, 0x7e
jle 0x14004ec48
movsxd rcx, r12d
call fcn.140021ff0
add r12d, eax
mov ebx, eax
movsxd rcx, r12d
call fcn.140021ff0
cmp ebx, eax
jge 0x14004ec4b
inc r12d
mov r8, qword [rsp + 0x58]
movsxd rbx, r12d
movsxd rax, dword [r8 + 0x70]
lea r14, [rbx + rsi]
lea rcx, [r14 + r13]
mov qword [rbp + 0x40], r14
cmp rcx, rax
jg 0x140052090
mov rsi, qword [rbp - 0x10]
mov edx, r14d
mov rcx, rsi
call fcn.140041020
test eax, eax
jne 0x14004e982
mov rsi, qword [rsi + 0x10]
mov edx, 0x80
cmp r12d, edx
jae 0x14004ec9f
mov r13d, 1
mov byte [rsi], r12b
mov eax, r13d
jmp 0x14004ecb3
mov rdx, rbx
mov rcx, rsi
call fcn.140021d40
mov edx, 0x80
lea r13d, [rdx - 0x7f]
mov r14, qword [rbp - 0x58]
movzx edi, al
nop word [rax + rax]
mov ebx, dword [r15 + 0x24]
movsxd rcx, edi
add rcx, rsi
cmp ebx, edx
jae 0x14004ecd5
mov byte [rcx], bl
mov eax, r13d
jmp 0x14004ecdd
mov rdx, rbx
call fcn.140021d40
movzx eax, al
mov r8d, ebx
movsxd rcx, r12d
mov rdx, r15
add rcx, rsi
add edi, eax
call fcn.140047330
add r12d, eax
add r15, 0x38
mov edx, 0x80
cmp r15, r14
jbe 0x14004ecc0
mov rax, qword [rbp - 0x10]
mov r13, qword [rbp - 0x68]
mov r14, qword [rbp + 0x40]
mov dword [rax + 0xc], r14d
mov word [rax + 8], 0x10
test r13, r13
je 0x14004ed28
mov dword [rax], r13d
mov word [rax + 8], 0x4010
mov r12, qword [rsp + 0x58]
xor r15d, r15d
mov r14, qword [rsp + 0x60]
mov byte [rax + 0xa], 1
jmp 0x14004d2ae
mov rax, qword [rsp + 0x30]
lea rdx, [rbp + 0x48]
movsxd rcx, dword [rax + 4]
mov rax, qword [r13 + 0x98]
mov rcx, qword [rax + rcx*8]
mov rcx, qword [rcx + 0x18]
mov qword [rbp + 0x48], r15
call fcn.14003e700
mov dword [rsp + 0x3c], eax
mov esi, eax
test eax, eax
jne 0x14004f241
mov rdx, qword [rsp + 0x30]
mov rcx, r13
call fcn.14004cf00
mov rcx, qword [rbp + 0x48]
mov qword [rax], rcx
jmp 0x14004d2ae
mov rax, qword [rsp + 0x30]
mov r14d, dword [rax + 4]
mov rdi, qword [rax + 0x10]
mov dword [rbp - 0x68], r14d
test r14d, r14d
jne 0x14004ee6a
cmp dword [r12 + 0xb4], r14d
jg 0x140051ecf
mov rcx, rdi
call fcn.140020e40
mov r8d, dword [r12 + 0x280]
xor edx, edx
add r8d, dword [r12 + 0x27c]
mov rcx, r12
movsxd rsi, eax
call fcn.1400a80c0
mov r12, qword [rsp + 0x58]
mov dword [rsp + 0x3c], eax
test eax, eax
jne 0x14004f23d
lea rdx, [rsi + 0x21]
mov rcx, r12
call fcn.14001e2a0
mov rbx, rax
test rax, rax
je 0x14004eb0e
lea r9, [rax + 0x20]
mov rdx, rdi
lea ecx, [rsi + 1]
mov qword [rax], r9
movsxd r8, ecx
mov rcx, r9
call fcn.140132db0
cmp byte [r12 + 0x53], r14b
je 0x14004ee2c
mov byte [r12 + 0x53], r14b
mov byte [r12 + 0x5b], 1
jmp 0x14004ee34
inc dword [r12 + 0x27c]
mov rax, qword [r12 + 0x270]
mov r14, qword [rsp + 0x60]
mov qword [rbx + 0x18], rax
mov rax, qword [r12 + 0x288]
mov qword [r12 + 0x270], rbx
mov qword [rbx + 8], rax
mov rax, qword [r12 + 0x290]
mov qword [rbx + 0x10], rax
jmp 0x14004d2ae
mov rbx, qword [r12 + 0x270]
test rbx, rbx
je 0x14004ee9b
nop word [rax + rax]
mov rcx, qword [rbx]
mov rdx, rdi
call fcn.140021280
test eax, eax
je 0x14004eeb9
mov rbx, qword [rbx + 0x18]
inc r15d
test rbx, rbx
jne 0x14004ee80
mov r8, rdi
lea rdx, [0x14018d4c0]
mov rcx, r13
call fcn.1400429f0
mov edi, 1
mov esi, edi
jmp 0x14004f246
cmp dword [r12 + 0xb4], 0
jle 0x14004eece
cmp r14d, 1
je 0x140051ee8
cmp qword [rbx + 0x18], 0
jne 0x14004ef35
cmp byte [r12 + 0x5b], 0
je 0x14004ef35
mov edi, 1
mov dword [rbp - 0x58], edi
cmp r14d, edi
jne 0x14004ef3c
mov edx, edi
mov rcx, r13
call fcn.1400460f0
mov dword [rsp + 0x3c], eax
test eax, eax
jne 0x14004f30e
mov rcx, r13
mov byte [r12 + 0x53], dil
call fcn.140046140
cmp eax, 5
je 0x140051f01
mov r8, qword [rsp + 0x58]
mov byte [r12 + 0x5b], 0
add r12, 0x27c
mov ecx, dword [r13 + 0x38]
mov dword [rsp + 0x3c], ecx
jmp 0x14004f039
xor ecx, ecx
mov dword [rbp - 0x58], ecx
jmp 0x14004ef3e
xor ecx, ecx
add r12, 0x27c
mov eax, dword [r12]
sub eax, r15d
lea r15d, [rax - 1]
cmp r14d, 2
jne 0x14004efba
mov rax, qword [rsp + 0x58]
mov esi, ecx
mov r13d, dword [rax + 0x2c]
shr r13d, 1
and r13d, 1
cmp dword [rax + 0x28], 0
jle 0x14004efbd
mov r14d, r13d
mov rdi, rcx
xor r14d, 1
nop dword [rax + rax]
mov rcx, qword [rax + 0x20]
mov r8d, r14d
mov edx, 0x204
mov rcx, qword [rdi + rcx + 8]
call fcn.140037d80
mov dword [rsp + 0x3c], eax
test eax, eax
jne 0x140052368
mov rax, qword [rsp + 0x58]
inc esi
add rdi, 0x20
cmp esi, dword [rax + 0x28]
jl 0x14004ef80
mov r14d, dword [rbp - 0x68]
xor ecx, ecx
jmp 0x14004efbd
mov r13d, ecx
mov r8, qword [rsp + 0x58]
mov esi, ecx
cmp dword [r8 + 0x28], 0
jle 0x14004f001
mov rdi, rcx
nop
mov rcx, qword [r8 + 0x20]
mov edx, r14d
mov r8d, r15d
mov rcx, qword [rdi + rcx + 8]
call fcn.140038050
mov dword [rsp + 0x3c], eax
test eax, eax
jne 0x140052368
mov r8, qword [rsp + 0x58]
inc esi
add rdi, 0x20
cmp esi, dword [r8 + 0x28]
jl 0x14004efd0
test r13d, r13d
je 0x14004f032
mov rax, qword [r8 + 8]
test rax, rax
je 0x14004f020
nop
or dword [rax + 0xc0], 1
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x14004f010
mov rcx, r8
call fcn.14006b840
mov r8, qword [rsp + 0x58]
or dword [r8 + 0x2c], 2
mov r13, qword [rbp - 0x80]
mov edi, dword [rbp - 0x58]
mov rcx, qword [r8 + 0x270]
cmp rcx, rbx
je 0x14004f070
mov rax, qword [rcx + 0x18]
mov rdx, rcx
mov rcx, r8
mov qword [r8 + 0x270], rax
call fcn.14001de90
dec dword [r12]
mov r8, qword [rsp + 0x58]
mov rcx, qword [r8 + 0x270]
cmp rcx, rbx
jne 0x14004f045
cmp r14d, 1
jne 0x14004f0b1
mov rax, qword [rbx + 0x18]
mov rdx, rbx
mov rcx, r8
mov qword [r8 + 0x270], rax
call fcn.14001de90
test edi, edi
jne 0x14004f0da
dec dword [r12]
mov r12, qword [rsp + 0x58]
mov r8d, r15d
mov edx, r14d
mov rcx, r12
call fcn.1400a80c0
mov esi, eax
mov dword [rsp + 0x3c], eax
test eax, eax
jmp 0x14004f0e5
mov rax, qword [rbx + 8]
mov r12, qword [rsp + 0x58]
mov qword [r12 + 0x288], rax
mov rax, qword [rbx + 0x10]
mov qword [r12 + 0x290], rax
test edi, edi
je 0x14004f099
cmp r14d, 2
je 0x14004f099
jmp 0x14004f0df
mov r12, qword [rsp + 0x58]
mov esi, dword [rsp + 0x3c]
test esi, esi
jne 0x14004f241
mov r14, qword [rsp + 0x60]
xor r15d, r15d
jmp 0x14004d2ae
mov rax, qword [rsp + 0x30]
mov edx, dword [rax + 8]
test edx, edx
je 0x14004f113
test dword [r12 + 0x2c], 0x4000000
jne 0x140051f42
movsxd rcx, dword [rax + 4]
mov rax, qword [r12 + 0x20]
shl rcx, 5
mov rbx, qword [rcx + rax + 8]
test rbx, rbx
je 0x14004f20c
mov rcx, rbx
call fcn.140036b00
mov dword [rsp + 0x3c], eax
mov esi, eax
test eax, eax
jne 0x140051f4c
mov rax, qword [rsp + 0x30]
cmp dword [rax + 8], esi
je 0x14004f1cc
test byte [r13 + 0xc0], 0x40
je 0x14004f1cc
cmp byte [r12 + 0x53], sil
je 0x14004f16a
cmp dword [r12 + 0xb0], 1
jle 0x14004f1cc
mov r8d, dword [r13 + 0x40]
test r8d, r8d
jne 0x14004f18f
inc dword [r12 + 0x280]
mov r8d, dword [r12 + 0x280]
add r8d, dword [r12 + 0x27c]
mov dword [r13 + 0x40], r8d
dec r8d
xor edx, edx
mov rcx, r12
call fcn.1400a80c0
mov dword [rsp + 0x3c], eax
test eax, eax
jne 0x14004f1b4
mov edx, dword [r13 + 0x40]
mov rcx, rbx
call fcn.140037fe0
mov dword [rsp + 0x3c], eax
mov rax, qword [r12 + 0x288]
mov qword [r13 + 0x58], rax
mov rax, qword [r12 + 0x290]
mov qword [r13 + 0x60], rax
lea r8, [rbp - 0x20]
mov edx, 1
mov rcx, rbx
call fcn.14003e5d0
mov rax, qword [rsp + 0x30]
mov r10d, 1
mov r9, qword [rsp + 0x50]
mov r11d, dword [rsp + 0x38]
movsxd rcx, dword [rax + 4]
mov rax, qword [r12 + 0x20]
shl rcx, 5
mov rcx, qword [rcx + rax + 0x18]
mov eax, dword [rbp - 0x20]
mov edx, dword [rcx + 4]
jmp 0x14004f215
mov eax, r15d
mov edx, r15d
mov dword [rbp - 0x20], eax
mov rsi, qword [rsp + 0x30]
cmp byte [rsi + 3], 0
je 0x14004f232
cmp eax, dword [rsi + 0xc]
jne 0x140051f8a
cmp edx, dword [rsi + 0x10]
jne 0x140051f8a
cmp dword [rsp + 0x3c], 0
je 0x14004d0f1
mov esi, dword [rsp + 0x3c]
mov edi, 1
mov ebx, 7
cmp byte [r12 + 0x55], 0
cmovne esi, ebx
cmp qword [r13 + 0x90], 0
mov dword [rsp + 0x3c], esi
jne 0x14004f283
cmp esi, 0xc0a
je 0x14004f283
mov ecx, esi
call fcn.1400c1e90
mov r8, rax
lea rdx, [0x14018cbb4]
mov rcx, r13
call fcn.1400429f0
mov edx, esi
mov dword [r13 + 0x38], esi
mov rcx, r12
call fcn.140020ee0
mov rcx, qword [rsp + 0x30]
movabs rax, 0x2aaaaaaaaaaaaaab
sub rcx, qword [rsp + 0x50]
mov r9, qword [r13 + 0xe0]
imul rcx
mov rax, qword [r13 + 0x90]
mov ecx, dword [rsp + 0x3c]
sar rdx, 2
mov r8, rdx
mov qword [rsp + 0x20], rax
shr r8, 0x3f
add r8, rdx
lea rdx, [0x14018d6f0]
call fcn.1400204a0
mov rcx, r13
call fcn.140046140
cmp dword [rsp + 0x3c], 0xc0a
jne 0x14004f2f3
mov rcx, r12
call fcn.14001e680
movzx edx, byte [rsp + 0x78]
mov eax, edi
mov dword [rsp + 0x3c], eax
test dl, dl
je 0x14004f30e
dec edx
mov rcx, r12
call fcn.14006b7f0
mov eax, edi
mov rcx, qword [rsp + 0x40]
mov edx, dword [rsp + 0x38]
movaps xmm7, xmmword [rsp + 0x420]
movaps xmm6, xmmword [rsp + 0x430]
mov r15, qword [rsp + 0x440]
mov r14, qword [rsp + 0x448]
mov rdi, qword [rsp + 0x488]
mov rsi, qword [rsp + 0x480]
mov rbx, qword [rsp + 0x478]
mov qword [r12 + 0x30], rcx
add dword [r13 + 0xdc], edx
cmp dword [r13 + 0xc8], 0
mov r12, qword [rsp + 0x450]
je 0x14004f379
mov rcx, r13
call fcn.1400442b0
mov eax, dword [rsp + 0x3c]
mov rcx, qword [rbp + 0x310]
xor rcx, rsp
call fcn.140130b40
add rsp, 0x458
pop r13
pop rbp
ret
mov rbx, qword [rsp + 0x30]
lea r8, [rbp + 0x28]
mov rcx, qword [r12 + 0x20]
movsxd rax, dword [rbx + 4]
mov edx, dword [rbx + 0xc]
shl rax, 5
mov rcx, qword [rax + rcx + 8]
call fcn.14003e5d0
mov rdx, rbx
mov rcx, r13
call fcn.14004cf00
movsxd rcx, dword [rbp + 0x28]
mov qword [rax], rcx
mov rsi, rbx
jmp 0x14004d2b3
mov rax, qword [rsp + 0x30]
movsxd rbx, dword [rax + 4]
mov r8d, dword [rax + 0xc]
mov edx, dword [rax + 8]
shl rbx, 5
add rbx, qword [r12 + 0x20]
mov rcx, qword [rbx + 8]
call fcn.14003e660
mov dword [rsp + 0x3c], eax
mov rax, qword [rsp + 0x30]
mov eax, dword [rax + 8]
cmp eax, 1
jne 0x14004f419
mov rcx, qword [rbx + 0x18]
mov rax, qword [rsp + 0x30]
mov eax, dword [rax + 0xc]
mov dword [rcx], eax
or dword [r12 + 0x2c], 2
jmp 0x14004f42e
cmp eax, 2
jne 0x14004f42e
mov rax, qword [rsp + 0x30]
mov rcx, qword [rbx + 0x18]
movzx eax, byte [rax + 0xc]
mov byte [rcx + 0x70], al
mov rsi, qword [rsp + 0x30]
cmp dword [rsi + 4], 1
jne 0x14004f449
mov rcx, r12
call fcn.140048ca0
and dword [r13 + 0xc0], 0xfffffffe
cmp dword [rsp + 0x3c], 0
jne 0x14004f23d
jmp 0x14004d2b3
mov rax, qword [rsp + 0x30]
movsxd rcx, dword [rax + 4]
mov rax, qword [r13 + 0x98]
mov rdi, qword [rax + rcx*8]
mov rcx, qword [rsp + 0x30]
test rdi, rdi
je 0x14004f489
mov eax, dword [rcx + 8]
cmp dword [rdi + 0xc], eax
jne 0x14004f489
jmp 0x14004f59c
mov rcx, qword [rsp + 0x30]
test byte [r13 + 0xc0], 1
jne 0x140051fe5
movsxd r12, dword [rcx + 0xc]
mov edi, r15d
mov r8, qword [rsp + 0x58]
mov rax, r12
shl rax, 5
mov r14, r15
movsxd r15, dword [rcx + 8]
add rax, qword [r8 + 0x20]
mov r13, qword [rax + 8]
cmp bl, 0x69
jne 0x14004f4e9
mov rax, qword [rax + 0x18]
movzx esi, byte [rcx + 3]
and esi, 8
or esi, 4
movzx ecx, byte [rax + 0x70]
mov rax, qword [rbp - 0x80]
cmp cl, byte [rax + 0xbf]
jae 0x14004f4e2
mov byte [rax + 0xbf], cl
mov rcx, qword [rsp + 0x30]
jmp 0x14004f4eb
xor esi, esi
test byte [rcx + 3], 0x10
je 0x14004f50a
imul rbx, r15, 0x38
add rbx, qword [rsp + 0x60]
mov rcx, rbx
call fcn.1400417b0
mov rcx, qword [rsp + 0x30]
mov r15d, dword [rbx]
movzx eax, byte [rcx + 1]
cmp al, 0xfa
jne 0x14004f524
mov r14, qword [rcx + 0x10]
movzx edi, word [r14 + 8]
movzx eax, word [r14 + 6]
add edi, eax
jmp 0x14004f52b
cmp al, 0xf2
jne 0x14004f52b
mov edi, dword [rcx + 0x10]
mov edx, dword [rcx + 4]
mov r9d, r12d
mov rcx, qword [rbp - 0x80]
mov r8d, edi
mov byte [rsp + 0x20], 0
call fcn.14004ca70
mov rdi, rax
test rax, rax
je 0x14004e982
mov rcx, qword [rax + 0x18]
mov r9, r14
or dword [rax + 8], 4
mov r8d, esi
mov qword [rsp + 0x20], rcx
mov edx, r15d
mov rcx, r13
mov byte [rax + 2], 1
mov dword [rax + 0xc], r15d
call fcn.140038110
mov rcx, qword [rsp + 0x30]
mov r13, qword [rbp - 0x80]
mov r12, qword [rsp + 0x58]
mov qword [rdi + 0x28], r14
cmp byte [rcx + 1], 0xfa
mov r14, qword [rsp + 0x60]
mov dword [rsp + 0x3c], eax
setne al
mov byte [rdi + 4], al
xor r15d, r15d
movzx edx, byte [rcx + 3]
mov rcx, qword [rdi + 0x18]
and edx, 3
call fcn.140034290
mov esi, dword [rsp + 0x3c]
test esi, esi
jne 0x14004f241
jmp 0x14004d2ae
mov rax, qword [rsp + 0x30]
mov r9d, 0xffffffff
mov rcx, r13
mov byte [rsp + 0x20], 0
mov r8d, dword [rax + 8]
mov edx, dword [rax + 4]
call fcn.14004ca70
mov rbx, rax
test rax, rax
je 0x14004e98b
or dword [rax + 8], 1
lea r9, [rbx + 0x20]
mov byte [rax + 2], 1
mov r8, r12
mov rax, qword [rsp + 0x30]
xor edx, edx
mov rcx, qword [r12]
mov dword [rsp + 0x28], 0x41e
movzx eax, byte [rax + 3]
or eax, 5
mov dword [rsp + 0x20], eax
call fcn.140035590
mov esi, eax
test eax, eax
jne 0x14004f241
mov rcx, qword [rbx + 0x20]
lea edx, [rax + 1]
call fcn.140036b00
mov esi, eax
test eax, eax
jne 0x14004f241
mov rax, qword [rsp + 0x30]
mov rcx, qword [rbx + 0x20]
mov rsi, qword [rax + 0x10]
test rsi, rsi
je 0x14004f690
movzx r8d, byte [rax + 3]
lea rdx, [rbp + 0x24]
or r8d, 2
call fcn.14003dde0
mov dword [rsp + 0x3c], eax
test eax, eax
jne 0x14004f68c
mov rax, qword [rbx + 0x18]
mov r9, rsi
mov edx, dword [rbp + 0x24]
mov r8d, 4
mov rcx, qword [rbx + 0x20]
mov qword [rsp + 0x20], rax
mov qword [rbx + 0x28], rsi
call fcn.140038110
mov dword [rsp + 0x3c], eax
xor al, al
jmp 0x14004f6af
mov rax, qword [rbx + 0x18]
xor r9d, r9d
mov qword [rsp + 0x20], rax
lea edx, [r9 + 1]
lea r8d, [r9 + 4]
call fcn.140038110
mov dword [rsp + 0x3c], eax
mov al, 1
mov esi, dword [rsp + 0x3c]
mov r8d, 4
mov ecx, r8d
mov byte [rbx + rcx], al
test esi, esi
jne 0x14004f241
mov rax, qword [rsp + 0x30]
mov ecx, r15d
mov r14, qword [rsp + 0x60]
cmp byte [rax + 3], 8
mov eax, dword [rbx + 8]
cmovne ecx, r8d
and eax, 0xfffffffb
or ecx, eax
mov dword [rbx + 8], ecx
jmp 0x14004d2ae
mov rax, qword [rsp + 0x30]
mov r9d, 0xffffffff
mov rcx, r13
mov byte [rsp + 0x20], 1
mov r8d, dword [rax + 8]
mov edx, dword [rax + 4]
call fcn.14004ca70
test rax, rax
je 0x14004e98b
mov rdx, qword [rsp + 0x30]
mov r8, rax
mov rcx, qword [rdx + 0x10]
mov qword [rax + 0x28], rcx
mov rcx, r12
mov edx, dword [rdx + 0xc]
call fcn.140054400
mov dword [rsp + 0x3c], eax
mov esi, eax
test eax, eax
jne 0x14004f241
jmp 0x14004d2ae
mov rax, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x30]
movsxd rcx, dword [rax + 4]
mov rax, qword [r13 + 0x98]
mov rdx, qword [rax + rcx*8]
mov rcx, qword [rdx + 0x38]
lea rax, [rcx + 1]
mov qword [rdx + 0x38], rax
test rcx, rcx
je 0x140051d80
mov edx, 0x2460
jmp case.0x14004d08b.112
mov rax, qword [rsp + 0x30]
mov r9d, 0xffffffff
mov rcx, r13
mov byte [rsp + 0x20], 3
mov r8d, dword [rax + 0xc]
mov edx, dword [rax + 4]
call fcn.14004ca70
test rax, rax
je 0x14004e98b
mov rcx, qword [rsp + 0x30]
mov byte [rax + 2], 1
mov ecx, dword [rcx + 8]
mov dword [rax + 0x18], ecx
mov byte [rax + 4], 1
jmp 0x14004d2ae
mov rdx, qword [r13 + 0x98]
mov rcx, r13
mov rax, qword [rsp + 0x30]
movsxd rax, dword [rax + 4]
mov rdx, qword [rdx + rax*8]
call fcn.140044f40
mov rax, qword [rsp + 0x30]
movsxd rcx, dword [rax + 4]
mov rax, qword [r13 + 0x98]
mov qword [rax + rcx*8], r15
jmp 0x14004d2ae
mov rax, qword [r13 + 0x98]
mov rdi, qword [rsp + 0x30]
movsxd rcx, dword [rdi + 4]
mov rsi, qword [rax + rcx*8]
cmp byte [rsi + 4], 0
mov byte [rsi + 2], 0
je 0x14004f8a8
movsxd rax, dword [rdi + 0xc]
imul rdi, rax, 0x38
add rdi, r14
movzx eax, byte [rdi + 8]
and al, 0xe
cmp al, 2
jne 0x14004f830
xor edx, edx
mov rcx, rdi
call fcn.14004cbd0
mov rcx, rdi
call fcn.140041650
movzx ecx, word [rdi + 8]
mov r14, rax
test cl, 4
jne 0x14004f875
test cl, 8
je 0x140051d71
movsd xmm0, qword [rdi]
xorps xmm1, xmm1
cvtsi2sd xmm1, rax
comisd xmm1, xmm0
jbe 0x14004f868
test bl, 1
jne 0x14004f875
dec ebx
jmp 0x14004f875
comisd xmm0, xmm1
jbe 0x14004f875
test bl, 1
je 0x14004f875
inc ebx
mov rcx, qword [rsi + 0x18]
lea rax, [rbp - 0x78]
lea rdi, [rsi + 0x18]
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov r8, r14
xor edx, edx
call fcn.140039010
mov dword [rsp + 0x3c], eax
mov qword [rsi + 0x40], r14
test eax, eax
jne 0x14004f23d
jmp 0x14004f940
mov rax, qword [rsi + 0x18]
lea rdi, [rsi + 0x18]
mov rcx, qword [rsp + 0x30]
mov edx, 0xffffffff
mov r15d, 0
movzx r14d, byte [rax + 0x57]
mov rax, qword [rsi + 0x28]
and r14b, 2
mov qword [rbp + 0x78], rax
movzx eax, word [rcx + 0x10]
setne r15b
mov word [rbp + 0x88], ax
lea eax, [rbx - 1]
test al, 1
mov byte [rbp + 0x8e], 0
mov eax, r10d
cmovne eax, edx
xor r9d, r9d
mov byte [rbp + 0x8a], al
lea rdx, [rbp + 0x78]
movsxd rax, dword [rcx + 0xc]
xor r8d, r8d
imul rcx, rax, 0x38
lea rax, [rbp - 0x78]
add rcx, qword [rsp + 0x60]
mov qword [rbp + 0x80], rcx
mov rcx, qword [rdi]
mov qword [rsp + 0x20], rax
call fcn.140039010
mov dword [rsp + 0x3c], eax
test eax, eax
jne 0x14004f23d
test r14b, r14b
je 0x14004f940
cmp byte [rbp + 0x8e], al
je 0x14004f9a7
xor ecx, ecx
mov byte [rsi + 3], 0
mov dword [rsi + 0x58], ecx
mov eax, dword [rbp - 0x78]
cmp ebx, 0x19
jl 0x14004f972
test eax, eax
js 0x14004f961
jne 0x14004f95c
cmp ebx, 0x1a
je 0x14004f961
mov dword [rbp - 0x78], ecx
jmp 0x14004f9b1
mov dword [rbp - 0x78], ecx
lea rdx, [rbp - 0x78]
mov rcx, qword [rdi]
call fcn.140039760
jmp 0x14004f999
test eax, eax
jg 0x14004f98a
jne 0x14004f97d
cmp ebx, 0x17
je 0x14004f98a
mov rcx, qword [rdi]
call fcn.140039600
mov dword [rbp - 0x78], eax
jmp 0x14004f9a7
mov dword [rbp - 0x78], ecx
lea rdx, [rbp - 0x78]
mov rcx, qword [rdi]
call fcn.140039900
mov dword [rsp + 0x3c], eax
mov esi, eax
test eax, eax
jne 0x14004f241
cmp dword [rbp - 0x78], 0
jne 0x140051d71
mov rsi, qword [rsp + 0x30]
mov r10d, 1
mov r14, qword [rsp + 0x60]
mov edx, 0x2460
mov r9, qword [rsp + 0x50]
lea rcx, [0x140000000]
mov rbx, qword [rsp + 0x40]
mov r11d, dword [rsp + 0x38]
test r15d, r15d
je 0x14004f9e5
add rsi, 0x18
xor r15d, r15d
mov r13, qword [rbp - 0x80]
add rsi, 0x18
mov qword [rsp + 0x30], rsi
jmp 0x14004d05a
mov rdi, qword [rsp + 0x30]
mov rax, qword [r13 + 0x98]
movsxd rcx, dword [rdi + 4]
mov rsi, qword [rax + rcx*8]
movsxd rax, dword [rdi + 0xc]
imul rbx, rax, 0x38
mov eax, dword [rdi + 0x10]
add rbx, r14
mov qword [rbp + 0x50], r15
mov rcx, qword [rsi + 0x28]
test eax, eax
jle 0x14004fa46
mov qword [rbp + 0xe8], rcx
lea rdi, [rbp + 0xe8]
mov word [rbp + 0xf8], ax
mov qword [rbp + 0xf0], rbx
jmp 0x14004fa94
lea r9, [rbp + 0x50]
mov r8d, 0xff
lea rdx, [rbp + 0x210]
call fcn.1400475f0
mov rdi, rax
test rax, rax
je 0x14004e98b
mov eax, 0x4000
test word [rbx + 8], ax
je 0x14004fa7b
mov rcx, rbx
call fcn.140041140
mov r8, qword [rbx + 0x10]
mov r9, rdi
mov edx, dword [rbx + 0xc]
mov rcx, qword [rsi + 0x28]
call fcn.140047680
mov r10d, 1
mov rax, qword [rsp + 0x30]
mov ebx, r15d
mov byte [rdi + 0x12], 0
cmp byte [rax], 0x1d
jne 0x14004facc
movzx edx, word [rdi + 0x10]
mov ecx, r15d
test edx, edx
je 0x14004facc
mov rax, qword [rdi + 8]
add rax, 8
test byte [rax], 1
jne 0x14004fac9
inc ecx
add rax, 0x38
cmp ecx, edx
jl 0x14004fab8
jmp 0x14004facc
mov ebx, r10d
mov rcx, qword [rsi + 0x18]
lea rax, [rbp - 8]
xor r9d, r9d
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov rdx, rdi
call fcn.140039010
mov rdx, qword [rbp + 0x50]
mov rcx, r12
mov dword [rsp + 0x3c], eax
call fcn.14001de90
cmp dword [rsp + 0x3c], 0
jne 0x14004f23d
mov eax, dword [rbp - 8]
mov ecx, r15d
mov dword [rsi + 0x30], eax
mov eax, dword [rbp - 8]
test eax, eax
mov byte [rsi + 3], 0
sete cl
mov dword [rsi + 0x58], r15d
test eax, eax
setne al
mov byte [rsi + 2], al
mov rsi, qword [rsp + 0x30]
cmp byte [rsi], 0x1f
jne 0x14004fb4f
test ecx, ecx
mov r9, qword [rsp + 0x50]
jne 0x140051d80
mov r11d, dword [rsp + 0x38]
mov r10d, 1
mov edx, 0x2460
jmp case.0x14004d08b.112
test ebx, ebx
jne 0x140051d7b
mov r9, qword [rsp + 0x50]
test ecx, ecx
je 0x140051d80
mov r11d, dword [rsp + 0x38]
lea r10d, [rbx + 1]
mov edx, 0x2460
jmp case.0x14004d08b.112
mov rax, qword [rsp + 0x30]
movsxd rax, dword [rax + 0xc]
imul rbx, rax, 0x38
add rbx, r14
test byte [rbx + 8], 4
jne case.0x14004d08b.33
movzx r8d, byte [rsp + 0x48]
mov dl, 0x43
mov rcx, rbx
call fcn.14004ccd0
test byte [rbx + 8], 4
je 0x140051d76
mov rbx, qword [rsp + 0x30]
xor r9d, r9d
mov rax, qword [r13 + 0x98]
xor edx, edx
movsxd rcx, dword [rbx + 4]
mov rdi, qword [rax + rcx*8]
movsxd rax, dword [rbx + 0xc]
imul rcx, rax, 0x38
mov r10, qword [rdi + 0x18]
lea rax, [rbp - 0x2c]
mov dword [rbp - 0x2c], r15d
mov qword [rsp + 0x20], rax
mov rbx, qword [rcx + r14]
mov rcx, r10
mov r8, rbx
call fcn.140039010
mov rsi, qword [rsp + 0x30]
mov qword [rdi + 0x40], rbx
mov word [rdi + 2], 0
mov dword [rdi + 0x58], r15d
mov dword [rsp + 0x3c], eax
mov eax, dword [rbp - 0x2c]
mov dword [rdi + 0x30], eax
cmp dword [rbp - 0x2c], 0
je 0x14004fc28
cmp dword [rsi + 8], 0
jne 0x140051d7b
mov ecx, 0x14224
call fcn.1400c4e20
mov r12d, eax
mov dword [rsp + 0x3c], eax
jmp 0x14004fc2d
mov r12d, dword [rsp + 0x3c]
test r12d, r12d
mov r12, qword [rsp + 0x58]
jne 0x14004f23d
jmp 0x14004d2b3
mov rbx, qword [rsp + 0x30]
movsxd rax, dword [rbx + 8]
imul rdx, rax, 0x38
mov eax, 0x2460
add rdx, qword [r13 + 0x70]
test word [rdx + 8], ax
je 0x14004fc79
mov rcx, rdx
call fcn.14004ced0
mov r9, qword [rsp + 0x50]
mov rdx, rax
mov r11d, dword [rsp + 0x38]
mov r10d, 1
jmp 0x14004fc7f
mov word [rdx + 8], 4
mov rax, qword [r13 + 0x98]
mov rsi, rbx
movsxd rcx, dword [rbx + 4]
mov rcx, qword [rax + rcx*8]
mov rax, qword [rcx + 0x38]
mov qword [rdx], rax
movsxd rcx, dword [rbx + 4]
mov rax, qword [r13 + 0x98]
mov rdx, qword [rax + rcx*8]
inc qword [rdx + 0x38]
mov edx, 0x2460
jmp case.0x14004d08b.112
mov rbx, qword [rsp + 0x30]
mov qword [rbp - 0x38], r15
mov dword [rbp - 0x48], r15d
movsxd rax, dword [rbx + 8]
imul rsi, rax, 0x38
add rsi, qword [r13 + 0x70]
test word [rsi + 8], dx
je 0x14004fce1
mov rcx, rsi
call fcn.14004ced0
mov rsi, rax
jmp 0x14004fce7
mov word [rsi + 8], 4
movsxd rcx, dword [rbx + 4]
mov rax, qword [r13 + 0x98]
mov rdi, qword [rax + rcx*8]
test byte [rdi + 8], 2
jne 0x14004fd4d
mov rcx, qword [rdi + 0x18]
lea rdx, [rbp - 0x48]
call fcn.140038f80
mov dword [rsp + 0x3c], eax
test eax, eax
jne 0x14004f23d
cmp dword [rbp - 0x48], eax
je 0x14004fd24
mov qword [rbp - 0x38], 1
jmp 0x14004fd4d
mov rcx, qword [rdi + 0x18]
call fcn.140038430
movabs rcx, 0x7fffffffffffffff
mov qword [rbp - 0x38], rax
cmp rax, rcx
jl 0x14004fd46
or dword [rdi + 8], 2
jmp 0x14004fd4d
inc rax
mov qword [rbp - 0x38], rax
movsxd rdx, dword [rbx + 0xc]
test edx, edx
je 0x14004fde0
mov rcx, qword [r13 + 0xf0]
test rcx, rcx
je 0x14004fd86
mov rax, qword [rcx + 8]
test rax, rax
je 0x14004fd7c
nop
mov rcx, rax
mov rax, qword [rax + 8]
test rax, rax
jne 0x14004fd70
imul rbx, rdx, 0x38
add rbx, qword [rcx + 0x20]
jmp 0x14004fd8d
imul rbx, rdx, 0x38
add rbx, r14
mov rcx, rbx
call fcn.140041650
movzx ecx, word [rbx + 8]
mov edx, 0x3e00
and cx, dx
mov qword [rbx], rax
or cx, 4
mov word [rbx + 8], cx
movabs rcx, 0x7fffffffffffffff
cmp rax, rcx
je 0x140051fef
test byte [rdi + 8], 2
jne 0x140051fef
lea rcx, [rax + 1]
mov rax, qword [rbp - 0x38]
cmp rax, rcx
jge 0x14004fddd
mov rax, rcx
mov qword [rbp - 0x38], rcx
mov qword [rbx], rax
test byte [rdi + 8], 2
je 0x14004fe57
mov ebx, r15d
nop dword [rax]
lea rdx, [rbp - 0x38]
mov ecx, 8
call fcn.1400205f0
mov r8, qword [rbp - 0x38]
movabs rax, 0x3fffffffffffffff
and r8, rax
xor r9d, r9d
inc r8
lea rax, [rbp - 0x48]
mov qword [rbp - 0x38], r8
xor edx, edx
mov rcx, qword [rdi + 0x18]
mov qword [rsp + 0x20], rax
call fcn.140039010
mov dword [rsp + 0x3c], eax
test eax, eax
jne 0x14005235e
cmp dword [rbp - 0x48], eax
jne 0x14004fe52
inc ebx
cmp ebx, 0x64
jl 0x14004fdf0
mov r12, qword [rsp + 0x58]
lea esi, [rax + 0xd]
jmp 0x14004f241
mov r12, qword [rsp + 0x58]
mov byte [rdi + 3], 0
mov dword [rdi + 0x58], r15d
mov rax, qword [rbp - 0x38]
mov qword [rsi], rax
jmp 0x14004d2ae
mov rcx, qword [rsp + 0x30]
mov esi, r15d
movsxd rax, dword [rcx + 8]
movsxd rcx, dword [rcx + 4]
imul r8, rax, 0x38
mov rax, qword [r13 + 0x98]
add r8, r14
mov rdi, qword [rax + rcx*8]
mov rax, qword [rsp + 0x30]
movsxd rdx, dword [rax + 0xc]
cmp bl, 0x73
jne 0x14004fea8
imul rax, rdx, 0x38
mov rdx, qword [rax + r14]
mov rax, qword [rsp + 0x30]
cmp byte [rax + 1], 0xec
mov qword [rbp + 0x60], rdx
jne 0x14004feeb
cmp qword [r12 + 0x118], 0
je 0x14004feeb
mov rax, qword [r12 + 0x20]
mov esi, 0x12
movsx rcx, byte [rdi + 1]
shl rcx, 5
mov rbx, qword [rcx + rax]
mov ecx, 0x17
mov rax, qword [rsp + 0x30]
test byte [rax + 3], 4
mov r14, qword [rax + 0x10]
cmovne esi, ecx
jmp 0x14004fef1
mov r14, r15
mov rbx, r15
test byte [rax + 3], 1
je 0x14004fefb
inc dword [r13 + 0x3c]
movzx ecx, byte [rax + 3]
test cl, 2
je 0x14004ff12
mov qword [r12 + 0x30], rdx
movzx ecx, byte [rax + 3]
mov qword [rsp + 0x40], rdx
test byte [r8 + 8], 1
je 0x14004ff23
mov qword [rbp + 0x68], r15
mov dword [rbp + 0x70], r15d
jmp 0x14004ff32
mov rax, qword [r8 + 0x10]
mov qword [rbp + 0x68], rax
mov eax, dword [r8 + 0xc]
mov dword [rbp + 0x70], eax
test cl, 0x10
je 0x14004ff3d
mov r9d, dword [rdi + 0x30]
jmp 0x14004ff40
mov r9d, r15d
mov eax, 0x4000
test word [r8 + 8], ax
je 0x14004ff54
mov eax, dword [r8]
mov dword [rbp + 0x74], eax
jmp 0x14004ff58
mov dword [rbp + 0x74], r15d
movzx r8d, cl
lea rdx, [rbp + 0x58]
shr r8d, 3
mov qword [rbp + 0x58], r15
and r8d, 1
mov rcx, qword [rdi + 0x18]
call fcn.14003d280
mov r12, qword [rsp + 0x58]
mov dword [rsp + 0x3c], eax
mov byte [rdi + 3], 0
mov dword [rdi + 0x58], r15d
test eax, eax
jne 0x14004f23d
mov r10, qword [r12 + 0x118]
test r10, r10
je 0x14004eb0e
test esi, esi
je 0x14004eb0e
mov rax, qword [rbp + 0x60]
mov r8, rbx
mov r9, qword [r14]
mov edx, esi
mov rcx, qword [r12 + 0x110]
mov qword [rsp + 0x20], rax
call r10
mov r14, qword [rsp + 0x60]
jmp 0x14004d2ae
mov rdi, qword [rsp + 0x30]
mov rax, qword [r13 + 0x98]
movsxd rcx, dword [rdi + 4]
mov r15d, dword [rdi + 8]
cmp byte [rdi + 1], 0xec
lea rdi, [r12 + 0x118]
mov rbx, qword [rax + rcx*8]
jne 0x14005002f
cmp qword [rdi], 0
je 0x14005002f
mov rax, qword [r12 + 0x20]
movsx rcx, byte [rbx + 1]
shl rcx, 5
mov r14, qword [rcx + rax]
mov rax, qword [rsp + 0x30]
test byte [rax + 3], 2
mov rsi, qword [rax + 0x10]
je 0x140050036
cmp byte [rbx + 4], 0
je 0x140050036
mov rcx, qword [rbx + 0x18]
call fcn.140038430
mov qword [rbx + 0x40], rax
jmp 0x140050036
xor eax, eax
mov r14d, eax
mov esi, eax
mov rax, qword [rsp + 0x30]
mov rcx, qword [rbx + 0x18]
movzx edx, byte [rax + 3]
call fcn.14003d510
mov dword [rsp + 0x3c], eax
mov dword [rbx + 0x58], 0
test eax, eax
jne 0x14005235e
test r15b, 1
je 0x14004d9de
inc dword [r13 + 0x3c]
mov r10, qword [rdi]
test r10, r10
je 0x14004d9de
test byte [rsi + 0x46], 0x20
mov r12, qword [rsp + 0x58]
jne 0x14004d8b2
mov rax, qword [rbx + 0x40]
mov r8, r14
mov r9, qword [rsi]
mov edx, 9
mov rcx, qword [r12 + 0x110]
mov qword [rsp + 0x20], rax
call r10
mov r14, qword [rsp + 0x60]
xor r15d, r15d
jmp 0x14004d2ae
mov eax, dword [r13 + 0x3c]
add dword [r12 + 0x6c], eax
mov dword [r12 + 0x68], eax
mov dword [r13 + 0x3c], r15d
jmp case.0x14004d08b.112
mov rbx, qword [rsp + 0x30]
lea r9, [rbp + 4]
mov rax, qword [r13 + 0x98]
movsxd rcx, dword [rbx + 4]
mov r8d, dword [rbx + 0x10]
mov rcx, qword [rax + rcx*8]
movsxd rax, dword [rbx + 0xc]
imul rdx, rax, 0x38
mov dword [rbp + 4], r15d
add rdx, r14
call fcn.140057170
mov dword [rsp + 0x3c], eax
mov esi, eax
test eax, eax
jne 0x14004f241
cmp dword [rbp + 4], eax
mov rsi, rbx
jmp 0x14004fb2f
mov rcx, qword [rsp + 0x30]
movsxd rax, dword [rcx + 8]
movsxd rcx, dword [rcx + 4]
imul rdx, rax, 0x38
mov rax, qword [r13 + 0x98]
add rdx, r14
mov rcx, qword [rax + rcx*8]
call fcn.1400570a0
mov dword [rsp + 0x3c], eax
mov esi, eax
test eax, eax
jne 0x14004f241
mov rax, qword [rsp + 0x30]
movsxd rcx, dword [rax + 0xc]
mov rax, qword [r13 + 0x98]
mov rcx, qword [rax + rcx*8]
mov dword [rcx + 0x58], r15d
jmp 0x14004d2ae
mov rcx, qword [rsp + 0x30]
movsxd rax, dword [rcx + 8]
movsxd rcx, dword [rcx + 4]
imul rbx, rax, 0x38
mov rax, qword [r13 + 0x98]
add rbx, r14
mov r14, qword [rax + rcx*8]
mov rsi, qword [r14 + 0x18]
mov rcx, rsi
call fcn.1400383e0
mov edi, dword [rsi + 0x30]
cmp edi, dword [r12 + 0x70]
ja 0x14005209c
mov edx, 0x20
cmp edi, edx
cmova edx, edi
cmp dword [rbx + 0x20], edx
jge 0x1400501bc
xor r8d, r8d
mov rcx, rbx
call fcn.140040cd0
test eax, eax
jne 0x14004e98b
jmp 0x1400501c9
mov rax, qword [rbx + 0x18]
and word [rbx + 8], 0xd
mov qword [rbx + 0x10], rax
mov r9, qword [rbx + 0x10]
mov eax, 0x3e00
and word [rbx + 8], ax
xor edx, edx
or word [rbx + 8], 0x10
mov r8d, edi
mov dword [rbx + 0xc], edi
mov rcx, rsi
cmp byte [r14 + 4], dl
jne 0x1400501f3
call fcn.140038a60
jmp 0x1400501f8
call fcn.140038a80
mov dword [rsp + 0x3c], eax
mov esi, eax
test eax, eax
jne 0x14004f241
mov r14, qword [rsp + 0x60]
mov byte [rbx + 0xa], 1
jmp 0x14004d2ae
mov rbx, qword [rsp + 0x30]
movsxd rax, dword [rbx + 8]
imul rdi, rax, 0x38
add rdi, qword [r13 + 0x70]
test word [rdi + 8], dx
je 0x14005024d
mov rcx, rdi
call fcn.14004ced0
mov r9, qword [rsp + 0x50]
mov rdi, rax
mov r11d, dword [rsp + 0x38]
mov r10d, 1
mov edx, 0x2460
jmp 0x140050253
mov word [rdi + 8], 4
movsxd rcx, dword [rbx + 4]
mov rax, qword [r13 + 0x98]
mov rbx, qword [rax + rcx*8]
cmp byte [rbx + 2], 0
je 0x140050277
mov rsi, qword [rsp + 0x30]
mov word [rdi + 8], r10w
jmp case.0x14004d08b.112
cmp byte [rbx + 3], 0
je 0x14005028d
mov rax, qword [rbx + 0x40]
mov qword [rbp + 0x30], rax
mov qword [rdi], rax
jmp 0x14004d2ae
cmp byte [rbx], 2
jne 0x1400502ca
mov rcx, qword [rbx + 0x18]
lea rdx, [rbp + 0x30]
mov rbx, qword [rcx]
mov rax, qword [rbx]
call qword [rax + 0x60]
mov rdx, rbx
mov rcx, r13
mov dword [rsp + 0x3c], eax
call fcn.140048cd0
mov esi, dword [rsp + 0x3c]
test esi, esi
jne 0x14004f241
mov rax, qword [rbp + 0x30]
mov qword [rdi], rax
jmp 0x14004d2ae
mov rcx, rbx
call fcn.140047190
mov dword [rsp + 0x3c], eax
mov esi, eax
test eax, eax
jne 0x14004f241
cmp byte [rbx + 2], al
je 0x140050309
mov rsi, qword [rsp + 0x30]
mov r10d, 1
mov r9, qword [rsp + 0x50]
mov edx, 0x2460
mov r11d, dword [rsp + 0x38]
mov word [rdi + 8], r10w
jmp case.0x14004d08b.112
mov rcx, qword [rbx + 0x18]
call fcn.140038430
mov qword [rbp + 0x30], rax
mov qword [rdi], rax
jmp 0x14004d2ae
mov rax, qword [rsp + 0x30]
movsxd rcx, dword [rax + 4]
mov rax, qword [r13 + 0x98]
mov rcx, qword [rax + rcx*8]
cmp byte [rcx], 0
mov byte [rcx + 2], 1
mov dword [rcx + 0x58], r15d
jne 0x14004d540
mov rcx, qword [rcx + 0x18]
call fcn.140033e10
jmp 0x14004d2ae
mov rax, qword [rsp + 0x30]
lea rdx, [rbp - 0x28]
movsxd rcx, dword [rax + 4]
mov rax, qword [r13 + 0x98]
mov rbx, qword [rax + rcx*8]
mov rcx, qword [rbx + 0x18]
mov dword [rbp - 0x28], r15d
call fcn.140038f80
mov dword [rsp + 0x3c], eax
movzx eax, byte [rbp - 0x28]
mov esi, dword [rsp + 0x3c]
mov byte [rbx + 2], al
mov rax, qword [rsp + 0x30]
mov byte [rbx + 3], 0
mov dword [rbx + 0x58], r15d
mov eax, dword [rax + 0xc]
mov dword [rbx + 0x30], eax
test esi, esi
jne 0x14004f241
mov rsi, qword [rsp + 0x30]
cmp dword [rsi + 8], 0
jle 0x14004d2b3
cmp dword [rbp - 0x28], 0
jmp 0x14004fb2f
inc dword [r13 + 0xd4]
mov rax, qword [rsp + 0x30]
movsxd rcx, dword [rax + 4]
mov rax, qword [r13 + 0x98]
mov rbx, qword [rax + rcx*8]
mov dword [rbp - 0x60], r10d
cmp byte [rbx], 1
jne 0x1400503f0
lea rdx, [rbp - 0x60]
mov rcx, rbx
call fcn.140056e60
mov esi, eax
mov dword [rsp + 0x3c], eax
jmp 0x14005042e
mov rdi, qword [rbx + 0x18]
mov rcx, rdi
call fcn.140038bb0
mov dword [rsp + 0x3c], eax
mov esi, eax
test eax, eax
jne 0x140050426
cmp byte [rdi + 0x56], al
jne 0x140050414
mov dword [rbp - 0x60], 1
jmp 0x140050426
mov rcx, rdi
mov dword [rbp - 0x60], r15d
call fcn.140038d80
mov esi, eax
mov dword [rsp + 0x3c], eax
mov byte [rbx + 3], 0
mov dword [rbx + 0x58], r15d
test esi, esi
jne 0x14004f241
movzx eax, byte [rbp - 0x60]
mov rsi, qword [rsp + 0x30]
mov byte [rbx + 2], al
cmp dword [rbp - 0x60], 0
jmp 0x14004fb2f
mov rax, qword [rsp + 0x30]
lea r8, [rbp - 0x44]
movsxd rcx, dword [rax + 4]
mov rax, qword [r13 + 0x98]
mov rbx, qword [rax + rcx*8]
mov rcx, r12
mov rdx, rbx
mov dword [rbp - 0x44], r15d
call fcn.140056f30
jmp 0x1400504be
mov rax, qword [rsp + 0x30]
movsxd rcx, dword [rax + 4]
mov rax, qword [r13 + 0x98]
cmp qword [rax + rcx*8], 0
je 0x14004d540
mov rax, qword [rsp + 0x30]
lea rdx, [rbp - 0x44]
movsxd rcx, dword [rax + 4]
mov rax, qword [r13 + 0x98]
mov rbx, qword [rax + rcx*8]
mov rax, qword [rsp + 0x30]
mov eax, dword [rax + 0xc]
mov dword [rbp - 0x44], eax
mov rax, qword [rsp + 0x30]
mov rcx, qword [rbx + 0x18]
call qword [rax + 0x10]
mov dword [rsp + 0x3c], eax
mov esi, eax
mov dword [rbx + 0x58], r15d
test eax, eax
jne 0x14004f241
mov r9, qword [rsp + 0x50]
cmp dword [rbp - 0x44], eax
jne 0x1400504f3
mov byte [rbx + 2], al
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 3]
inc dword [r13 + rax*4 + 0xcc]
jmp case.0x14004d08b.13
mov byte [rbx + 2], 1
jmp 0x140050c33
mov rax, qword [rsp + 0x30]
movsxd rcx, dword [rax + 4]
mov rax, qword [r13 + 0x98]
mov rdi, qword [rax + rcx*8]
mov rcx, qword [rsp + 0x30]
movsxd rax, dword [rcx + 8]
imul rbx, rax, 0x38
add rbx, r14
test byte [rcx + 3], 1
je 0x14005052a
inc dword [r13 + 0x3c]
mov eax, 0x4000
test word [rbx + 8], ax
je 0x14005054c
mov rcx, rbx
call fcn.140041140
mov esi, eax
test eax, eax
jne 0x14004f241
mov rcx, qword [rsp + 0x30]
cmp byte [rcx], 0x7d
jne 0x14005055e
mov rdx, rbx
mov rcx, rdi
call fcn.140055ad0
jmp 0x14005059b
test byte [rcx + 3], 0x10
movsxd rax, dword [rbx + 0xc]
mov qword [rbp + 0x1e8], rax
mov rax, qword [rbx + 0x10]
mov qword [rbp + 0x1e0], rax
je 0x140050580
mov r9d, dword [rdi + 0x30]
jmp 0x140050583
mov r9d, r15d
mov r8d, dword [rcx + 0xc]
lea rdx, [rbp + 0x1e0]
mov rcx, qword [rdi + 0x18]
call fcn.14003d280
mov dword [rdi + 0x58], r15d
mov dword [rsp + 0x3c], eax
mov esi, eax
test eax, eax
jne 0x14004f241
jmp 0x14004d2ae
mov rax, qword [rsp + 0x30]
lea rdx, [rbp + 0xb8]
xor r9d, r9d
xor r8d, r8d
movsxd rcx, dword [rax + 4]
mov rax, qword [r13 + 0x98]
mov rbx, qword [rax + rcx*8]
mov rcx, qword [rsp + 0x30]
mov rax, qword [rbx + 0x28]
mov rdi, qword [rbx + 0x18]
mov qword [rbp + 0xb8], rax
movzx eax, word [rcx + 0xc]
mov word [rbp + 0xc8], ax
movsxd rax, dword [rcx + 8]
imul rcx, rax, 0x38
lea rax, [rbp + 0x20]
mov byte [rbp + 0xca], 0
add rcx, r14
mov qword [rsp + 0x20], rax
mov qword [rbp + 0xc0], rcx
mov rcx, rdi
call fcn.140039010
mov dword [rsp + 0x3c], eax
mov esi, eax
test eax, eax
jne 0x14004f241
cmp dword [rbp + 0x20], eax
jne 0x140050643
mov dl, 4
mov rcx, rdi
call fcn.14003d510
mov dword [rsp + 0x3c], eax
mov esi, eax
test eax, eax
jne 0x14004f241
mov dword [rbx + 0x58], r15d
jmp 0x14004d2ae
mov rax, qword [rsp + 0x30]
movsxd rcx, dword [rax + 4]
mov rax, qword [r13 + 0x98]
mov rbx, qword [rax + rcx*8]
mov rax, qword [rbx + 0x18]
cmp byte [rax + 0x56], 1
je 0x140050682
mov rcx, rbx
call fcn.140047130
mov dword [rsp + 0x3c], eax
mov esi, eax
test eax, eax
jne 0x14004f241
jmp 0x140050687
mov dword [rsp + 0x3c], r15d
cmp byte [rbx + 2], 0
jne 0x14005070b
mov qword [rbp + 0x38], r15
lea r8, [rbp + 0x38]
mov rdx, qword [rbx + 0x18]
mov rcx, r12
call fcn.140048910
mov dword [rsp + 0x3c], eax
mov esi, eax
test eax, eax
jne 0x14004f241
mov rax, qword [rsp + 0x30]
cmp byte [rax], 0x80
jne 0x1400506ee
movsxd rcx, dword [rax + 0xc]
mov rax, qword [r13 + 0x98]
mov rdx, qword [rax + rcx*8]
mov byte [rdx + 2], sil
mov rax, qword [rbp + 0x38]
mov qword [rdx + 0x40], rax
mov rax, qword [rsp + 0x30]
mov byte [rdx + 3], 1
mov rax, qword [rax + 0x10]
mov qword [rdx + 0x50], rax
mov qword [rdx + 0x48], rbx
jmp 0x14004d2ae
mov rdx, rax
mov rcx, r13
call fcn.14004cf00
mov rcx, qword [rbp + 0x38]
mov qword [rax], rcx
mov word [rax + 8], 4
jmp 0x14004d2ae
mov rax, qword [rsp + 0x30]
movsxd rax, dword [rax + 8]
imul rcx, rax, 0x38
add rcx, r14
call fcn.140041aa0
jmp 0x14004d2ae
mov rax, qword [rsp + 0x30]
lea r9, [rbp - 0x40]
cmp bl, 0x3c
lea r8, [rbp + 0xd0]
movsxd rcx, dword [rax + 4]
mov rax, qword [r13 + 0x98]
mov rdx, qword [rax + rcx*8]
mov rcx, qword [rsp + 0x30]
mov rax, qword [rdx + 0x28]
mov qword [rbp + 0xd0], rax
movzx eax, word [rcx + 0x10]
mov word [rbp + 0xe0], ax
sbb al, al
mov byte [rbp + 0xe2], al
movsxd rax, dword [rcx + 0xc]
imul rcx, rax, 0x38
mov dword [rbp - 0x40], r15d
add rcx, r14
mov qword [rbp + 0xd8], rcx
mov rcx, r12
call fcn.140048b60
mov dword [rsp + 0x3c], eax
mov rax, qword [rsp + 0x30]
test byte [rax], 1
mov eax, dword [rbp - 0x40]
jne 0x14005079d
neg eax
jmp 0x14005079f
inc eax
mov esi, dword [rsp + 0x3c]
mov dword [rbp - 0x40], eax
test esi, esi
jne 0x14004f241
mov rsi, qword [rsp + 0x30]
mov r9, qword [rsp + 0x50]
test eax, eax
jg 0x140051d80
jmp 0x14004fb3a
mov rcx, qword [rsp + 0x30]
movsxd rax, dword [rcx + 8]
imul rbx, rax, 0x38
add rbx, qword [r13 + 0x70]
test word [rbx + 8], dx
je 0x1400507f2
mov rcx, rbx
call fcn.14004ced0
mov rcx, qword [rsp + 0x30]
mov rbx, rax
mov r10d, 1
mov word [rbx + 8], r10w
mov eax, dword [r12 + 0xbc]
inc eax
cmp dword [r12 + 0xb0], eax
jg 0x140051ff9
movsxd rdi, dword [rcx + 0xc]
lea r8, [rbp - 0x24]
mov rcx, qword [r12 + 0x20]
mov rax, rdi
mov rdx, qword [rsp + 0x30]
shl rax, 5
mov dword [rbp - 0x24], r15d
mov edx, dword [rdx + 4]
mov rcx, qword [rax + rcx + 8]
call fcn.14003e570
mov dword [rsp + 0x3c], eax
mov esi, dword [rsp + 0x3c]
mov word [rbx + 8], 4
movsxd rax, dword [rbp - 0x24]
mov qword [rbx], rax
test esi, esi
jne 0x14004f241
mov r8d, dword [rbp - 0x24]
test r8d, r8d
je 0x14004d2ae
mov rax, qword [rsp + 0x30]
mov edx, edi
mov rcx, r12
mov r9d, dword [rax + 4]
call fcn.14006f670
lea eax, [rdi + 1]
mov byte [rsp + 0x78], al
jmp 0x14004d2ae
mov rax, qword [rsp + 0x30]
lea r8, [rbp]
mov rcx, qword [r12 + 0x20]
mov rdx, qword [rsp + 0x30]
mov dword [rbp], r15d
cmp dword [rax + 0xc], 0
movsxd rax, dword [rax + 8]
mov edx, dword [rdx + 4]
cmove r8, r15
shl rax, 5
mov rcx, qword [rax + rcx + 8]
call fcn.14003e120
mov rsi, qword [rsp + 0x30]
mov dword [rsp + 0x3c], eax
cmp dword [rsi + 0xc], 0
je 0x1400508dd
movsxd rdx, dword [rbp]
add dword [r13 + 0x3c], edx
movsxd rax, dword [rsi + 0xc]
test eax, eax
jle 0x1400508dd
imul rcx, rax, 0x38
add qword [rcx + r14], rdx
cmp dword [rsp + 0x3c], 0
jne 0x14004f23d
jmp 0x14004d2b3
mov rax, qword [rsp + 0x30]
movsxd rcx, dword [rax + 4]
mov rax, qword [r13 + 0x98]
mov rcx, qword [rax + rcx*8]
cmp byte [rcx], 1
jne 0x140050917
mov rdx, qword [rcx + 0x18]
mov rcx, r12
call fcn.140054b20
jmp 0x14004d2ae
mov rcx, qword [rcx + 0x18]
call fcn.14003e200
mov dword [rsp + 0x3c], eax
mov esi, eax
test eax, eax
jne 0x14004f241
jmp 0x14004d2ae
mov rax, qword [rsp + 0x30]
movsxd rax, dword [rax + 8]
imul rbx, rax, 0x38
add rbx, qword [r13 + 0x70]
test word [rbx + 8], dx
je 0x140050957
mov rcx, rbx
call fcn.14004ced0
mov rbx, rax
jmp 0x14005095d
mov word [rbx + 8], 4
mov rax, qword [rsp + 0x30]
lea rdx, [rbp + 8]
mov r8d, r15d
mov dword [rbp + 8], r15d
movsxd rcx, dword [rax + 4]
shl rcx, 5
add rcx, qword [r12 + 0x20]
cmp byte [rax], 0x87
setne r8b
mov rcx, qword [rcx + 8]
inc r8d
call fcn.14003dde0
mov dword [rsp + 0x3c], eax
mov esi, eax
test eax, eax
jne 0x14004f241
movsxd rax, dword [rbp + 8]
mov qword [rbx], rax
jmp 0x14004d2ae
mov rbx, qword [rsp + 0x30]
lea rax, [r13 + 0x90]
mov r8, qword [r12 + 0x20]
lea r9, [0x14018d5f8]
mov qword [rbp + 0xa8], rax
lea rdx, [0x14018d620]
lea rax, [0x14018d610]
mov qword [rbp + 0xa0], r12
movsxd rcx, dword [rbx + 4]
cmp ecx, 1
mov dword [rbp + 0xb0], ecx
cmovne r9, rax
mov rax, qword [rbx + 0x10]
shl rcx, 5
mov qword [rsp + 0x20], rax
mov r8, qword [rcx + r8]
mov rcx, r12
call fcn.1400200b0
mov rbx, rax
mov rcx, r12
test rax, rax
je 0x14005200b
lea r9, [rbp + 0xa0]
mov byte [r12 + 0xa9], 1
lea r8, [fcn.14008ea20]
mov dword [rbp + 0xb4], r15d
mov rdx, rax
mov qword [rsp + 0x20], r15
call fcn.140086fa0
test eax, eax
mov rdx, rbx
mov rcx, r12
cmove eax, dword [rbp + 0xb4]
mov dword [rsp + 0x3c], eax
call fcn.14001de90
mov esi, dword [rsp + 0x3c]
mov byte [r12 + 0xa9], 0
test esi, esi
je 0x14004d2ae
mov rcx, r12
call fcn.14006b840
cmp esi, 7
je 0x14004e98b
jmp 0x14004f241
mov rax, qword [rsp + 0x30]
mov rcx, r12
mov edx, dword [rax + 4]
call fcn.140068d20
mov dword [rsp + 0x3c], eax
mov esi, eax
test eax, eax
jne 0x14004f241
jmp 0x14004d2ae
mov rax, qword [rsp + 0x30]
mov rcx, r12
mov r8, qword [rax + 0x10]
mov edx, dword [rax + 4]
call fcn.14006c010
jmp 0x14004d2ae
mov rax, qword [rsp + 0x30]
mov rcx, r12
mov r8, qword [rax + 0x10]
mov edx, dword [rax + 4]
call fcn.14006b4e0
jmp 0x14004d2ae
mov rax, qword [rsp + 0x30]
mov rcx, r12
mov r8, qword [rax + 0x10]
mov edx, dword [rax + 4]
call fcn.1400a1f60
jmp 0x14004d2ae
mov rcx, qword [rsp + 0x30]
lea rdx, [rbp - 4]
mov qword [rsp + 0x20], rdx
mov rdx, qword [rsp + 0x30]
movsxd rax, dword [rcx + 0xc]
imul rbx, rax, 0x38
movsxd rax, dword [rcx + 4]
mov r8d, dword [rdx + 8]
mov rdx, qword [rdx + 0x10]
imul rdi, rax, 0x38
movzx eax, byte [rcx + 3]
mov rcx, qword [r12 + 0x20]
add rdi, r14
mov r9d, dword [rbx + r14]
shl rax, 5
mov rcx, qword [rax + rcx + 8]
call fcn.14003f5a0
movsxd rcx, dword [rbp - 4]
mov rsi, rax
sub qword [rbx + r14], rcx
mov eax, 0x2460
test word [rdi + 8], ax
je 0x140050b59
mov rcx, rdi
call fcn.140041480
jmp 0x140050b5f
mov word [rdi + 8], 1
cmp dword [rbp - 4], 0
je 0x140050b8e
test rsi, rsi
je 0x14004e98b
lea rax, [fcn.14001ddd0]
mov r9b, 1
mov r8d, 0xffffffff
mov qword [rsp + 0x20], rax
mov rdx, rsi
mov rcx, rdi
call fcn.140041d60
movzx edx, byte [rsp + 0x48]
mov rcx, rdi
call fcn.140040cb0
jmp 0x14004d2ae
mov rcx, qword [rsp + 0x30]
movsxd rax, dword [rcx + 4]
imul rbx, rax, 0x38
movsxd rax, dword [rcx + 8]
add rbx, r14
imul rdi, rax, 0x38
test byte [rbx + 8], 0x20
jne 0x140050bd0
mov rcx, rbx
call fcn.140041b20
test byte [rbx + 8], 0x20
je 0x14004e98b
mov rdx, qword [rdi + r14]
mov rcx, qword [rbx]
call fcn.14002a710
jmp 0x14004d2ae
mov rax, qword [rsp + 0x30]
movsxd rax, dword [rax + 4]
imul rbx, rax, 0x38
add rbx, r14
test byte [rbx + 8], 0x20
je 0x140050c92
mov rcx, qword [rbx]
lea rdx, [rbp + 0x90]
call fcn.14002abb0
test eax, eax
je 0x140050c92
mov rax, qword [rsp + 0x30]
mov rdx, qword [rbp + 0x90]
movsxd rax, dword [rax + 0xc]
imul rcx, rax, 0x38
add rcx, r14
call fcn.140041b00
mov r9, qword [rsp + 0x50]
mov eax, dword [r12 + 0x150]
test eax, eax
jne 0x14005231b
mov r8, qword [r12 + 0x1a0]
mov r11d, dword [rsp + 0x38]
test r8, r8
je 0x140051d97
cmp r11d, dword [rbp - 0x3c]
jb 0x140051d97
mov ecx, dword [r12 + 0x1b0]
xor edx, edx
mov eax, r11d
div ecx
sub ecx, edx
add ecx, r11d
mov dword [rbp - 0x3c], ecx
mov rcx, qword [r12 + 0x1a8]
call r8
test eax, eax
jne 0x1400520f4
jmp 0x14004d2ae
mov rcx, rbx
call fcn.140041aa0
jmp 0x140051a59
mov rcx, qword [rsp + 0x30]
movsxd rax, dword [rcx + 4]
mov esi, dword [rcx + 0x10]
imul rbx, rax, 0x38
movsxd rax, dword [rcx + 0xc]
add rbx, r14
imul rdi, rax, 0x38
test byte [rbx + 8], 0x20
jne 0x140050cd2
mov rcx, rbx
call fcn.140041b20
test byte [rbx + 8], 0x20
je 0x14004e98b
test esi, esi
je 0x140050cf4
mov r8, qword [rdi + r14]
mov edx, esi
mov rcx, qword [rbx]
call fcn.14002ac30
test eax, eax
jne 0x140051d76
test esi, esi
js 0x14004d2ae
mov rdx, qword [rdi + r14]
mov rcx, qword [rbx]
call fcn.14002a710
jmp 0x14004d2ae
mov rcx, qword [rsp + 0x30]
movsxd rax, dword [rcx + 0xc]
mov r14, qword [rcx + 0x10]
imul rsi, rax, 0x38
add rsi, qword [rsp + 0x60]
cmp byte [rcx + 3], 0
je 0x140050d44
mov rax, qword [r13 + 0xf0]
mov rcx, qword [r14 + 0x18]
test rax, rax
je 0x140050d44
cmp qword [rax + 0x30], rcx
je 0x140051dac
mov rax, qword [rax + 8]
test rax, rax
jne 0x140050d31
mov eax, dword [r12 + 0x98]
cmp dword [r13 + 0x100], eax
jge 0x140052015
test byte [rsi + 8], 0x40
jne 0x140050e50
mov edx, dword [r14 + 0x10]
mov ecx, dword [r14 + 0xc]
add ecx, edx
test edx, edx
lea edi, [rcx + 1]
cmovne edi, ecx
mov rcx, r12
imul eax, edi, 7
add eax, edx
lea eax, [rax*8 + 0x68]
movsxd rdx, eax
call fcn.14001e200
mov rbx, rax
test rax, rax
je 0x14004e98b
mov rcx, rsi
call fcn.140041630
mov word [rsi + 8], 0x40
movabs rax, 0x2aaaaaaaaaaaaaab
mov qword [rsi], rbx
mov qword [rbx], r13
mov dword [rbx + 0x58], edi
mov ecx, dword [r14 + 0x10]
mov dword [rbx + 0x5c], ecx
mov rcx, qword [rsp + 0x30]
sub rcx, qword [rsp + 0x50]
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
mov dword [rbx + 0x4c], edx
mov rax, qword [r13 + 0x70]
mov qword [rbx + 0x20], rax
mov eax, dword [r13 + 0x28]
mov dword [rbx + 0x54], eax
mov rax, qword [r13 + 0x98]
mov qword [rbx + 0x28], rax
mov eax, dword [r13 + 0x2c]
mov dword [rbx + 0x48], eax
mov rax, qword [r13 + 0x68]
mov qword [rbx + 0x10], rax
mov eax, dword [r13 + 0xb8]
mov dword [rbx + 0x50], eax
mov rax, qword [r14 + 0x18]
mov qword [rbx + 0x30], rax
movsxd rax, edi
imul rdx, rax, 0x38
lea rax, [rbx + 0x68]
add rdx, 0x68
add rdx, rbx
cmp rax, rdx
je 0x140050e43
mov word [rax + 8], 0x80
mov qword [rax + 0x28], r12
add rax, 0x38
cmp rax, rdx
jne 0x140050e30
mov r11d, dword [rsp + 0x38]
mov r10d, 1
jmp 0x140050e53
mov rbx, qword [rsi]
inc dword [r13 + 0x100]
lea rdx, [rbx + 0x68]
mov rax, qword [r13 + 0xf0]
mov rcx, qword [rsp + 0x40]
mov qword [rbx + 0x38], rcx
mov qword [rbx + 8], rax
mov eax, dword [r13 + 0x3c]
mov dword [rbx + 0x60], eax
mov rax, qword [r13]
mov qword [rsp + 0x60], rdx
mov ecx, dword [rax + 0x68]
mov dword [rbx + 0x64], ecx
mov rax, qword [r13 + 0x110]
mov qword [rbx + 0x40], rax
mov qword [r13 + 0x70], rdx
mov qword [r13 + 0x110], r15
mov dword [r13 + 0x3c], r15d
mov qword [r13 + 0xf0], rbx
movsxd rcx, dword [rbx + 0x58]
mov dword [r13 + 0x28], ecx
movzx eax, word [rbx + 0x5c]
mov dword [r13 + 0x2c], eax
imul rcx, rcx, 0x38
add rcx, rdx
mov qword [r13 + 0x98], rcx
mov r9, qword [r14]
mov qword [r13 + 0x68], r9
mov eax, dword [r14 + 8]
mov r14, rdx
mov edx, 0x2460
mov qword [rsp + 0x50], r9
lea rsi, [r9 - 0x18]
mov dword [r13 + 0xb8], eax
jmp case.0x14004d08b.112
mov rax, qword [rsp + 0x30]
movsxd rax, dword [rax + 8]
imul r9, rax, 0x38
add r9, qword [r13 + 0x70]
test word [r9 + 8], dx
je 0x140050f14
mov rcx, r9
call fcn.14004ced0
mov r9, rax
jmp 0x140050f1b
mov word [r9 + 8], 4
mov r8, qword [r13 + 0xf0]
movsxd rax, dword [r8 + 0x4c]
lea rcx, [rax + rax*2]
mov rax, qword [r8 + 0x10]
mov edx, dword [rax + rcx*8 + 4]
mov rcx, r9
mov rax, qword [rsp + 0x30]
add edx, dword [rax + 4]
movsxd rax, edx
imul rdx, rax, 0x38
add rdx, qword [r8 + 0x20]
mov r8d, 0x1000
call fcn.140041c80
jmp 0x14004d2ae
test dword [r12 + 0x2c], 0x2000000
mov rax, qword [rsp + 0x30]
je 0x140050f7e
movsxd rax, dword [rax + 8]
add qword [r12 + 0x290], rax
mov rsi, qword [rsp + 0x30]
jmp case.0x14004d08b.112
cmp dword [rax + 4], 0
lea rcx, [0x140000000]
movsxd rax, dword [rax + 8]
mov rsi, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x40]
je 0x140050fb3
add qword [r12 + 0x288], rax
mov r13, qword [rbp - 0x80]
add rsi, 0x18
mov qword [rsp + 0x30], rsi
jmp 0x14004d05a
add qword [r13 + 0x50], rax
mov r13, qword [rbp - 0x80]
add rsi, 0x18
mov qword [rsp + 0x30], rsi
jmp 0x14004d05a
cmp dword [rsi + 4], 0
je 0x140050ff2
cmp qword [r12 + 0x288], 0
jne case.0x14004d08b.112
cmp qword [r12 + 0x290], 0
je 0x140051d80
jmp case.0x14004d08b.112
cmp qword [r13 + 0x50], 0
jmp 0x140050fd8
mov rcx, qword [r13 + 0xf0]
test rcx, rcx
je 0x14005102f
mov rax, qword [rcx + 8]
test rax, rax
je 0x14005101c
nop
mov rcx, rax
mov rax, qword [rax + 8]
test rax, rax
jne 0x140051010
mov rax, qword [rsp + 0x30]
movsxd rax, dword [rax + 4]
imul rdi, rax, 0x38
add rdi, qword [rcx + 0x20]
jmp 0x14005103f
mov rax, qword [rsp + 0x30]
movsxd rax, dword [rax + 4]
imul rdi, rax, 0x38
add rdi, r14
mov rcx, rdi
call fcn.140041650
mov qword [rdi], rax
mov esi, 0x3e00
movzx eax, word [rdi + 8]
and ax, si
or ax, 4
mov word [rdi + 8], ax
mov rax, qword [rsp + 0x30]
movsxd rax, dword [rax + 8]
imul rbx, rax, 0x38
add rbx, r14
mov rcx, rbx
call fcn.140041650
movzx ecx, word [rbx + 8]
mov r10d, 1
mov r9, qword [rsp + 0x50]
and cx, si
mov rsi, qword [rsp + 0x30]
or cx, 4
mov r11d, dword [rsp + 0x38]
mov edx, 0x2460
mov word [rbx + 8], cx
lea rcx, [0x140000000]
mov qword [rbx], rax
mov rbx, qword [rsp + 0x40]
cmp qword [rdi], rax
jge 0x14004d507
mov qword [rdi], rax
mov r13, qword [rbp - 0x80]
add rsi, 0x18
mov qword [rsp + 0x30], rsi
jmp 0x14004d05a
mov rax, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x30]
movsxd rax, dword [rax + 4]
imul rcx, rax, 0x38
mov rdx, qword [rcx + r14]
test rdx, rdx
jle 0x14004d0f1
mov rax, rsi
movsxd rax, dword [rax + 0xc]
sub rdx, rax
mov qword [rcx + r14], rdx
jmp 0x140051d80
mov rcx, qword [rsp + 0x30]
mov rdx, rcx
movsxd rax, dword [rcx + 4]
imul rbx, rax, 0x38
movsxd rax, dword [rcx + 0xc]
mov rcx, r13
imul rdi, rax, 0x38
call fcn.14004cf00
mov rdx, qword [rbx + r14]
test rdx, rdx
jg 0x140051136
mov rcx, 0xffffffffffffffff
mov qword [rax], rcx
jmp 0x14004d2ae
mov rcx, qword [rdi + r14]
test rcx, rcx
cmovle rcx, r15
add rcx, rdx
mov qword [rax], rcx
jmp 0x14004d2ae
mov rax, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x30]
movsxd rax, dword [rax + 4]
imul rcx, rax, 0x38
mov rdx, qword [rcx + r14]
test rdx, rdx
je 0x14004d0f1
mov rax, rsi
movsxd rax, dword [rax + 0xc]
sub rdx, rax
mov qword [rcx + r14], rdx
jmp 0x140051d80
mov rax, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x30]
movsxd rax, dword [rax + 4]
imul rcx, rax, 0x38
sub qword [rcx + r14], 1
je 0x140051d80
jmp case.0x14004d08b.112
mov rdi, qword [rsp + 0x30]
mov rcx, r12
movzx ebx, byte [rdi + 3]
lea rdx, [rbx*8 + 0x30]
call fcn.14001e2a0
mov r8, rax
test rax, rax
je 0x14004e98b
mov qword [rax + 0x10], r15
mov rcx, qword [rdi + 0x10]
mov qword [rax + 8], rcx
mov rcx, rdi
sub rcx, qword [rsp + 0x50]
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
mov qword [r8 + 0x18], r13
sar rdx, 2
mov rax, rdx
mov byte [r8 + 0x2a], bl
shr rax, 0x3f
add rdx, rax
mov rax, rdi
mov dword [r8 + 0x20], edx
mov word [rdi], 0xeb94
mov qword [rdi + 0x10], r8
jmp 0x140051213
mov rax, qword [rsp + 0x30]
mov rbx, qword [rax + 0x10]
movsxd rax, dword [rax + 0xc]
imul r10, rax, 0x38
add r10, r14
mov qword [rbp + 0x40], r10
cmp qword [rbx + 0x10], r10
je 0x140051275
movzx eax, byte [rbx + 0x2a]
mov edx, eax
mov qword [rbx + 0x10], r10
sub rdx, 1
lea r9d, [rax - 1]
js 0x140051275
mov r10, qword [rsp + 0x30]
lea r8, [rdx + 6]
lea r8, [rbx + r8*8]
nop dword [rax]
mov eax, dword [r10 + 8]
lea r8, [r8 - 8]
add eax, r9d
dec r9d
cdqe
imul rcx, rax, 0x38
add rcx, r14
sub rdx, 1
mov qword [r8 + 8], rcx
jns 0x140051250
mov r10, qword [rbp + 0x40]
inc dword [r10 + 0xc]
lea rax, [rbp + 0x100]
mov qword [rbp + 0x128], r12
lea r8, [rbx + 0x30]
mov dword [rbp + 0x120], r15d
mov edi, 1
mov word [rbp + 0x108], di
mov rcx, rbx
movzx edx, byte [rbx + 0x2a]
mov qword [rbx], rax
mov rax, qword [rbx + 8]
mov word [rbx + 0x28], 0
call qword [rax + 0x18]
cmp byte [rbx + 0x29], 0
je 0x140051319
cmp dword [rbx + 0x24], 0
je 0x1400512ea
movzx edx, dil
lea rcx, [rbp + 0x100]
call fcn.140042240
mov r8, rax
lea rdx, [0x14018cbb4]
mov rcx, r13
call fcn.1400429f0
mov eax, dword [rbx + 0x24]
mov dword [rsp + 0x3c], eax
mov eax, 0x2460
test word [rbp + 0x108], ax
jne 0x140051301
cmp dword [rbp + 0x120], 0
je 0x14005130d
lea rcx, [rbp + 0x100]
call fcn.140041500
mov esi, dword [rsp + 0x3c]
test esi, esi
jne 0x14004f246
cmp byte [rbx + 0x28], 0
je 0x14005133b
mov rax, qword [rsp + 0x30]
movsxd rax, dword [rax - 0x14]
test eax, eax
je 0x14005133b
imul rcx, rax, 0x38
mov rdx, rdi
add rcx, r14
call fcn.140041b00
mov rsi, qword [rsp + 0x30]
mov r10, rdi
mov r9, qword [rsp + 0x50]
mov edx, 0x2460
mov r11d, dword [rsp + 0x38]
jmp case.0x14004d08b.112
mov rcx, qword [rsp + 0x30]
movsxd rax, dword [rcx + 4]
mov rdx, qword [rcx + 0x10]
imul rbx, rax, 0x38
add rbx, r14
mov rcx, rbx
call fcn.140041300
mov dword [rsp + 0x3c], eax
mov rcx, rbx
test eax, eax
jne 0x14005202e
movzx edx, byte [rsp + 0x48]
call fcn.140040cb0
mov rcx, rbx
call fcn.140041c10
test eax, eax
jne 0x14005209c
jmp 0x14004d2ae
mov rbx, qword [rsp + 0x30]
lea rax, [rbp + 0x208]
lea r9, [rbp + 0x204]
mov dword [rbp + 0x200], r15d
mov rcx, r12
mov qword [rbp + 0x204], 0xffffffffffffffff
mov qword [rsp + 0x20], rax
mov r8d, dword [rbx + 8]
mov edx, dword [rbx + 4]
call fcn.1400c2f10
mov dword [rsp + 0x3c], eax
mov esi, eax
test eax, eax
je 0x1400513ff
cmp eax, 5
jne 0x14004f241
mov ecx, 1
mov dword [rsp + 0x3c], r15d
mov dword [rbp + 0x200], ecx
jmp 0x140051405
mov ecx, dword [rbp + 0x200]
movsxd rax, dword [rbx + 0xc]
mov edx, 0x2460
imul rbx, rax, 0x38
movsxd rax, ecx
add rbx, r14
test word [rbx + 8], dx
je 0x140051436
mov rdx, rax
mov rcx, rbx
call fcn.140041ac0
mov edx, 0x2460
mov r8d, 4
jmp 0x140051444
mov r8d, 4
mov qword [rbx], rax
mov word [rbx + 8], r8w
lea rcx, [rbx + 0x38]
movsxd rax, dword [rbp + 0x204]
test word [rbx + 0x40], dx
je 0x14005146a
mov rdx, rax
call fcn.140041ac0
mov edx, 0x2460
mov r8d, 4
jmp 0x140051472
mov qword [rcx], rax
mov word [rbx + 0x40], r8w
lea rcx, [rbx + 0x70]
movsxd rax, dword [rbp + 0x208]
test word [rbx + 0x78], dx
je 0x140051490
mov rdx, rax
call fcn.140041ac0
jmp 0x14004d2ae
mov qword [rcx], rax
mov word [rbx + 0x78], r8w
jmp 0x14004d4e6
mov rdi, qword [rsp + 0x30]
mov rcx, r13
mov rdx, rdi
call fcn.14004cf00
mov rcx, qword [r12 + 0x20]
mov r14, rax
movsxd rdx, dword [rdi + 4]
mov ebx, dword [rdi + 0xc]
shl rdx, 5
mov r15, qword [rdx + rcx + 8]
mov rcx, r15
call fcn.14003e840
mov rcx, rax
mov rsi, rax
call fcn.140030880
cmp ebx, 0xffffffff
mov rcx, rsi
mov edi, eax
cmove ebx, eax
call fcn.140030890
test eax, eax
mov edx, 1
mov rcx, rsi
cmove ebx, edi
call fcn.1400303e0
cmp ebx, 5
jne 0x140051562
mov rcx, rax
call fcn.140020e40
test eax, eax
je 0x140051517
mov rcx, rsi
call fcn.1400308c0
test eax, eax
jne 0x140051562
mov ebx, edi
mov eax, dword [rsp + 0x3c]
test eax, eax
je 0x140051523
mov ebx, edi
mov edx, ebx
mov rcx, rsi
call fcn.140030700
mov ecx, eax
mov word [r14 + 8], 0xa02
call fcn.140088640
mov rcx, rax
mov qword [r14 + 0x10], rax
call fcn.140020e40
movzx edx, byte [rsp + 0x48]
mov rcx, r14
mov dword [r14 + 0xc], eax
mov byte [r14 + 0xa], 1
call fcn.140040cb0
jmp 0x14004f0df
cmp ebx, edi
je 0x140051519
cmp edi, 5
je 0x140051570
cmp ebx, 5
jne 0x140051519
cmp byte [r12 + 0x53], 0
je 0x14005204a
cmp dword [r12 + 0xb0], 1
jg 0x14005204a
cmp edi, 5
jne 0x1400515ac
mov rcx, rsi
call fcn.140030c20
mov dword [rsp + 0x3c], eax
test eax, eax
jne 0x140051521
mov edx, ebx
mov rcx, rsi
call fcn.140030700
jmp 0x1400515c7
cmp edi, 4
jne 0x1400515bc
lea edx, [rdi - 2]
mov rcx, rsi
call fcn.140030700
cmp dword [rsp + 0x3c], 0
jne 0x140051521
xor edx, edx
mov rcx, r15
cmp ebx, 5
sete dl
inc edx
call fcn.14003fd90
mov dword [rsp + 0x3c], eax
jmp 0x14005151d
mov rax, qword [rsp + 0x30]
lea rcx, [r13 + 0x90]
mov rdx, r12
mov r8d, dword [rax + 4]
call fcn.1400a5bc0
mov dword [rsp + 0x3c], eax
mov esi, eax
test eax, eax
jne 0x14004f241
jmp 0x14004d2ae
mov rax, qword [rsp + 0x30]
movsxd rcx, dword [rax + 4]
mov rax, qword [r12 + 0x20]
shl rcx, 5
mov rcx, qword [rcx + rax + 8]
call fcn.140037730
mov dword [rsp + 0x3c], eax
mov esi, eax
test eax, eax
je 0x14004d2ae
cmp eax, 0x65
jne 0x14004f241
mov dword [rsp + 0x3c], r15d
jmp 0x140051d76
cmp dword [rsi + 4], 0
jne 0x14005165d
mov rcx, r12
call fcn.140048ca0
jmp 0x14004d2b3
or dword [r13 + 0xc0], 1
jmp case.0x14004d08b.112
movzx r8d, byte [rsi + 0xc]
test r8b, r8b
jne 0x140051684
mov eax, 0x4000
test dword [r12 + 0x2c], eax
jne case.0x14004d08b.112
movsxd rax, dword [rsi + 4]
mov rcx, qword [r12 + 0x20]
mov edx, dword [rsi + 8]
shl rax, 5
mov rcx, qword [rax + rcx + 8]
call fcn.14003fba0
mov dword [rsp + 0x3c], eax
test eax, eax
je 0x14004d2b3
mov esi, eax
cmp sil, 6
jne 0x14004f241
mov rax, qword [rsp + 0x30]
lea rdx, [0x14018d6d0]
mov rcx, r13
mov r8, qword [rax + 0x10]
call fcn.1400429f0
jmp 0x14004f241
mov rax, qword [rsp + 0x30]
mov rcx, r12
mov rbx, qword [rax + 0x10]
mov rdx, rbx
call fcn.1400a7fc0
mov dword [rsp + 0x3c], eax
mov esi, eax
test rbx, rbx
je 0x1400516fe
mov rdx, qword [rbx + 0x10]
mov rcx, r13
call fcn.140048cd0
test esi, esi
jne 0x14004f241
jmp 0x14004d2ae
mov rax, qword [rsp + 0x30]
lea rcx, [rbp + 0x138]
xorps xmm0, xmm0
mov qword [rbp + 0x138], r15
xorps xmm1, xmm1
mov qword [rbp + 0x168], r15
movdqu xmmword [rbp + 0x140], xmm0
movsxd rax, dword [rax + 8]
imul rdx, rax, 0x38
movdqu xmmword [rbp + 0x150], xmm1
mov qword [rbp + 0x160], r12
add rdx, r14
call fcn.140041cc0
lea rcx, [rbp + 0x138]
mov dword [rsp + 0x3c], eax
call fcn.140049430
test rax, rax
je 0x140051785
mov r8, rax
lea r9, [r13 + 0x90]
mov rax, qword [rsp + 0x30]
mov rcx, r12
mov edx, dword [rax + 4]
call fcn.1400a7850
mov dword [rsp + 0x3c], eax
lea rcx, [rbp + 0x138]
call fcn.140041630
mov esi, dword [rsp + 0x3c]
test esi, esi
jne 0x14004f241
jmp 0x14004d2ae
mov rax, qword [rsp + 0x30]
mov rcx, r12
inc dword [r12 + 0xbc]
mov r8, qword [rax + 0x10]
mov edx, dword [rax + 4]
call fcn.1400a7d70
dec dword [r12 + 0xbc]
mov esi, eax
mov dword [rsp + 0x3c], eax
test eax, eax
jne 0x14004f241
jmp 0x14004d2ae
mov rax, qword [rsp + 0x30]
mov qword [rbp + 0x18], r15
mov rax, qword [rax + 0x10]
mov rbx, qword [rax + 0x10]
test rbx, rbx
je 0x140052086
mov rdi, qword [rbx]
test rdi, rdi
je 0x140052086
lea rdx, [rbp + 0x18]
mov rcx, rbx
call qword [rdi + 0x30]
mov rdx, rbx
mov rcx, r13
mov dword [rsp + 0x3c], eax
call fcn.140048cd0
mov esi, dword [rsp + 0x3c]
test esi, esi
jne 0x14004f241
mov rax, qword [rbp + 0x18]
lea r9d, [rsi - 1]
xor r8d, r8d
mov byte [rsp + 0x20], 2
mov rcx, r13
mov qword [rax], rbx
mov rax, qword [rsp + 0x30]
mov edx, dword [rax + 4]
call fcn.14004ca70
mov rcx, qword [rbp + 0x18]
test rax, rax
je 0x14005207e
mov qword [rax + 0x18], rcx
inc dword [rbx + 8]
jmp 0x14004d2ae
mov rcx, qword [rsp + 0x30]
xor r8d, r8d
mov r12, qword [rbp - 0x80]
movsxd rax, dword [rcx + 0xc]
movsxd rcx, dword [rcx + 4]
mov rdi, qword [r12 + 0x78]
imul rdx, rax, 0x38
mov rax, qword [r13 + 0x98]
add rdx, r14
movsxd r9, dword [rdx + 0x38]
lea r11, [rdx + 0x38]
mov r13, qword [rax + rcx*8]
mov edx, dword [rdx]
mov rsi, qword [r13 + 0x18]
mov r15, qword [rsi]
mov r14, qword [r15]
test r9d, r9d
jle 0x1400518c9
nop dword [rax]
nop dword [rax + rax]
movsxd rax, r10d
inc r10d
imul rcx, rax, 0x38
add rcx, r11
mov qword [rdi + r8*8], rcx
inc r8
cmp r8, r9
jl 0x1400518b0
mov rax, qword [rsp + 0x30]
mov rcx, rsi
mov qword [rsp + 0x20], rdi
mov r8, qword [rax + 0x10]
call qword [r14 + 0x40]
mov rdx, r15
mov rcx, r12
mov dword [rsp + 0x3c], eax
call fcn.140048cd0
cmp dword [rsp + 0x3c], 0
jne 0x14005235b
mov rcx, rsi
call qword [r14 + 0x50]
mov rsi, qword [rsp + 0x30]
mov r12, qword [rsp + 0x58]
mov r14, qword [rsp + 0x60]
mov r9, qword [rsp + 0x50]
mov byte [r13 + 2], 0
test eax, eax
jne 0x140051d80
xor r15d, r15d
jmp 0x14004fb3a
mov rdi, qword [rsp + 0x30]
mov rax, qword [r13 + 0x98]
movsxd rcx, dword [rdi + 4]
mov rcx, qword [rax + rcx*8]
movsxd rax, dword [rdi + 0xc]
imul rdi, rax, 0x38
add rdi, r14
cmp byte [rcx + 2], 0
je 0x14005195a
mov rcx, rdi
call fcn.140041aa0
jmp 0x14004d2ae
mov rax, qword [rcx + 0x18]
xorps xmm0, xmm0
xorps xmm1, xmm1
mov edx, 0x3e00
mov rbx, qword [rax]
mov r9, qword [rbx]
movdqu xmmword [rbp + 0x1b0], xmm0
mov qword [rbp + 0x1a8], rdi
movdqu xmmword [rbp + 0x1c0], xmm1
movdqu xmmword [rbp + 0x1d0], xmm0
movzx eax, word [rdi + 8]
and ax, dx
lea rdx, [rbp + 0x1a8]
or ax, 1
mov word [rdi + 8], ax
mov rax, qword [rsp + 0x30]
mov rcx, qword [rcx + 0x18]
mov r8d, dword [rax + 8]
call qword [r9 + 0x58]
mov rdx, rbx
mov rcx, r13
mov dword [rsp + 0x3c], eax
call fcn.140048cd0
mov eax, dword [rbp + 0x1cc]
test eax, eax
mov ecx, dword [rsp + 0x3c]
movzx edx, byte [rsp + 0x48]
cmovne ecx, eax
mov dword [rsp + 0x3c], ecx
mov rcx, rdi
call fcn.140040cb0
mov rcx, rdi
call fcn.140041c10
test eax, eax
jne 0x14005209c
mov esi, dword [rsp + 0x3c]
test esi, esi
jne 0x14004f241
jmp 0x14004d2ae
mov rax, qword [rsp + 0x30]
movsxd rcx, dword [rax + 4]
mov rax, qword [r13 + 0x98]
mov rdi, qword [rax + rcx*8]
cmp byte [rdi + 2], 0
jne 0x14004d540
mov rcx, qword [rdi + 0x18]
mov rbx, qword [rcx]
mov rsi, qword [rbx]
call qword [rsi + 0x48]
mov rdx, rbx
mov rcx, r13
mov dword [rsp + 0x3c], eax
call fcn.140048cd0
cmp dword [rsp + 0x3c], 0
jne 0x14004f23d
mov rcx, qword [rdi + 0x18]
call qword [rsi + 0x50]
test eax, eax
jne 0x140050c2e
mov r9, qword [rsp + 0x50]
mov rax, qword [rsp + 0x30]
mov eax, dword [rax + 8]
dec eax
cdqe
lea rcx, [rax + rax*2]
lea rax, [r9 + rcx*8]
mov qword [rsp + 0x30], rax
jmp 0x140050c33
mov rcx, qword [rsp + 0x30]
mov edx, r10d
mov rax, qword [rcx + 0x10]
mov rdi, qword [rax + 0x10]
movsxd rax, dword [rcx + 4]
imul rbx, rax, 0x38
add rbx, r14
mov rcx, rbx
call fcn.140040cb0
mov esi, eax
test eax, eax
jne 0x14004f241
mov rax, qword [rdi]
mov rcx, rdi
mov rdx, qword [rbx + 0x10]
call qword [rax + 0x98]
mov rdx, rdi
mov rcx, r13
mov dword [rsp + 0x3c], eax
call fcn.140048cd0
and dword [r13 + 0xc0], 0xfffffffe
mov esi, dword [rsp + 0x3c]
test esi, esi
jne 0x14004f241
jmp 0x14004d2ae
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x10]
mov rbx, qword [rax + 0x10]
test rbx, rbx
je 0x140052086
mov r10, qword [rbx]
test r10, r10
je 0x140052086
cmp qword [r10 + 0x68], 0
mov rdx, qword [rsp + 0x30]
movsxd rdx, dword [rdx + 8]
je 0x140051d97
mov rax, qword [rsp + 0x30]
movzx esi, byte [r12 + 0x5a]
mov r8, qword [r13 + 0x78]
movsxd rax, dword [rax + 0xc]
imul rcx, rax, 0x38
mov rax, r15
add rcx, r14
test edx, edx
jle 0x140051b50
nop dword [rax + rax]
mov qword [r8 + rax*8], rcx
add rcx, 0x38
inc rax
cmp rax, rdx
jl 0x140051b40
mov rax, qword [rsp + 0x30]
lea r9, [rbp + 0x98]
mov rcx, rbx
movzx eax, byte [rax + 3]
mov byte [r12 + 0x5a], al
call qword [r10 + 0x68]
mov rdx, rbx
mov byte [r12 + 0x5a], sil
mov rcx, r13
mov dword [rsp + 0x3c], eax
call fcn.140048cd0
mov esi, dword [rsp + 0x3c]
test esi, esi
jne 0x140051ba6
mov rsi, qword [rsp + 0x30]
cmp dword [rsi + 4], 0
je 0x140051bfa
mov rbx, qword [rbp + 0x98]
mov qword [rsp + 0x40], rbx
mov qword [r12 + 0x30], rbx
jmp 0x140051bff
mov rbx, rdi
mov qword [rsp + 0x40], rbx
cmp sil, 0x13
jne 0x140051bf3
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x40], rbx
mov rax, qword [rax + 0x10]
cmp byte [rax + 0x1c], 0
je 0x140051bf3
mov rcx, qword [rsp + 0x30]
movzx ecx, byte [rcx + 3]
cmp cl, 4
jne 0x1400520b5
mov rsi, qword [rsp + 0x30]
mov r9, qword [rsp + 0x50]
mov dword [rsp + 0x3c], r15d
mov qword [rsp + 0x40], rbx
jmp 0x14004d269
mov rsi, qword [rsp + 0x30]
jmp 0x140051bff
mov rbx, qword [rsp + 0x40]
inc dword [r13 + 0x3c]
cmp dword [rsp + 0x3c], 0
jne 0x14004f23d
mov r9, qword [rsp + 0x50]
jmp 0x14004d269
mov rdx, qword [rsp + 0x30]
mov rcx, r13
call fcn.14004cf00
mov rcx, qword [r12 + 0x20]
mov rbx, rax
mov rax, qword [rsp + 0x30]
movsxd rdx, dword [rax + 4]
shl rdx, 5
mov rcx, qword [rdx + rcx + 8]
call fcn.1400352c0
mov ecx, eax
mov qword [rbx], rcx
jmp 0x14004d2ae
mov rdx, qword [rsp + 0x30]
mov rcx, r13
call fcn.14004cf00
mov r8, qword [rsp + 0x30]
mov rdi, rax
mov rcx, qword [r12 + 0x20]
mov eax, r15d
movsxd rdx, dword [r8 + 4]
shl rdx, 5
cmp dword [r8 + 0xc], 0
mov rbx, qword [rdx + rcx + 8]
je 0x140051c93
mov rcx, rbx
call fcn.1400352c0
mov rcx, qword [rsp + 0x30]
cmp eax, dword [rcx + 0xc]
cmovb eax, dword [rcx + 0xc]
mov edx, eax
mov rcx, rbx
call fcn.140036610
movsxd rcx, eax
mov qword [rdi], rcx
jmp 0x14004d2ae
movzx eax, byte [r12 + 0x5c]
test al, 0x81
je 0x140051d22
test byte [r13 + 0xc0], 2
jne 0x140051d22
mov rcx, qword [rsp + 0x30]
mov r9, qword [rcx + 0x10]
test r9, r9
jne 0x140051cd6
mov r9, qword [r13 + 0xe0]
test r9, r9
je 0x140051d1d
mov rdi, qword [r12 + 0xd0]
test al, al
jns 0x140051d07
mov rdx, r9
mov rcx, r13
call fcn.14004c4c0
mov rcx, qword [r12 + 0xd8]
mov rdx, rax
mov rbx, rax
call rdi
mov rcx, rbx
call fcn.14001ddd0
jmp 0x140051d17
mov rdx, qword [r12 + 0xd8]
mov r8, r13
mov ecx, r10d
call rdi
mov r10d, 1
mov r9, qword [rsp + 0x50]
mov rax, qword [rsp + 0x30]
mov eax, dword [rax + 4]
cmp eax, dword [0x1401b45bc]
jl 0x140051d65
cmp dword [r13 + 0xb8], 1
mov edx, r10d
jle 0x140051d62
mov eax, 0x18
mov rcx, qword [r13 + 0x68]
cmp byte [rcx + rax], 0x14
jne 0x140051d53
mov dword [rcx + rax + 4], r15d
inc edx
add rax, 0x18
cmp edx, dword [r13 + 0xb8]
jl 0x140051d44
mov eax, r15d
mov rsi, qword [rsp + 0x30]
inc eax
mov dword [rsi + 4], eax
jmp 0x140051d80
mov r14, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x30]
mov r9, qword [rsp + 0x50]
mov eax, dword [rsi + 8]
dec eax
cdqe
xor r15d, r15d
lea rcx, [rax + rax*2]
lea rsi, [r9 + rcx*8]
jmp 0x14004fb3a
mov rsi, qword [rsp + 0x30]
mov r10d, 1
mov edx, 0x2460
jmp case.0x14004d08b.112
mov rsi, qword [rsp + 0x30]
mov edx, 0x2460
mov r14, qword [rsp + 0x60]
jmp case.0x14004d08b.112
mov dword [r13 + 0x38], ecx
movzx eax, byte [rdx + 8]
mov byte [r13 + 0xbe], al
mov dword [r13 + 0x34], ebx
test ecx, ecx
je 0x140051e6b
movzx eax, byte [rdx + 3]
mov rcx, r13
test al, al
je 0x140051e31
mov r8d, eax
lea rdx, [0x14018d450]
lea rax, [0x140000000]
mov r8, qword [rax + r8*8 + 0x194f60]
call fcn.1400429f0
mov rax, qword [rsp + 0x30]
mov r9, qword [rax + 0x10]
test r9, r9
je 0x140051e41
mov r8, qword [r13 + 0x90]
lea rdx, [0x14018d468]
mov rcx, r12
call fcn.1400200b0
mov qword [r13 + 0x90], rax
jmp 0x140051e41
mov r8, qword [rdx + 0x10]
lea rdx, [0x14018cbb4]
call fcn.1400429f0
mov rax, qword [r13 + 0x90]
lea rdx, [0x14018d470]
mov r9, qword [r13 + 0xe0]
mov r8d, ebx
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x30]
mov ecx, dword [rax + 4]
call fcn.1400204a0
mov rcx, r13
call fcn.140046140
mov dword [rsp + 0x3c], eax
cmp eax, 5
jne 0x1400522c9
mov dword [r13 + 0x38], eax
jmp 0x14004f30e
mov ecx, 0x13ba7
call fcn.1400c4e20
mov esi, eax
mov r12, qword [rsp + 0x58]
mov r13, rdi
jmp 0x14004f241
cmp qword [rcx + 0x68], 0
jne 0x140051eb5
lea rcx, [rbp + 0x170]
call fcn.140041630
mov ecx, 0x13be5
call fcn.1400c4e20
mov esi, eax
mov r13, qword [rbp - 0x80]
mov r12, qword [rsp + 0x58]
jmp 0x14004f241
lea rdx, [0x14018d488]
mov rcx, r13
call fcn.1400429f0
mov esi, 5
jmp 0x14004f241
lea rdx, [0x14018d4d8]
mov rcx, r13
call fcn.1400429f0
mov esi, 5
jmp 0x14004f241
mov rcx, qword [rsp + 0x30]
movabs rax, 0x2aaaaaaaaaaaaaab
sub rcx, qword [rsp + 0x50]
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
mov eax, 5
mov dword [r13 + 0x34], edx
mov byte [r12 + 0x53], 0
mov dword [r13 + 0x38], eax
mov dword [rsp + 0x3c], eax
jmp 0x14004f30e
mov esi, 8
jmp 0x14004f241
cmp al, 5
jne 0x14004f241
mov rcx, qword [rsp + 0x30]
movabs rax, 0x2aaaaaaaaaaaaaab
sub rcx, qword [rsp + 0x50]
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
mov eax, dword [rsp + 0x3c]
mov dword [r13 + 0x34], edx
mov dword [r13 + 0x38], eax
jmp 0x14004f30e
mov rdx, qword [r13 + 0x90]
mov rcx, r12
call fcn.14001de90
lea rdx, [0x14018d5d8]
mov rcx, r12
call fcn.14001e4c0
mov qword [r13 + 0x90], rax
mov rax, qword [r12 + 0x20]
movsxd rdx, dword [rsi + 4]
mov rcx, rdx
shl rcx, 5
mov rcx, qword [rcx + rax + 0x18]
mov eax, dword [rbp - 0x20]
cmp dword [rcx], eax
je 0x140051fd3
mov rcx, r12
call fcn.14006b7f0
or dword [r13 + 0xc0], 1
mov esi, 0x11
jmp 0x14004f241
mov esi, 0x204
jmp 0x14004f241
mov esi, 0xd
jmp 0x14004f241
mov esi, 6
mov byte [r13 + 0xbe], 2
jmp 0x14004f241
call fcn.14006b840
jmp 0x14004e98b
lea rdx, [0x14018d660]
mov dword [rsp + 0x3c], r10d
mov rcx, r13
call fcn.1400429f0
jmp 0x14004f23d
call fcn.140049430
mov r8, rax
lea rdx, [0x14018cbb4]
mov rcx, r13
call fcn.1400429f0
jmp 0x14004f23d
cmp ebx, 5
lea rax, [0x14018d688]
lea r8, [0x14018d690]
mov edi, 1
cmove r8, rax
mov dword [rsp + 0x3c], edi
lea rdx, [0x14018d698]
mov rcx, r13
call fcn.1400429f0
mov esi, edi
jmp 0x14004f246
call qword [rdi + 0x38]
jmp 0x14004e98b
mov esi, 6
jmp 0x14004f241
mov r13, qword [rbp - 0x80]
jmp 0x140052099
mov r13, rdi
mov r12, r8
lea rdx, [0x14018d378]
mov rcx, r13
call fcn.1400429f0
mov esi, 0x12
jmp 0x14004f241
mov eax, ecx
mov qword [rsp + 0x40], rdi
cmp cl, 5
mov ecx, 2
cmove eax, ecx
mov byte [r13 + 0xbe], al
jmp 0x14004f241
mov rax, qword [r12 + 0x1a0]
test rax, rax
je 0x1400520fe
cmp r11d, dword [rbp - 0x3c]
jb 0x1400520fe
mov rcx, qword [r12 + 0x1a8]
call rax
test eax, eax
je 0x1400520fe
mov esi, 9
jmp 0x14004f241
xor edx, edx
mov rcx, r13
call fcn.1400460f0
mov esi, eax
test eax, eax
jne 0x14004f241
lea edx, [rax + 1]
mov rcx, r13
call fcn.140045e10
mov eax, dword [r13 + 0x30]
mov rbx, qword [rsp + 0x30]
add eax, 2
or eax, 1
mov dword [r13 + 0x30], eax
movsxd rax, dword [rbx + 4]
imul rdi, rax, 0x38
add rdi, r14
mov qword [r13 + 0x88], rdi
cmp dword [rbx + 8], esi
jle 0x14005219b
lea rbx, [rdi + 8]
mov esi, 0x202
mov eax, 0x1000
test word [rbx], ax
je 0x140052171
movsxd rax, r15d
imul rcx, rax, 0x38
add rcx, rdi
call fcn.140041040
test eax, eax
jne 0x14004e98b
movzx eax, word [rbx]
and ax, si
cmp ax, 2
jne 0x140052186
lea rcx, [rbx - 8]
call fcn.1400411a0
mov rax, qword [rsp + 0x30]
inc r15d
add rbx, 0x38
cmp r15d, dword [rax + 8]
jl 0x140052150
mov rbx, rax
cmp byte [r12 + 0x55], 0
jne 0x14004e98b
test byte [r12 + 0x5c], 4
je 0x1400521c9
mov rdx, qword [r12 + 0xd8]
xor r9d, r9d
mov r8, r13
lea ecx, [r9 + 4]
call qword [r12 + 0xd0]
sub rbx, qword [rsp + 0x50]
movabs rax, 0x2aaaaaaaaaaaaaab
imul rbx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
mov eax, 0x64
inc edx
mov dword [rsp + 0x3c], eax
mov dword [r13 + 0x34], edx
jmp 0x14004f30e
mov rdi, qword [rsp + 0x30]
movzx eax, byte [r12 + 0x53]
mov ebx, dword [rdi + 4]
mov ecx, dword [rdi + 8]
cmp ebx, eax
je 0x1400522e6
test ecx, ecx
je 0x14005222b
mov edx, 0x204
mov rcx, r12
call fcn.1400c1ca0
mov al, 1
jmp 0x14005226d
test ebx, ebx
je 0x140052253
cmp dword [r12 + 0xb4], 0
jle 0x140052253
lea rdx, [0x14018d510]
mov rcx, r13
call fcn.1400429f0
mov esi, 5
jmp 0x14004f241
mov edx, r10d
mov rcx, r13
call fcn.1400460f0
mov dword [rsp + 0x3c], eax
test eax, eax
jne 0x14004f30e
movzx eax, bl
mov rcx, r13
mov byte [r12 + 0x53], al
call fcn.140046140
cmp eax, 5
jne 0x1400522c1
sub rdi, qword [rsp + 0x50]
movabs rax, 0x2aaaaaaaaaaaaaab
imul rdi
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
mov eax, 1
sub al, bl
mov dword [r13 + 0x34], edx
mov byte [r12 + 0x53], al
mov eax, 5
mov dword [rsp + 0x3c], eax
mov dword [r13 + 0x38], eax
jmp 0x14004f30e
mov rcx, r12
call fcn.1400c0f90
cmp dword [r13 + 0x38], 0
mov eax, 0x65
mov r9d, 1
cmovne eax, r9d
mov dword [rsp + 0x3c], eax
jmp 0x14004f30e
test ebx, ebx
jne 0x1400522f3
lea rdx, [0x14018d548]
jmp 0x140052307
test ecx, ecx
lea rax, [0x14018d578]
lea rdx, [0x14018d5a8]
cmovne rdx, rax
mov rcx, r13
call fcn.1400429f0
mov edi, 1
mov esi, edi
jmp 0x14004f246
cmp byte [r12 + 0x55], 0
mov eax, 9
mov ebx, 7
cmovne eax, ebx
mov ecx, eax
mov dword [rsp + 0x3c], eax
mov dword [r13 + 0x38], eax
call fcn.1400c1e90
mov r8, rax
lea rdx, [0x14018cbb4]
mov rcx, r13
call fcn.1400429f0
mov esi, dword [rsp + 0x3c]
lea edi, [rbx - 6]
jmp 0x14004f24b
mov r13, r12
mov r12, qword [rsp + 0x58]
jmp 0x14004f23d
mov esi, dword [rsp + 0x3c]
mov r13, qword [rbp - 0x80]
mov r12, qword [rsp + 0x58]
jmp 0x14004f241