Function at 0x14004a340
Capabilities:
Encode data using base64
Encode data using xor
Hash data with crc32

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x148
movaps xmmword [rsp + 0x130], xmm6
mov rbp, rdx
mov rax, qword [0x14033f038]
xor rax, rsp
mov qword [rsp + 0x128], rax
mov r15, qword [rcx + 8]
movzx eax, byte [r15 + 0x29]
test al, 1
jne 0x14004ae68
mov rax, qword [r15 + 8]
mov edx, dword [rax + 0x24]
test dl, 1
jne 0x14004ae68
mov r14, r9
mov ebx, r8d
movzx edx, byte [r9 + 0x17]
test dl, dl
mov qword [rsp + 0x38], rcx
jns 0x14004a3ab
mov rdx, qword [r14 + 8]
jmp 0x14004a3ae
and edx, 0x7f
add rdx, 0x51
cmp rdx, 0x59
mov r12d, 0x58
cmovae r12, rdx
cmp r12, 0x3ffffff0
ja 0x14004b885
lea rcx, [r12 + 0x17]
and rcx, 0xfffffffffffffff8
cmp rcx, 0x11
jb 0x14004b885
mov edx, dword [r15 + 0x18]
cmp rcx, rdx
ja 0x14004b885
mov r13d, dword [rax + 0x28]
movzx eax, byte [r15 + 0x29]
test al, 1
jne 0x14004b87d
mov r9, qword [r15 + 8]
mov eax, dword [r9 + 0x24]
test al, 1
jne 0x14004b87d
mov r10d, r13d
lea rax, [rcx + r10]
mov r11d, dword [r15 + 0x14]
cmp rax, r11
ja 0x14004b8ab
cmp r13d, 0x40
setb al
test r10b, 7
setne dl
or dl, al
lea rax, [r10 + 0x10]
cmp rax, r11
seta al
test dl, dl
jne 0x14004b83c
test al, al
jne 0x14004b87d
mov r8, r9
add r8, r10
je 0x14004b87d
mov esi, dword [r15 + 0x18]
mov eax, r13d
xor edx, edx
div esi
sub esi, edx
cmp rcx, rsi
ja 0x14004b843
mov rax, rsi
sub rax, rcx
cmp rax, 0x17
jbe 0x14004b86e
lea edx, [rcx + r13]
mov eax, r13d
lock cmpxchg dword [r9 + 0x28], edx
mov r13d, eax
jne 0x14004a3f1
cmp dword [r8], 0
jne 0x14004b87d
cmp dword [r8 + 4], 0
jne 0x14004b87d
mov eax, dword [r8 + 8]
test eax, eax
jne 0x14004b87d
mov eax, dword [r8 + 0xc]
test eax, eax
jne 0x14004b87d
mov rax, rcx
add rax, r8
mov rdx, qword [r15 + 0x20]
lea r9, [r8 + rdx]
add r9, 0xf
neg rdx
and rdx, r9
cmp rax, rdx
ja 0x14004ad80
mov dword [r8], ecx
mov dword [r8 + 4], 0xc8799269
mov dword [r8 + 8], 0xf1645913
test r13d, r13d
je 0x14004b885
mov rcx, qword [r15 + 0x30]
test rcx, rcx
jne 0x14004b8d3
xor esi, esi
cmp r13d, 0x40
jb 0x14004a572
mov eax, r13d
mov ecx, eax
and ecx, 7
jne 0x14004a572
lea rdx, [r12 + rax]
add rdx, 0x10
mov ecx, dword [r15 + 0x14]
cmp rdx, rcx
ja 0x14004b8a4
mov rsi, qword [r15 + 8]
mov edx, dword [rsi + rax + 4]
cmp edx, 0xc8799269
jne 0x14004b8a4
add r12, 0x10
add rsi, rax
mov eax, dword [rsi]
cmp r12, rax
ja 0x14004b8a4
add r13d, dword [rsi]
cmp r13d, ecx
ja 0x14004b8a4
mov eax, dword [rsi + 8]
cmp eax, 0xf1645913
jne 0x14004b8a4
test rsi, rsi
je 0x14004b8be
add rsi, 0x10
mov r13, qword [rsp + 0x38]
test rsi, rsi
je 0x14004b8c5
mov edi, dword [rsp + 0x1c8]
xorps xmm0, xmm0
movups xmmword [rsi + 0x40], xmm0
movups xmmword [rsi + 0x30], xmm0
movups xmmword [rsi + 0x20], xmm0
movups xmmword [rsi + 0x10], xmm0
movups xmmword [rsi], xmm0
mov qword [rsi + 0x50], 0
lea rcx, [rsi + 0x50]
movzx eax, byte [r14 + 0x17]
mov r8d, eax
and r8d, 0x7f
test al, al
mov rdx, qword [r14]
cmovns rdx, r14
cmovs r8, qword [r14 + 8]
inc r8
call fcn.1401730b0
mov dword [rsi], ebx
or edi, 0x40
mov dword [rsi + 4], edi
cmp ebx, 4
je 0x14004a653
mov rdi, qword [rsp + 0x1c0]
mov r14, qword [rdi + 8]
sub r14, qword [rdi]
mov r12, r14
sar r12, 2
dec r12
mov rax, r12
shr rax, 0x3d
jne 0x14004ae70
movabs rax, 0x1fffffffffffffff
and rax, r12
je 0x14004ae70
mov ebx, dword [rdi + 0x1c]
test ebx, ebx
je 0x14004ab51
test rsi, rsi
je 0x14004ae70
mov eax, dword [rsp + 0x1b8]
mov ecx, dword [rsp + 0x1b0]
mov dword [rsi + 8], ecx
mov dword [rsi + 0xc], eax
mov dword [rsi + 0x10], r12d
mov dword [rsi + 0x14], ebx
mov eax, dword [rdi + 0x18]
mov dword [rsi + 0x18], eax
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rbp], rax
mov r12d, dword [rsi]
cmp r12d, 4
je 0x14004ad54
mov qword [rsp + 0x48], rbp
mov eax, dword [rsi + 4]
mov dword [rsp + 0x64], eax
mov r14d, dword [rsi + 0x10]
mov eax, dword [rsi + 0x14]
xor edi, edi
mov ebp, dword [rsi + 0x18]
cmp rax, 0x40
jb 0x14004baab
mov ecx, eax
mov r8d, 0
and ecx, 7
jne 0x14004a77b
mov rcx, qword [r13 + 8]
lea r8, [rax + 0x14]
mov edx, dword [rcx + 0x14]
cmp r8, rdx
ja 0x14004ae61
mov rdi, qword [rcx + 8]
mov r8d, dword [rdi + rax + 4]
cmp r8d, 0xc8799269
jne 0x14004ae61
add rdi, rax
mov r8d, dword [rdi]
cmp r8d, 0x14
jb 0x14004ae61
mov r8d, dword [rdi]
add r8d, eax
cmp r8d, edx
ja 0x14004ae61
mov r8d, dword [rdi + 8]
cmp r8d, 0xbcea225b
jne 0x14004ae61
test rdi, rdi
je 0x14004ba90
add rdi, 0x10
lea r8, [rax + 0x10]
cmp r8, rdx
ja 0x14004baab
mov r8, qword [rcx + 8]
mov r9d, dword [r8 + rax + 4]
cmp r9d, 0xc8799269
jne 0x14004baab
add r8, rax
mov r9d, dword [r8]
cmp r9d, 0x10
jb 0x14004baab
mov r10d, dword [r8]
add r10d, eax
test r8, r8
sete r9b
cmp r10d, edx
ja 0x14004ba97
test r9b, r9b
jne 0x14004baab
mov r8d, dword [r8]
add eax, r8d
cmp eax, edx
seta al
cmp r8, 0x11
jb 0x14004ba9f
test al, al
jne 0x14004baa6
add r8, 0xfffffffffffffff0
lea r15d, [r14 + 1]
cmp r14d, 2
setb dl
mov al, 1
mov cl, 1
test rdi, rdi
je 0x14004a791
mov ecx, edx
cmp r14d, 0x3fffffff
setae dl
test cl, cl
jne 0x14004a7a1
mov eax, edx
lea rbx, [r15*4]
cmp r8, rbx
setb cl
test al, al
jne 0x14004b8fe
mov qword [rsp + 0x68], r14
test cl, cl
jne 0x14004ae23
mov ecx, 0x20
call fcn.14016ecd4
mov r14, rax
mov rcx, rbx
call fcn.14016ecd4
mov qword [r14], rax
mov qword [r14 + 8], rax
lea rcx, [rax + r15*4]
mov qword [r14 + 0x10], rcx
xor edx, edx
nop word [rax + rax]
mov r8, rax
add r8, rdx
je 0x14004adc2
mov dword [r8], 0
add rdx, 4
cmp rbx, rdx
jne 0x14004a7f0
mov qword [r14 + 8], rcx
mov qword [r14 + 0x18], 0
test r15, r15
je 0x14004adee
mov ecx, dword [rdi]
mov dword [rax], ecx
mov eax, 1
nop word [rax + rax]
mov ecx, dword [rdi + rax*4]
cmp ecx, dword [rdi + rax*4 - 4]
jle 0x14004ae1a
mov rdx, qword [r14]
mov r8, qword [r14 + 8]
sub r8, rdx
sar r8, 2
cmp r8, rax
jbe 0x14004adee
mov dword [rdx + rax*4], ecx
inc rax
cmp r15, rax
jne 0x14004a830
mov rcx, qword [r14]
mov r8, qword [r14 + 8]
mov rdx, r8
sub rdx, rcx
je 0x14004b905
mov rax, rdx
shr rax, 2
mov r9, rcx
not r9
add r9, r8
jne 0x14004a889
xor r8d, r8d
jmp 0x14004a8d0
mov r9, rdx
and r9, 0xfffffffffffffffe
xor r8d, r8d
lea r10, [0x140311e40]
nop word [rax + rax]
movzx r11d, al
movzx edi, byte [rcx + r8]
xor edi, r11d
shr eax, 8
xor eax, dword [r10 + rdi*4]
movzx r11d, al
movzx edi, byte [rcx + r8 + 1]
xor edi, r11d
shr eax, 8
xor eax, dword [r10 + rdi*4]
add r8, 2
cmp r9, r8
jne 0x14004a8a0
test dl, 1
je 0x14004a8ec
movzx edx, al
movzx ecx, byte [rcx + r8]
xor ecx, edx
lea rdx, [0x140311e40]
shr eax, 8
xor eax, dword [rdx + rcx*4]
mov dword [r14 + 0x18], eax
cmp eax, ebp
jne 0x14004ae1a
test r14, r14
je 0x14004ae23
mov rcx, qword [r13 + 0x10]
test rcx, rcx
mov dword [rsp + 0x44], r12d
jne 0x14004b90c
mov rdi, qword [0x140352bb8]
cmp rdi, 1
jbe 0x14004b921
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14004ad92
mov rax, qword [0x140352bb8]
cmp rax, 1
mov qword [rsp + 0x80], rdi
jbe 0x14004b95e
mov rax, qword [0x140352bc8]
test rax, rax
je 0x14004b99b
lea r15, [rax + 0x80]
mov r13d, dword [r14 + 0x18]
mov qword [rsp + 0x50], rax
mov rdi, qword [rax + 0x88]
movabs rbp, 0xaaaaaaaaaaaaaaaa
test rdi, rdi
je 0x14004ab1a
mov rax, rdi
shr rax, 1
movabs rcx, 0x5555555555555555
and rcx, rax
mov rax, rdi
sub rax, rcx
movabs rcx, 0x3333333333333333
mov rdx, rax
and rdx, rcx
shr rax, 2
and rax, rcx
add rax, rdx
mov rcx, rax
shr rcx, 4
add rcx, rax
movabs rax, 0xf0f0f0f0f0f0f0f
and rax, rcx
movabs rcx, 0x101010101010101
imul rcx, rax
shr rcx, 0x38
cmp rcx, 1
jbe 0x14004ad9f
mov rbp, r13
cmp rdi, r13
ja 0x14004aa01
mov rax, r13
xor edx, edx
div rdi
mov rbp, rdx
mov qword [rsp + 0x58], r15
mov rax, qword [r15]
mov rax, qword [rax + rbp*8]
test rax, rax
je 0x14004ab15
mov r8, qword [rax]
test r8, r8
je 0x14004ab15
lea rax, [rdi - 1]
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rbp
mov rax, qword [r8 + 8]
cmp rax, r13
jne 0x14004aaf6
mov rbp, qword [r8 + 0x10]
cmp dword [rbp + 0x18], r13d
jne 0x14004aae3
mov rax, qword [rbp]
mov rdx, qword [rbp + 8]
mov r9, rdx
sub r9, rax
mov r10, qword [r14]
mov r11, qword [r14 + 8]
sub r11, r10
cmp r9, r11
jne 0x14004aae3
cmp rdx, rax
je 0x14004b9b9
sar r9, 2
cmp r9, 2
mov r11d, 1
mov r15d, 1
cmovae r15, r9
neg r15
mov rdx, r9
neg rdx
mov r12b, 1
nop word cs:[rax + rax]
lea rbx, [rdx + r11]
cmp rbx, 1
je 0x14004ae35
mov ebx, dword [rax + r11*4 - 4]
cmp ebx, dword [r10 + r11*4 - 4]
jne 0x14004aad1
cmp r11, r9
setb r12b
lea rbx, [r15 + r11]
inc rbx
inc r11
cmp rbx, 1
jne 0x14004aaa0
test r12b, 1
mov r12d, dword [rsp + 0x44]
mov rbx, rbp
je 0x14004af4b
mov r8, qword [r8]
test r8, r8
mov rbp, qword [rsp + 0x78]
jne 0x14004aa30
jmp 0x14004ab15
cmp ecx, 1
jbe 0x14004bc84
cmp rax, rdi
jb 0x14004ab0c
xor edx, edx
div rdi
mov rax, rdx
cmp rax, rbp
je 0x14004aa3d
mov r15, qword [rsp + 0x58]
mov r12, rbp
mov ecx, 0x18
call fcn.14016ecd4
mov rbx, rax
mov qword [rax + 0x10], r14
mov qword [rax + 8], r13
mov rax, qword [rsp + 0x50]
mov rax, qword [rax + 0x98]
inc rax
js 0x14004ae7d
cvtsi2ss xmm0, rax
jmp 0x14004ae92
mov r15, qword [r13 + 8]
cmp r14, 0x3ffffff0
ja 0x14004bce1
lea rcx, [r14 + 0x17]
and rcx, 0xfffffffffffffff8
cmp rcx, 0x11
jb 0x14004bce1
mov eax, dword [r15 + 0x18]
cmp rcx, rax
ja 0x14004bce1
mov rax, qword [r15 + 8]
mov ebx, dword [rax + 0x28]
mov al, byte [r15 + 0x29]
test al, 1
jne 0x14004bcd9
mov r9, qword [r15 + 8]
mov eax, dword [r9 + 0x24]
test al, 1
jne 0x14004bcd9
mov r10d, ebx
lea rax, [rcx + r10]
mov r11d, dword [r15 + 0x14]
cmp rax, r11
ja 0x14004bd02
cmp ebx, 0x40
jb 0x14004bcd9
mov eax, r10d
and eax, 7
jne 0x14004bcd9
lea rax, [r10 + 0x10]
cmp rax, r11
ja 0x14004bcd9
mov r8, r9
add r8, r10
je 0x14004bcd9
mov r13d, dword [r15 + 0x18]
mov eax, ebx
xor edx, edx
div r13d
sub r13d, edx
cmp rcx, r13
ja 0x14004bca0
mov rax, r13
sub rax, rcx
cmp rax, 0x17
jbe 0x14004bcca
lea edx, [rbx + rcx]
mov eax, ebx
lock cmpxchg dword [r9 + 0x28], edx
mov ebx, eax
jne 0x14004ab88
cmp dword [r8], 0
jne 0x14004bcd9
cmp dword [r8 + 4], 0
jne 0x14004bcd9
mov eax, dword [r8 + 8]
test eax, eax
jne 0x14004bcd9
mov eax, dword [r8 + 0xc]
test eax, eax
jne 0x14004bcd9
mov rax, rcx
add rax, r8
mov rdx, qword [r15 + 0x20]
lea r9, [r8 + rdx]
add r9, 0xf
neg rdx
and rdx, r9
cmp rax, rdx
ja 0x14004adb0
mov dword [r8], ecx
mov dword [r8 + 4], 0xc8799269
mov dword [r8 + 8], 0xbcea225b
test ebx, ebx
mov r13, qword [rsp + 0x38]
je 0x14004bce1
mov rcx, qword [r15 + 0x30]
test rcx, rcx
jne 0x14004bd15
cmp ebx, 0x40
jb 0x14004ae70
mov edx, ebx
mov eax, edx
and eax, 7
jne 0x14004ae70
mov rcx, qword [r13 + 8]
lea r8, [r14 + rdx]
add r8, 0x10
mov eax, dword [rcx + 0x14]
cmp r8, rax
ja 0x14004ae70
mov rcx, qword [rcx + 8]
mov r8d, dword [rcx + rdx + 4]
cmp r8d, 0xc8799269
jne 0x14004ae70
add r14, 0x10
add rcx, rdx
mov edx, dword [rcx]
cmp r14, rdx
ja 0x14004ae70
mov edx, dword [rcx]
add edx, ebx
cmp edx, eax
ja 0x14004ae70
mov edx, dword [rcx + 8]
xor eax, eax
cmp edx, 0xbcea225b
cmove rax, rcx
test rax, rax
je 0x14004ae70
add rax, 0x10
je 0x14004ae70
mov rcx, qword [rdi]
cmp qword [rdi + 8], rcx
je 0x14004ad4c
xor edx, edx
nop word [rax + rax]
mov ecx, dword [rcx + rdx*4]
mov dword [rax + rdx*4], ecx
inc rdx
mov rcx, qword [rdi]
mov r8, qword [rdi + 8]
sub r8, rcx
sar r8, 2
cmp rdx, r8
jb 0x14004ad30
mov dword [rdi + 0x1c], ebx
jmp 0x14004a629
lea rax, [rsi + 0x38]
lea r9, [rsi + 0x20]
lea r8, [rsi + 0x50]
mov qword [rsp + 0x20], rax
mov rcx, rbp
mov rdx, r13
call fcn.1400ac1f0
mov rax, qword [rbp]
mov ecx, dword [rsi + 4]
lock or dword [rax + 0x10], ecx
jmp 0x14004b33b
mov byte [rdx], 0
add rdx, qword [r15 + 0x20]
cmp rdx, rax
jae 0x14004a4e2
jmp 0x14004ad80
mov rcx, rdi
call fcn.140047ff0
jmp 0x14004a935
mov eax, 0xffffffff
add eax, edi
mov ebp, r13d
and ebp, eax
jmp 0x14004aa01
mov byte [rdx], 0
add rdx, qword [r15 + 0x20]
cmp rdx, rax
jae 0x14004ac6e
jmp 0x14004adb0
lea rax, str.null_pointer_given_to_construct_at
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s
lea rdx, str....._buildtools_third_partylibc_trunkinclude__memoryconstruct_at.h
lea r9, str.__location___nullptr
mov r8d, 0x23
call fcn.1401c469a
lea rax, str.vector___index_out_of_bounds
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s
lea rdx, str....._buildtools_third_partylibc_trunkinclude_vector
lea r9, str.__n___size__
mov r8d, 0x587
call fcn.1401c469a
test r14, r14
jne 0x14004bd32
mov rbp, qword [rsp + 0x48]
mov qword [rbp], 0
jmp 0x14004b33b
lea rax, str.vector___index_out_of_bounds
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s
lea rdx, str....._buildtools_third_partylibc_trunkinclude_vector
lea r9, str.__n___size__
mov r8d, 0x591
call fcn.1401c469a
xor edi, edi
jmp 0x14004a6fb
mov rcx, r15
call fcn.140220540
mov qword [rbp], 0
jmp 0x14004b3e7
mov rcx, rax
shr rcx, 1
and eax, 1
or rax, rcx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
mov rcx, rdi
shr rcx, 1
mov eax, edi
and eax, 1
or rax, rcx
test rdi, rdi
js 0x14004aeac
cvtsi2ss xmm1, rdi
jmp 0x14004aeb5
cvtsi2ss xmm1, rax
addss xmm1, xmm1
mov rax, qword [rsp + 0x50]
movss xmm2, dword [rax + 0xa0]
je 0x14004bb58
mulss xmm1, xmm2
ucomiss xmm0, xmm1
ja 0x14004bb58
mov rcx, qword [r15]
mov rax, qword [rcx + r12*8]
test rax, rax
jne 0x14004b831
mov r8, qword [rsp + 0x50]
lea rax, [r8 + 0x90]
mov rdx, qword [r8 + 0x90]
mov qword [rbx], rdx
mov qword [r8 + 0x90], rbx
mov qword [rcx + r12*8], rax
mov rax, qword [rbx]
test rax, rax
je 0x14004af36
mov rax, qword [rax + 8]
lea rcx, [rdi - 1]
test rdi, rcx
je 0x14004bd2a
cmp rax, rdi
jb 0x14004af2c
xor edx, edx
div rdi
mov rax, rdx
shl rax, 3
add rax, qword [r15]
mov qword [rax], rbx
mov rax, qword [rsp + 0x50]
inc qword [rax + 0x98]
mov rbx, qword [rbx + 0x10]
mov r12d, dword [rsp + 0x44]
cmp rbx, r14
mov rbp, qword [rsp + 0x48]
mov r13, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x80]
je 0x14004af7b
mov rcx, qword [r14]
test rcx, rcx
je 0x14004af73
mov qword [r14 + 8], rcx
call fcn.14016eccc
mov rcx, r14
call fcn.14016eccc
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov r9, qword [rsp + 0x68]
lea rdi, [r9*8]
mov eax, dword [rsi + 0x1c]
test eax, eax
jne 0x14004b9c6
lea rax, [rsi + 0x1c]
movabs rcx, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0xb8], rcx
mov rdx, qword [r13 + 8]
mov qword [rsp + 0xa8], rdx
mov dword [rsp + 0xb0], 0x53215531
cmp r9d, 0x1fffffff
ja 0x14004ba62
mov r8d, edi
lea ecx, [r9*4]
mov dword [rsp + 0xb4], r8d
mov dword [rsp + 0xb8], 0
mov byte [rsp + 0xbc], 0
mov qword [rsp + 0xc0], rax
movaps xmm0, xmmword [0x140301d60]
movups xmmword [rsp + 0x90], xmm0
mov qword [rsp + 0x88], rdx
mov dword [rsp + 0x90], 0x53215531
cmp r9d, 0x1fffffff
ja 0x14004ba6f
mov dword [rsp + 0x94], edi
mov dword [rsp + 0x98], ecx
mov byte [rsp + 0x9c], 0
mov qword [rsp + 0xa0], rax
cmp r12d, 3
ja case.default.0x14004b070
lea r15, [rsi + 0x50]
mov eax, r12d
lea rcx, [0x14004bd7c]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
mov ecx, 0x28
call fcn.14016ecd4
mov r14, rax
mov qword [rax + 8], r15
mov dword [rax + 0x10], 0
lea rax, [0x140300b10]
mov qword [r14], rax
xorps xmm6, xmm6
movups xmmword [r14 + 0x18], xmm6
test r15, r15
je 0x14004bab3
mov rcx, r15
call fcn.140198c60
mov r13, rax
movups xmmword [rsp + 0x114], xmm6
movups xmmword [rsp + 0x108], xmm6
movups xmmword [rsp + 0xf8], xmm6
movups xmmword [rsp + 0xe8], xmm6
movups xmmword [rsp + 0xd8], xmm6
movaps xmm0, xmmword [0x140309930]
movups xmmword [rsp + 0xc8], xmm0
lea r12, [rsp + 0xe0]
test r13, r13
je 0x14004b131
lea eax, [r13*8]
mov rcx, r13
shr rcx, 0x1d
mov dword [rsp + 0xdc], ecx
mov dword [rsp + 0xd8], eax
mov r8, r13
cmp r13, 0x40
jae 0x14004b71d
mov dword [rsp + 0x120], r13d
mov rcx, r12
mov rdx, r15
call fcn.1401730b0
lea r15, [rsi + 0x20]
mov eax, dword [rsp + 0x120]
lea rcx, [rax + 1]
mov edi, dword [rsp + 0xd8]
mov ebp, dword [rsp + 0xdc]
mov byte [rsp + rax + 0xe0], 0x80
cmp rax, 0x38
jae 0x14004b77d
cmp rcx, 0x38
je 0x14004b179
mov r8d, 0x38
sub r8, rcx
add rcx, r12
xor edx, edx
call fcn.140173760
mov dword [rsp + 0x118], edi
mov dword [rsp + 0x11c], ebp
lea rcx, [rsp + 0xc8]
mov r8d, 1
mov rdx, r12
call fcn.14000ce40
mov rdi, qword [rsp + 0xc8]
mov ecx, 0x48
call fcn.14016ecd4
mov r12, rax
mov qword [rax + 8], 0
mov rax, qword [0x1403428e0]
and rax, r15
cmp rax, qword [0x1403428c8]
je 0x14004babb
mov qword [r12 + 0x10], r15
cmp qword [r15], 0
mov rbp, qword [rsp + 0x48]
jne 0x14004b1e7
bswap rdi
mov qword [r15], rdi
mov qword [r12 + 0x18], 0
mov rax, qword [0x1403428e0]
and rax, rbx
cmp rax, qword [0x1403428c8]
jne 0x14004b20b
mov rcx, rbx
call fcn.140156f20
mov qword [r12 + 0x20], rbx
mov rax, qword [rbx + 8]
sub rax, qword [rbx]
cmp rax, 4
je 0x14004bac8
lea r15, [r14 + 0x18]
lea rdi, [0x1402ffe18]
mov qword [r12], rdi
movups xmm0, xmmword [rsp + 0xa8]
movups xmm1, xmmword [rsp + 0xb8]
movups xmmword [r12 + 0x28], xmm0
movups xmmword [r12 + 0x38], xmm1
mov eax, dword [rsi + 0x34]
cmp eax, 0xffffffff
je 0x14004bacb
lea r13, [rsi + 0x38]
mov rcx, qword [r15]
mov qword [r15], r12
test rcx, rcx
jne 0x14004baf5
mov rax, qword [r12 + 0x10]
mov r12, qword [rax]
mov ecx, 0x48
call fcn.14016ecd4
mov r15, rax
mov qword [rax + 8], 0
mov rax, qword [0x1403428e0]
and rax, r13
cmp rax, qword [0x1403428c8]
je 0x14004bb0b
mov qword [r15 + 0x10], r13
cmp qword [r13], 0
jne 0x14004b2ae
mov qword [r13], r12
mov qword [r15 + 0x18], 0
mov rax, qword [0x1403428e0]
and rax, rbx
cmp rax, qword [0x1403428c8]
jne 0x14004b2d1
mov rcx, rbx
call fcn.140156f20
mov qword [r15 + 0x20], rbx
mov rax, qword [rbx + 8]
sub rax, qword [rbx]
cmp rax, 4
mov r13, qword [rsp + 0x38]
je 0x14004bb18
mov qword [r15], rdi
movups xmm0, xmmword [rsp + 0x88]
movups xmm1, xmmword [rsp + 0x98]
movups xmmword [r15 + 0x28], xmm0
movups xmmword [r15 + 0x38], xmm1
mov eax, dword [rsi + 0x4c]
cmp eax, 0xffffffff
je 0x14004bb1b
mov rcx, qword [r14 + 0x20]
mov qword [r14 + 0x20], r15
test rcx, rcx
jne 0x14004bb42
test r14, r14
je case.default.0x14004b070
mov eax, dword [rsp + 0x64]
lock or dword [r14 + 0x10], eax
mov qword [rbp], r14
mov rax, qword [rsp + 0x1d0]
mov r8, qword [r13 + 8]
mov rdx, qword [r8 + 8]
xor ecx, ecx
cmp rdx, rsi
ja 0x14004b3dc
sub rsi, rdx
cmp rsi, 0x10
jb 0x14004b3dc
mov r8d, dword [r8 + 0x14]
cmp rsi, r8
jae 0x14004b3dc
add esi, 0xfffffff0
cmp esi, 0x40
setb r9b
test sil, 7
setne r10b
or r10b, r9b
lea r9, [rsi + 0x11]
cmp r9, r8
seta r9b
test r10b, r10b
jne 0x14004b8e8
test r9b, r9b
jne 0x14004b3dc
mov r9d, dword [rdx + rsi + 4]
cmp r9d, 0xc8799269
jne 0x14004b3dc
add rdx, rsi
mov r9d, dword [rdx]
cmp r9d, 0x11
jb 0x14004b3dc
mov r9d, dword [rdx]
add r9d, esi
cmp r9d, r8d
ja 0x14004b3dc
mov r8d, dword [rdx + 8]
test rdx, rdx
sete cl
cmp r8d, 0xf1645913
jne 0x14004b8f0
test cl, cl
jne 0x14004b8f7
mov ecx, esi
test rax, rax
je 0x14004b3e3
mov dword [rax], ecx
mov dword [r13 + 0x50], ecx
mov rcx, qword [rsp + 0x128]
xor rcx, rsp
call fcn.140171860
mov rax, rbp
movaps xmm6, xmmword [rsp + 0x130]
add rsp, 0x148
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, 0x40
call fcn.14016ecd4
mov r14, rax
mov qword [rax + 8], r15
mov dword [rax + 0x10], 0
lea rax, [0x140300b10]
mov qword [r14], rax
xorps xmm6, xmm6
movups xmmword [r14 + 0x18], xmm6
test r15, r15
je 0x14004bbdf
mov rcx, r15
call fcn.140198c60
mov r13, rax
lea r12, [rsp + 0xe0]
movups xmmword [r12 + 0x34], xmm6
movups xmmword [r12 + 0x28], xmm6
movups xmmword [r12 + 0x18], xmm6
movups xmmword [r12 + 8], xmm6
movups xmmword [r12 - 8], xmm6
movaps xmm0, xmmword [0x140309930]
movups xmmword [r12 - 0x18], xmm0
test r13, r13
je 0x14004b4c9
lea eax, [r13*8]
mov rcx, r13
shr rcx, 0x1d
mov dword [rsp + 0xdc], ecx
mov dword [rsp + 0xd8], eax
mov r8, r13
cmp r13, 0x40
jae 0x14004b74d
mov dword [rsp + 0x120], r13d
mov rcx, r12
mov rdx, r15
call fcn.1401730b0
lea r15, [rsi + 0x20]
mov eax, dword [rsp + 0x120]
lea rcx, [rax + 1]
mov edi, dword [rsp + 0xd8]
mov ebp, dword [rsp + 0xdc]
mov byte [rsp + rax + 0xe0], 0x80
cmp rax, 0x38
jae 0x14004b7b2
cmp rcx, 0x38
je 0x14004b511
mov r8d, 0x38
sub r8, rcx
add rcx, r12
xor edx, edx
call fcn.140173760
lea r13, [rsp + 0xc8]
mov dword [r13 + 0x50], edi
mov dword [r13 + 0x54], ebp
mov r8d, 1
mov rcx, r13
mov rdx, r12
call fcn.14000ce40
mov rdi, qword [r13]
mov ecx, 0x48
call fcn.14016ecd4
mov r12, rax
mov qword [rax + 8], 0
mov rax, qword [0x1403428e0]
and rax, r15
cmp rax, qword [0x1403428c8]
je 0x14004bbe7
mov qword [r12 + 0x10], r15
cmp qword [r15], 0
mov rbp, qword [rsp + 0x48]
jne 0x14004b578
bswap rdi
mov qword [r15], rdi
mov qword [r12 + 0x18], 0
mov rax, qword [0x1403428e0]
and rax, rbx
cmp rax, qword [0x1403428c8]
jne 0x14004b59c
mov rcx, rbx
call fcn.140156f20
mov qword [r12 + 0x20], rbx
mov rax, qword [rbx + 8]
sub rax, qword [rbx]
cmp rax, 4
je 0x14004bbf4
lea r15, [r14 + 0x18]
lea rdi, [0x1402ffe18]
mov qword [r12], rdi
movups xmm0, xmmword [rsp + 0xa8]
movups xmm1, xmmword [rsp + 0xb8]
movups xmmword [r12 + 0x28], xmm0
movups xmmword [r12 + 0x38], xmm1
mov eax, dword [rsi + 0x34]
cmp eax, 0xffffffff
je 0x14004bbf7
lea r13, [rsi + 0x38]
mov rcx, qword [r15]
mov qword [r15], r12
test rcx, rcx
jne 0x14004bc21
mov rax, qword [r12 + 0x10]
mov r12, qword [rax]
mov ecx, 0x48
call fcn.14016ecd4
mov r15, rax
mov qword [rax + 8], 0
mov rax, qword [0x1403428e0]
and rax, r13
cmp rax, qword [0x1403428c8]
je 0x14004bc37
mov qword [r15 + 0x10], r13
cmp qword [r13], 0
jne 0x14004b63f
mov qword [r13], r12
mov qword [r15 + 0x18], 0
mov rax, qword [0x1403428e0]
and rax, rbx
cmp rax, qword [0x1403428c8]
jne 0x14004b662
mov rcx, rbx
call fcn.140156f20
mov qword [r15 + 0x20], rbx
mov rax, qword [rbx + 8]
sub rax, qword [rbx]
cmp rax, 4
mov r13, qword [rsp + 0x38]
je 0x14004bc44
mov qword [r15], rdi
movups xmm0, xmmword [rsp + 0x88]
movups xmm1, xmmword [rsp + 0x98]
movups xmmword [r15 + 0x28], xmm0
movups xmmword [r15 + 0x38], xmm1
mov eax, dword [rsi + 0x4c]
cmp eax, 0xffffffff
je 0x14004bc47
mov rcx, qword [r14 + 0x20]
mov qword [r14 + 0x20], r15
test rcx, rcx
jne 0x14004bc6e
lea rax, [0x140300bd0]
mov qword [r14], rax
mov rax, r14
add rax, 0x30
xorps xmm0, xmm0
movups xmmword [r14 + 0x30], xmm0
mov qword [r14 + 0x28], rax
jmp 0x14004b325
lea rax, [rsi + 0x38]
lea rcx, [rsi + 0x20]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rcx
lea rax, [rsp + 0x88]
mov qword [rsp + 0x20], rax
lea r14, [rsp + 0xc8]
lea r9, [rsp + 0xa8]
mov rcx, r14
mov rdx, r15
mov r8, rbx
call fcn.14004bd90
mov r14, qword [r14]
jmp 0x14004b325
shr r8, 6
lea rcx, [rsp + 0xc8]
mov rdx, r15
call fcn.14000ce40
mov r8, r13
and r8, 0x3f
je 0x14004b131
and r13, 0xffffffffffffffc0
add r15, r13
mov r13d, r8d
jmp 0x14004b11e
shr r8, 6
lea rcx, [rsp + 0xc8]
mov rdx, r15
call fcn.14000ce40
mov r8, r13
and r8, 0x3f
je 0x14004b4c9
and r13, 0xffffffffffffffc0
add r15, r13
mov r13d, r8d
jmp 0x14004b4b6
cmp eax, 0x3f
je 0x14004b795
mov r8d, 0x3f
sub r8, rax
add rcx, r12
xor edx, edx
call fcn.140173760
lea rcx, [rsp + 0xc8]
mov r8d, 1
mov rdx, r12
call fcn.14000ce40
xor ecx, ecx
jmp 0x14004b166
cmp eax, 0x3f
je 0x14004b7ca
mov r8d, 0x3f
sub r8, rax
add rcx, r12
xor edx, edx
call fcn.140173760
lea rcx, [rsp + 0xc8]
mov r8d, 1
mov rdx, r12
call fcn.14000ce40
xor ecx, ecx
jmp 0x14004b4fe
lea rax, [rsi + 0x38]
lea rcx, [rsi + 0x20]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rcx
lea rax, [rsp + 0x88]
mov qword [rsp + 0x20], rax
lea r14, [rsp + 0xc8]
lea r9, [rsp + 0xa8]
mov rcx, r14
mov rdx, r15
mov r8, rbx
call fcn.1400ac550
jmp 0x14004b715
xor r14d, r14d
jmp 0x14004b337
mov rcx, qword [rax]
mov qword [rbx], rcx
jmp 0x14004af33
mov al, 1
jmp 0x14004a444
cmp esi, 0x11
jb 0x14004b87d
lea edx, [rsi + r13]
mov eax, r13d
lock cmpxchg dword [r9 + 0x28], edx
mov r13d, eax
jne 0x14004a3f1
mov dword [r8], esi
mov dword [r8 + 4], 0xffffffff
jmp 0x14004a3f1
add r10, rsi
mov rcx, rsi
cmp r10, r11
jbe 0x14004a47e
mov rcx, r15
call fcn.140220540
mov rcx, qword [r15 + 0x30]
test rcx, rcx
je 0x14004b8a4
mov rax, qword [rcx]
mov rax, qword [rax + 0x28]
xor esi, esi
xor edx, edx
call qword [case.0x140211850.0]
jmp 0x14004a572
xor esi, esi
jmp 0x14004a572
mov eax, dword [r9 + 0x24]
mov ecx, eax
or ecx, 2
lock cmpxchg dword [r9 + 0x24], ecx
jne 0x14004b8af
jmp 0x14004b885
xor esi, esi
jmp 0x14004a57f
cmp ebx, 4
jne 0x14004a5e5
jmp 0x14004ae70
mov rax, qword [rcx]
mov rax, qword [rax + 0x28]
mov edx, r12d
call qword [case.0x140211850.0]
jmp 0x14004a50b
mov r9b, 1
jmp 0x14004b391
mov cl, 1
jmp 0x14004b3d2
xor ecx, ecx
jmp 0x14004b3dc
mov cl, 1
jmp 0x14004a7b7
xor eax, eax
jmp 0x14004a8ec
mov rdx, r14
call fcn.1401360d0
mov rbx, rax
mov rbp, qword [rsp + 0x48]
jmp 0x14004af84
lea rcx, [0x140352bb8]
call fcn.14006d330
test al, al
je 0x14004bd55
lea rdi, [0x140352bc0]
mov rcx, rdi
call fcn.140075520
lea rcx, [0x140352bb8]
mov rdx, rdi
xor r8d, r8d
mov r9, rcx
call fcn.14006d410
jmp 0x14004a924
lea rcx, [0x140352bb8]
call fcn.14006d330
test al, al
je 0x14004bd61
lea rbx, [0x140352bc0]
mov rcx, rbx
call fcn.140075520
lea rcx, [0x140352bb8]
mov rdx, rbx
xor r8d, r8d
mov r9, rcx
call fcn.14006d410
jmp 0x14004a94e
mov ecx, 0xc0
call fcn.14016ecd4
mov rcx, rax
call fcn.1400ce3a0
mov rax, qword [0x140352bc8]
jmp 0x14004a95e
mov r12d, dword [rsp + 0x44]
mov rbx, rbp
jmp 0x14004af4b
xor edx, edx
cmp eax, 0x40
jb 0x14004ba40
mov ecx, eax
and ecx, 7
jne 0x14004ba40
mov rcx, qword [rsp + 0x38]
mov rcx, qword [rcx + 8]
lea rdx, [rax + 0x10]
mov r8d, dword [rcx + 0x14]
cmp rdx, r8
ja 0x14004bd72
mov r9, qword [rcx + 8]
mov edx, dword [r9 + rax + 4]
cmp edx, 0xc8799269
jne 0x14004bd72
add r9, rax
mov edx, dword [r9]
cmp edx, 0x10
jb 0x14004bd72
mov r10d, dword [r9]
add r10d, eax
xor edx, edx
cmp r10d, r8d
ja 0x14004ba40
test r9, r9
je 0x14004ba40
mov edx, dword [r9]
cmp rdx, 0x11
jb 0x14004bd6d
add eax, edx
cmp eax, r8d
ja 0x14004bd6d
add rdx, 0xfffffffffffffff0
cmp rdx, rdi
mov rbp, qword [rsp + 0x48]
mov r13, qword [rsp + 0x38]
mov r12d, dword [rsp + 0x44]
mov r9, qword [rsp + 0x68]
jae 0x14004af9c
jmp 0x14004ae28
int3
int3
xor edi, edi
jmp 0x14004a708
mov r9b, 1
jmp 0x14004a751
mov al, 1
jmp 0x14004a76f
call fcn.140220540
xor r8d, r8d
jmp 0x14004a77b
xor r13d, r13d
jmp 0x14004b0b0
mov rcx, r15
call fcn.140156f20
jmp 0x14004b1d1
int3
mov rax, qword [r12 + 0x40]
mov eax, dword [rax]
test eax, eax
je 0x14004b258
mov rcx, r12
add rcx, 0x28
call fcn.14004cea0
mov qword [r12 + 0x18], rax
mov rax, qword [r12 + 0x18]
jmp 0x14004b258
mov rax, qword [rcx]
mov rax, qword [rax]
mov edx, 1
call qword [case.0x140211850.0]
jmp 0x14004b26b
mov rcx, r13
call fcn.140156f20
jmp 0x14004b29f
int3
mov rax, qword [r15 + 0x40]
mov eax, dword [rax]
test eax, eax
je 0x14004b314
mov rcx, r15
add rcx, 0x28
call fcn.14004cea0
mov qword [r15 + 0x18], rax
mov rax, qword [r15 + 0x18]
jmp 0x14004b314
mov rax, qword [rcx]
mov rax, qword [rax]
mov edx, 1
call qword [case.0x140211850.0]
jmp 0x14004b325
divss xmm0, xmm2
call fcn.14019036c
cvttss2si rcx, xmm0
mov rdx, rcx
subss xmm0, dword [0x1402eebd8]
sar rdx, 0x3f
cvttss2si rax, xmm0
and rax, rdx
or rax, rcx
lea rcx, [rdi + rdi]
mov edx, 1
cmp rdi, 3
jb 0x14004bb9b
lea r8, [rdi - 1]
xor edx, edx
test rdi, r8
setne dl
or rdx, rcx
cmp rdx, rax
cmovbe rdx, rax
mov rcx, r15
call fcn.1400e0de0
mov rax, qword [rsp + 0x50]
mov rdi, qword [rax + 0x88]
lea rax, [rdi - 1]
test rdi, rax
je 0x14004bc8e
cmp rdi, r13
ja 0x14004bc98
mov rax, r13
xor edx, edx
div rdi
mov r12, rdx
jmp 0x14004aed5
xor r13d, r13d
jmp 0x14004b454
mov rcx, r15
call fcn.140156f20
jmp 0x14004b562
int3
mov rax, qword [r12 + 0x40]
mov eax, dword [rax]
test eax, eax
je 0x14004b5e9
mov rcx, r12
add rcx, 0x28
call fcn.14004cea0
mov qword [r12 + 0x18], rax
mov rax, qword [r12 + 0x18]
jmp 0x14004b5e9
mov rax, qword [rcx]
mov rax, qword [rax]
mov edx, 1
call qword [case.0x140211850.0]
jmp 0x14004b5fc
mov rcx, r13
call fcn.140156f20
jmp 0x14004b630
int3
mov rax, qword [r15 + 0x40]
mov eax, dword [rax]
test eax, eax
je 0x14004b6a5
mov rcx, r15
add rcx, 0x28
call fcn.14004cea0
mov qword [r15 + 0x18], rax
mov rax, qword [r15 + 0x18]
jmp 0x14004b6a5
mov rax, qword [rcx]
mov rax, qword [rax]
mov edx, 1
call qword [case.0x140211850.0]
jmp 0x14004b6b6
and rax, qword [rsp + 0x70]
jmp 0x14004ab0c
mov eax, 0xffffffff
add eax, edi
and r13d, eax
mov r12, r13
jmp 0x14004aed5
cmp r13d, 0x11
jb 0x14004bcd9
lea edx, [rbx + r13]
mov eax, ebx
lock cmpxchg dword [r9 + 0x28], edx
mov ebx, eax
jne 0x14004ab88
mov dword [r8], r13d
mov dword [r8 + 4], 0xffffffff
jmp 0x14004ab88
add r10, r13
mov rcx, r13
cmp r10, r11
jbe 0x14004ac0d
mov rcx, r15
call fcn.140220540
mov rcx, qword [r15 + 0x30]
test rcx, rcx
je 0x14004ae70
mov rax, qword [rcx]
mov rax, qword [rax + 0x28]
xor edx, edx
call qword [case.0x140211850.0]
jmp 0x14004ae70
mov eax, dword [r9 + 0x24]
mov ecx, eax
or ecx, 2
lock cmpxchg dword [r9 + 0x24], ecx
jne 0x14004bd06
jmp 0x14004bce1
mov rax, qword [rcx]
mov rax, qword [rax + 0x28]
mov edx, r14d
call qword [case.0x140211850.0]
jmp 0x14004ac9b
and rax, rcx
jmp 0x14004af2c
mov rcx, qword [r14]
test rcx, rcx
je 0x14004bd43
mov qword [r14 + 8], rcx
call fcn.14016eccc
mov rcx, r14
call fcn.14016eccc
mov r13, qword [rsp + 0x38]
jmp 0x14004ae23
mov rdi, qword [0x140352bb8]
jmp 0x14004a924
mov rax, qword [0x140352bb8]
jmp 0x14004a94e
call fcn.140220540
xor edx, edx
jmp 0x14004ba40