Function at 0x180061e70
Capabilities:
Authenticate hmac
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x48]
sub rsp, 0x148
mov r15, qword [rbp + 0xb0]
lea rax, [r8 + 0x68]
mov qword [rbp - 0x38], rax
mov r14, rcx
mov rax, qword [rcx]
mov r12, rdx
mov rcx, qword [r8 + 8]
xor esi, esi
mov r11, qword [r15 + 0x50]
mov edi, r9d
mov qword [rbp - 0x58], rax
movzx eax, byte [r15 + 0x34]
imul rax, rax, 0x70
mov qword [rbp - 0x40], rcx
mov qword [rbp - 0x80], rsi
mov qword [rsp + 0x78], r11
mov qword [rsp + 0x68], rax
mov ebx, dword [rax + rcx + 0x4c]
lea rcx, [r8 + 0x290]
mov edx, ebx
mov dword [rsp + 0x40], ebx
call fcn.180065a60
mov r8, qword [rbp + 0xa0]
lea r9d, [rsi + 1]
not rax
mov ecx, edi
and rax, qword [rbp + 0xb8]
mov qword [r15 + 0x58], rax
mov r13d, dword [r14 + 0x44]
mov r10, qword [r8 + 0x58]
dec r13d
mov dword [r14 + 0x44], r13d
shr r10, cl
and r10d, r9d
mov dword [r15 + 0x10], r13d
mov dword [r15 + 0xc], r13d
mov eax, dword [r14 + 0x44]
dec eax
mov qword [rsp + 0x70], r10
mov dword [r14 + 0x44], eax
mov dword [rsp + 0x50], r13d
mov dword [rbp - 0x5c], eax
mov dword [r15 + 0x18], eax
cmp byte [r15 + 0x34], sil
jbe 0x180061f8f
mov rcx, qword [rsp + 0x68]
mov rax, qword [rbp - 0x40]
test byte [rcx + rax + 0x44], 8
je 0x180061f8f
mov r9d, dword [r14 + 0x38]
lea edx, [rsi + 0x46]
inc r9d
mov dword [rsp + 0x20], esi
mov dword [r14 + 0x38], r9d
xor r8d, r8d
mov rcx, r12
mov dword [r15], r9d
call fcn.180022394
mov r11, qword [rsp + 0x78]
lea r9d, [rsi + 1]
mov r10, qword [rsp + 0x70]
mov r8, qword [rbp + 0xa0]
mov edx, edi
test edi, edi
jle 0x180061fb0
mov eax, edx
lea rcx, [rax + rax*2]
shl rcx, 5
cmp dword [rcx + r8 + 0x398], esi
jne 0x180061fb0
sub edx, r9d
test edx, edx
jg 0x180061f95
movsxd rax, edx
mov edx, 0x10
lea rcx, [rax + rax*2]
mov rax, qword [rsp + 0x68]
shl rcx, 5
mov r9d, dword [rcx + r8 + 0x3a4]
mov rcx, qword [rbp - 0x40]
test byte [rax + rcx + 0x48], dl
je 0x180062085
mov ebx, dword [rax + rcx + 0x3c]
xor r9d, r9d
mov eax, dword [rax + rcx + 0x38]
mov r8d, ebx
mov rcx, r12
mov dword [rsp + 0x20], eax
lea edx, [r9 + 0xd]
call fcn.180022394
mov r9d, r13d
mov dword [rsp + 0x20], esi
mov r8d, ebx
mov edx, 0xe
mov rcx, r12
call fcn.180022394
mov dword [r15 + 0x3c], eax
mov eax, 0xb
mov byte [r15 + 0x35], al
mov r8, qword [rbp + 0xa0]
mov r11, qword [rsp + 0x68]
mov r9d, 1
mov rdx, qword [rbp - 0x80]
lea r10, [r8 + 0x68]
mov rax, rdx
neg rax
sbb r13d, r13d
add r13d, 2
mov edi, dword [r10 + 0x14]
mov r12d, esi
mov rbx, qword [r10 + 0x20]
test edi, edi
jle 0x1800638ea
movzx ecx, word [rbx + 0x12]
mov eax, 6
mov dword [rbp + 0xa8], esi
test al, cl
jne 0x1800638bf
mov rax, qword [rbx + 0x38]
test qword [r15 + 0x58], rax
je 0x1800637d2
mov byte [r8 + 0x46], r9b
jmp 0x1800638bf
mov edx, dword [r11 + 0x28]
bt edx, 0xa
jae 0x18006236a
movzx r13d, word [r11 + 0x2c]
mov rcx, r14
lea edx, [r13 + 2]
call fcn.18003a150
mov r8d, dword [r15 + 0xc]
mov ebx, esi
mov dword [rbp + 0x90], r8d
mov dword [rbp + 0xa8], eax
test r13d, r13d
je 0x180062142
mov r12, qword [rsp + 0x70]
add eax, 2
mov dword [rbp + 0xb0], eax
mov rdi, rsi
mov rcx, qword [r11 + 0x38]
mov rdx, qword [rdi + rcx]
test rdx, rdx
je 0x18006212a
lea r8d, [rax + rbx]
mov rcx, r14
mov eax, 1
test byte [rdx + 0x14], al
je 0x180062110
mov dword [rsp + 0x28], r8d
mov r9d, ebx
mov r8, r15
mov dword [rsp + 0x20], r12d
call fcn.180061414
mov eax, dword [r15 + 0x10]
mov dword [rbp + 0x90], eax
jmp 0x18006211f
mov rdx, qword [rdx]
mov r9d, eax
mov rdx, qword [rdx + 0x18]
call fcn.180061c04
mov r11, qword [rsp + 0x78]
mov eax, dword [rbp + 0xb0]
inc ebx
add rdi, 8
cmp ebx, r13d
jl 0x1800620d1
mov r12, qword [rbp + 0x98]
mov eax, dword [rbp + 0xa8]
mov r8d, dword [r11 + 0x18]
mov ebx, 0x46
mov edx, ebx
mov dword [rsp + 0x20], esi
mov r9d, eax
mov rcx, r12
call fcn.180022394
mov r9d, dword [rbp + 0xa8]
mov r8d, r13d
inc r9d
mov dword [rsp + 0x20], esi
mov edx, ebx
mov rcx, r12
call fcn.180022394
mov rbx, qword [rsp + 0x78]
mov edx, 9
mov r9d, dword [rbp + 0x90]
mov rcx, r12
mov r8d, dword [rsp + 0x40]
mov al, byte [rbx + 0x1c]
mov rbx, qword [rbx + 0x20]
neg al
mov eax, dword [rbp + 0xa8]
sbb edi, edi
mov dword [rsp + 0x20], eax
and edi, 0xfffffffa
call fcn.180022394
lea r9d, [rdi - 1]
mov r8, rbx
mov edx, eax
mov rcx, r12
call fcn.180022cb4
mov eax, dword [rsp + 0x40]
lea edi, [r13 - 1]
mov rdx, qword [rsp + 0x78]
mov r8, qword [rbp + 0xa0]
mov byte [rdx + 0x1c], sil
mov dword [r15 + 0x38], eax
mov al, byte [r8 + 0x45]
neg al
sbb cl, cl
and cl, 0x6e
add cl, 0x3c
mov byte [r15 + 0x35], cl
mov eax, dword [r12 + 0x90]
mov dword [r15 + 0x3c], eax
test edi, edi
js 0x180062024
movsxd rax, dword [r15 + 0x40]
lea r13, [r13*8 - 8]
mov qword [rbp + 0x90], r13
mov r10d, 1
lea rcx, [rax + rax*4]
mov eax, dword [rbp + 0xa8]
shl rcx, 2
add eax, 2
add eax, edi
mov qword [rbp + 0xb0], rcx
mov dword [rbp + 0xa8], eax
mov rax, qword [rdx + 0x38]
mov r13, qword [rax + r13]
mov eax, 0x10
cmp edi, eax
jae 0x180062270
movzx eax, word [rdx + 0x1e]
movzx ecx, di
shr ax, cl
test r10b, al
je 0x180062269
mov rdx, r13
mov rcx, r15
call fcn.1800610d0
jmp 0x180062337
mov rcx, qword [rbp + 0xb0]
test byte [r13 + 0x14], r10b
je 0x18006233c
mov rax, qword [rbp - 0x58]
cmp byte [rax + 0x61], sil
jne 0x1800622b9
mov rax, qword [r15 + 0x48]
sub rcx, 0x14
mov qword [rbp + 0xb0], rcx
mov edx, dword [rax + rcx + 4]
mov rcx, r12
call fcn.180022da0
mov ecx, dword [rax + 0xc]
movzx edx, byte [rax]
mov r9d, dword [rax + 8]
mov r8d, dword [rax + 4]
mov dword [rsp + 0x20], ecx
mov rcx, r12
call fcn.180022394
xor r9d, r9d
xor r8d, r8d
mov rcx, r14
lea edx, [r9 + 0x35]
call fcn.18003467c
mov rbx, rax
test rax, rax
je 0x180062331
mov rcx, qword [r13]
lea r8, [rbp - 0x20]
mov r13, qword [rbp - 0x58]
xor r9d, r9d
mov qword [rbp - 0x20], rsi
mov dword [rbp - 0x18], esi
mov rdx, qword [rcx + 0x10]
mov rcx, r13
mov qword [rax + 0x10], rdx
mov edx, 0xab
call fcn.1800344a8
mov qword [rbx + 0x18], rax
test rax, rax
je 0x180062322
mov ecx, dword [rbp + 0xa8]
xor r9d, r9d
mov dword [rax + 0x2c], ecx
mov rdx, rbx
mov r8d, dword [r15 + 0x18]
mov rcx, r14
call fcn.180039108
mov rdx, rbx
mov qword [rbx + 0x10], rsi
mov rcx, r13
call fcn.180034a7c
mov r10d, 1
mov rdx, qword [rsp + 0x78]
mov r13, qword [rbp + 0x90]
sub dword [rbp + 0xa8], r10d
sub r13, 8
sub edi, r10d
mov rcx, qword [rbp + 0xb0]
mov qword [rbp + 0x90], r13
jns 0x180062239
jmp 0x18006201d
test dl, 5
setne cl
bt edx, 8
setb al
test al, cl
je 0x180062414
mov rax, qword [r11 + 0x38]
mov r13d, 1
xor r9d, r9d
mov r8, r15
mov rcx, r14
mov rbx, qword [rax]
add dword [r14 + 0x38], r13d
mov rdx, rbx
mov edi, dword [r14 + 0x38]
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], r10d
call fcn.180061414
cmp eax, edi
je 0x1800623ce
test edi, edi
je 0x1800623ce
cmp byte [r14 + 0x1f], 8
jae 0x1800623ce
movzx ecx, byte [r14 + 0x1f]
mov dword [r14 + rcx*4 + 0xcc], edi
add byte [r14 + 0x1f], r13b
mov r9d, dword [r15 + 0x10]
mov edx, 0x1e
mov r8d, dword [rsp + 0x40]
mov rcx, r12
mov dword [rsp + 0x20], eax
call fcn.180022394
mov r8, qword [rbp + 0xa0]
mov r9, r13
mov r11, qword [rsp + 0x68]
mov byte [r15 + 0x35], 0xaa
mov rax, qword [rbx + 0x38]
test qword [r15 + 0x58], rax
jne 0x18006202f
or word [rbx + 0x12], 4
jmp 0x18006202f
mov ecx, 0x102
mov eax, edx
and eax, ecx
cmp eax, ecx
jne 0x1800626ad
mov dword [rbp + 0xb0], 0xaa
mov rbx, rsi
mov dword [rbp + 0x90], esi
mov rcx, rsi
test dl, 0x20
je 0x18006244f
mov rax, qword [r11 + 0x38]
mov r8d, 8
mov rcx, qword [rax]
jmp 0x180062452
mov r8, rsi
mov eax, 0x10
test al, dl
je 0x180062463
mov rax, qword [r11 + 0x38]
mov rbx, qword [r8 + rax]
test r10d, r10d
mov rdi, rcx
cmove rdi, rbx
cmove rbx, rcx
test rbx, rbx
je 0x18006255a
mov r13, qword [rbx]
mov dword [rbp + 0xa8], 0x18161719
mov rdx, qword [r13 + 0x18]
mov rcx, rdx
call fcn.180033f08
mov ecx, 1
cmp eax, ecx
jle 0x1800624f0
mov al, byte [r14 + 0x1f]
test al, al
jne 0x1800624ae
add dword [r14 + 0x38], ecx
mov ebx, dword [r14 + 0x38]
jmp 0x1800624bf
sub al, cl
movzx eax, al
mov byte [r14 + 0x1f], al
mov ebx, dword [r14 + rax*4 + 0xcc]
mov rdx, qword [r13 + 0x18]
mov r9d, ecx
mov rcx, r14
mov r8d, ebx
call fcn.180061c04
movzx eax, byte [r13]
mov ecx, 1
add rax, rcx
mov r11d, ebx
and eax, 2
or rax, rcx
mov cl, byte [rbp + rax + 0xa8]
jmp 0x180062519
lea r8, [rsp + 0x60]
mov rcx, r14
call fcn.1800388d8
mov rdx, rbx
mov rcx, r15
mov r11d, eax
call fcn.1800610d0
movzx r10d, byte [r13]
mov ebx, dword [rsp + 0x60]
mov cl, byte [rbp + r10 + 0x72]
mov r13d, dword [rsp + 0x50]
mov r9d, r13d
mov r8d, dword [rsp + 0x40]
movzx edx, cl
mov rcx, r12
mov dword [rsp + 0x20], r11d
call fcn.180022394
test ebx, ebx
je 0x180062578
cmp byte [r14 + 0x1f], 8
mov r10d, 1
jae 0x18006257e
movzx eax, byte [r14 + 0x1f]
mov dword [r14 + rax*4 + 0xcc], ebx
add byte [r14 + 0x1f], r10b
jmp 0x18006257e
mov r8d, dword [rsp + 0x40]
mov edx, r10d
xor edx, 1
mov dword [rsp + 0x20], esi
mov rcx, r12
lea edx, [rdx*4 + 0x20]
call fcn.180022394
mov r10d, 1
test rdi, rdi
je 0x180062608
mov rbx, qword [rdi]
mov r9d, r10d
add dword [r14 + 0x38], r10d
mov rcx, r14
mov eax, dword [r14 + 0x38]
mov r8d, eax
mov dword [rbp + 0x90], eax
mov rdx, qword [rbx + 0x18]
call fcn.180061c04
mov rcx, qword [rbx + 0x18]
call fcn.180033f08
mov r10d, 1
cmp eax, r10d
jg 0x1800625dd
mov al, byte [rbx]
sub al, 0x36
test al, 0xfd
jne 0x1800625dd
mov rax, qword [rsp + 0x70]
xor eax, r10d
lea edx, [rax*2 + 0x37]
mov dword [rbp + 0xb0], edx
jmp 0x1800625ef
mov rax, qword [rsp + 0x70]
lea eax, [rax*2 + 0x36]
mov dword [rbp + 0xb0], eax
mov rcx, qword [rbx + 0x18]
call fcn.180033f08
cmp eax, r10d
jg 0x180062608
mov rdx, rdi
mov rcx, r15
call fcn.1800610d0
mov ecx, dword [r12 + 0x90]
neg dword [rsp + 0x70]
mov edi, dword [rbp + 0xb0]
sbb al, al
mov dword [r15 + 0x3c], ecx
add al, 5
mov byte [r15 + 0x35], al
mov eax, dword [rsp + 0x40]
mov dword [r15 + 0x38], eax
cmp edi, 0xaa
je 0x18006201d
add dword [r14 + 0x38], r10d
mov r8d, eax
mov ebx, dword [r14 + 0x38]
mov edx, 0x80
mov r9d, ebx
mov dword [rsp + 0x20], esi
mov rcx, r12
call fcn.180022394
mov r8d, dword [rbp + 0x90]
mov r9d, r13d
mov edx, edi
mov dword [rsp + 0x20], ebx
mov rcx, r12
call fcn.180022394
movsxd rax, dword [r12 + 0x90]
mov r9d, 1
mov r8, qword [rbp + 0xa0]
mov r11, qword [rsp + 0x68]
test eax, eax
jle 0x18006202f
lea rcx, [rax + rax*2]
mov rax, qword [r12 + 0x88]
lea edx, [r9 + 0x52]
mov word [rax + rcx*8 - 0x16], dx
jmp 0x18006202f
bt edx, 9
jae 0x180062ff7
movzx eax, word [r11 + 0x1a]
mov r13, rsi
movzx edi, word [r11 + 0x18]
mov r9d, esi
mov word [rbp - 0x74], ax
mov ebx, edi
movzx eax, word [r11 + 0x1c]
mov r10b, sil
mov word [rbp - 0x78], ax
mov r8d, edi
mov rax, qword [r11 + 0x20]
mov qword [rbp - 0x80], rax
mov eax, dword [r15 + 8]
mov dword [rsp + 0x4c], eax
mov word [rbp - 0x60], di
mov qword [rbp - 0x68], rsi
mov qword [rbp - 0x70], rsi
mov qword [rbp - 0x50], rsi
mov byte [rbp + 0xa8], sil
mov byte [rsp + 0x58], sil
mov dword [rsp + 0x54], esi
mov dword [rsp + 0x44], ebx
test dl, 0x20
je 0x180062729
mov rax, qword [r11 + 0x38]
inc r8d
movzx r9d, word [rbp - 0x74]
mov r13, qword [rax + rdi*8]
mov qword [rbp - 0x68], r13
mov eax, 0x10
test al, dl
je 0x180062803
movzx ebx, word [rbp - 0x78]
mov rax, qword [r11 + 0x38]
cmp r9d, ebx
mov ecx, r8d
cmova ebx, r9d
mov rax, qword [rax + rcx*8]
mov ecx, 0x100
mov qword [rbp - 0x70], rax
test word [rax + 0x12], cx
je 0x1800627b3
mov r9d, dword [r14 + 0x38]
mov edx, 0x46
inc r9d
mov dword [rsp + 0x20], esi
mov dword [r14 + 0x38], r9d
mov rcx, r12
mov dword [r15 + 0x2c], r9d
lea r8d, [rdx - 0x45]
call fcn.180022394
mov eax, dword [r12 + 0x90]
mov r10b, sil
shl dword [r15 + 0x2c], 1
mov rcx, qword [rbp - 0x80]
mov r11, qword [rsp + 0x78]
mov dword [r15 + 0x30], eax
mov rax, qword [rcx + 0x38]
mov ecx, esi
cmp byte [rdi + rax], 1
mov rax, qword [rsp + 0x70]
sete cl
xor ecx, eax
or dword [r15 + 0x2c], ecx
mov rdx, rdi
mov r9d, ebx
test r13, r13
jne 0x180062801
mov rcx, qword [rbp - 0x80]
mov rax, qword [rcx + 8]
movsx r8, word [rax + rdx*2]
test r8d, r8d
js 0x1800627e6
mov rax, qword [rcx + 0x18]
mov rdx, r8
shl rdx, 5
mov rcx, qword [rax + 8]
cmp byte [rdx + rcx + 0x18], sil
je 0x1800627ec
cmp r8d, 0xfffffffe
jne 0x180062801
mov ecx, 1
mov r9d, ebx
mov r10b, cl
mov byte [rbp + 0xa8], cl
mov ebx, edi
jmp 0x180062808
mov ebx, edi
mov ecx, 1
mov eax, dword [r11 + 0x28]
and eax, 0x80030
cmp eax, 0x80000
jne 0x180062840
add dword [r14 + 0x38], ecx
mov r9d, ecx
mov eax, dword [r14 + 0x38]
mov r10b, cl
mov dword [r15 + 0x24], eax
dec dword [r14 + 0x44]
mov dword [rsp + 0x54], eax
mov eax, dword [r14 + 0x44]
mov dword [r15 + 0x28], eax
mov byte [rbp + 0xa8], cl
mov rax, qword [rbp - 0x80]
mov rcx, qword [rsp + 0x70]
cmp di, word [rax + 0x5e]
jae 0x180062864
mov rax, qword [rax + 0x38]
mov edx, esi
cmp byte [rdi + rax], sil
sete dl
cmp ecx, edx
je 0x18006286e
mov rax, qword [rbp - 0x80]
test ecx, ecx
je 0x180062899
cmp word [rax + 0x5e], di
jne 0x180062899
mov rax, qword [rbp - 0x70]
movzx edx, word [rbp - 0x78]
mov qword [rbp - 0x70], r13
mov r13, rax
mov qword [rbp - 0x68], rax
movzx eax, byte [rbp - 0x74]
mov word [rbp - 0x78], ax
mov byte [rsp + 0x58], r10b
mov byte [rbp + 0xa8], sil
mov word [rbp - 0x74], dx
lea rax, [rbp - 0x48]
mov r8d, ecx
mov rcx, r14
mov qword [rsp + 0x20], rax
mov rdx, r15
call fcn.18006186c
mov edx, eax
mov dword [rsp + 0x48], eax
mov rax, qword [rbp - 0x48]
test rax, rax
je 0x1800628da
cmp word [rbp - 0x78], si
je 0x1800628da
mov rcx, qword [rbp - 0x58]
lea rdx, [rax + rdi]
call fcn.180006ef4
mov edx, dword [rsp + 0x48]
mov qword [rbp - 0x50], rax
mov ecx, dword [rsp + 0x54]
test ecx, ecx
je 0x1800628e8
mov eax, dword [r15 + 0x28]
jmp 0x1800628ec
mov eax, dword [r15 + 0x10]
mov dword [rsp + 0x5c], eax
test r13, r13
je 0x180062908
test byte [r13 + 0x14], 0x28
jne 0x180062908
mov dword [rsp + 0x50], esi
mov r8d, 1
jmp 0x180062913
mov r8d, 1
mov dword [rsp + 0x50], r8d
mov rax, qword [rbp - 0x70]
test rax, rax
je 0x180062926
test byte [rax + 0x14], 0x28
mov dword [rsp + 0x60], esi
je 0x18006292b
mov dword [rsp + 0x60], r8d
mov eax, 0x49
test r13, r13
jne 0x180062955
test di, di
jne 0x180062955
mov edi, esi
mov r13b, byte [rbp + 0xa8]
test r13b, r13b
je 0x180062a2a
mov dword [rsp + 0x50], esi
jmp 0x180062a2e
mov edi, r8d
test r13, r13
je 0x18006293c
mov rax, qword [r13]
mov rcx, r14
mov r8d, dword [rsp + 0x44]
movzx r13d, word [rbp - 0x74]
add r8d, edx
mov r9d, r13d
mov rdi, qword [rax + 0x18]
mov rdx, rdi
call fcn.180061c04
mov rax, qword [rbp - 0x68]
mov ecx, 0x100
test word [rax + 0x12], cx
je 0x1800629b1
or edx, 0xffffffff
mov rcx, r12
call fcn.180022da0
mov ecx, dword [r15 + 0x2c]
shr ecx, 1
mov dword [rax + 0xc], ecx
mov cl, byte [r15 + 0x2c]
and cl, 1
movzx ecx, cl
mov word [rax + 2], cx
mov rcx, rdi
call fcn.180035bac
test eax, eax
je 0x1800629dd
mov r8d, dword [rsp + 0x44]
mov edx, 0x32
add r8d, dword [rsp + 0x48]
mov rcx, r12
mov r9d, dword [rsp + 0x5c]
mov dword [rsp + 0x20], esi
call fcn.180022394
mov rcx, qword [rbp - 0x48]
test rcx, rcx
je 0x1800629f9
movzx r8d, word [rbp - 0x60]
mov edx, r13d
add r8, rcx
mov rcx, rdi
call fcn.1800611c4
mov rcx, rdi
add ebx, r13d
call fcn.180033f08
mov r10d, 1
cmp eax, r10d
jg 0x180062a1d
mov rdx, qword [rbp - 0x68]
mov rcx, r15
call fcn.1800610d0
jmp 0x180062a22
mov dword [rsp + 0x50], r10d
mov r13b, sil
mov edi, r10d
jmp 0x180062a50
test ecx, ecx
je 0x180062a50
mov r9d, dword [rsp + 0x44]
xor r8d, r8d
add r9d, edx
mov dword [rsp + 0x20], esi
mov edx, eax
mov rcx, r12
call fcn.180022394
mov eax, 1
add ebx, eax
mov edi, eax
mov r9, qword [rbp - 0x48]
mov r8d, ebx
mov edx, dword [rsp + 0x48]
mov rcx, r14
movzx eax, r13b
sub r8d, eax
mov dword [rbp + 0xa8], eax
call fcn.180061140
mov rcx, qword [rsp + 0x78]
lea r13, [0x180000000]
cmp word [rcx + 0x2e], si
jbe 0x180062a8e
movzx eax, word [rcx + 0x2e]
cmp ebx, eax
je 0x180062b6f
test dword [rcx + 0x28], 0x40000
je 0x180062aaf
mov r8d, dword [rsp + 0x4c]
xor r9d, r9d
mov rcx, r12
mov dword [rsp + 0x20], esi
lea edx, [r9 + 0x77]
call fcn.180022394
mov eax, dword [rsp + 0x54]
test eax, eax
je 0x180062acf
mov edx, 0x46
mov dword [rsp + 0x20], esi
mov r9d, eax
mov rcx, r12
lea r8d, [rdx - 0x45]
call fcn.180022394
mov eax, dword [rsp + 0x50]
mov r9d, dword [rsp + 0x5c]
mov r8d, dword [rsp + 0x4c]
mov dword [rsp + 0x28], ebx
lea eax, [rax + rdi*2]
mov rdi, qword [rsp + 0x70]
lea ecx, [rdi + rax*2]
mov eax, dword [rsp + 0x48]
movzx edx, byte [rcx + r13 + 0x9a980]
mov rcx, r12
mov dword [rsp + 0x20], eax
call fcn.1800226cc
mov eax, dword [rsp + 0x54]
test eax, eax
je 0x180062b73
mov r9d, dword [r12 + 0x90]
xor r8d, r8d
add r9d, 2
mov dword [rsp + 0x20], esi
mov rcx, r12
lea edx, [r8 + 0xb]
call fcn.180022394
mov r9d, dword [rsp + 0x5c]
mov eax, 2
mov r8d, dword [rsp + 0x4c]
mov ecx, ebx
sub ecx, dword [rsp + 0x50]
mov dword [rsp + 0x28], ecx
cmp ebx, 1
lea edx, [rax + 4]
mov rcx, r12
cmova eax, edx
add eax, edi
mov edi, dword [rsp + 0x48]
mov dword [rsp + 0x20], edi
movzx edx, byte [rax + r13 + 0x9a980]
call fcn.1800226cc
mov eax, dword [rsp + 0x54]
jmp 0x180062b77
mov eax, dword [rsp + 0x54]
mov edi, dword [rsp + 0x48]
mov rcx, qword [rbp - 0x70]
test rcx, rcx
je 0x180062cfe
mov rax, qword [rcx]
mov rcx, r14
mov r13d, dword [rsp + 0x44]
movzx edi, word [rbp - 0x78]
add r13d, dword [rsp + 0x48]
mov r9d, edi
mov rbx, qword [rax + 0x18]
mov r8d, r13d
mov rdx, rbx
call fcn.180061c04
mov rax, qword [rbp - 0x70]
mov ecx, 0x100
test word [rax + 0x12], cx
je 0x180062bdb
or edx, 0xffffffff
mov rcx, r12
call fcn.180022da0
mov ecx, dword [r15 + 0x2c]
shr ecx, 1
mov dword [rax + 0xc], ecx
mov cl, byte [r15 + 0x2c]
and cl, 1
movzx ecx, cl
mov word [rax + 2], cx
mov rcx, rbx
call fcn.180035bac
test eax, eax
je 0x180062c00
mov r9d, dword [rsp + 0x5c]
mov r8d, r13d
mov edx, 0x32
mov dword [rsp + 0x20], esi
mov rcx, r12
call fcn.180022394
mov rax, qword [rbp - 0x50]
test rax, rax
je 0x180062c28
mov r8, rax
mov edx, edi
mov rcx, rbx
call fcn.1800611c4
mov r9, qword [rbp - 0x50]
mov r8d, edi
mov edx, r13d
mov rcx, r14
call fcn.180061140
add dword [rsp + 0x44], edi
mov rcx, rbx
call fcn.180033f08
mov ecx, 1
cmp eax, ecx
jg 0x180062cf5
mov rdx, qword [rbp - 0x70]
mov rcx, r15
call fcn.1800610d0
lea r13, [0x180000000]
mov ebx, dword [rsp + 0x44]
mov rax, qword [rbp - 0x48]
mov rdi, qword [rbp - 0x58]
test rax, rax
je 0x180062c70
mov rdx, rax
mov rcx, rdi
call fcn.180006aac
mov rax, qword [rbp - 0x50]
test rax, rax
je 0x180062c84
mov rdx, rax
mov rcx, rdi
call fcn.180006aac
mov eax, dword [r12 + 0x90]
mov dword [r15 + 0x3c], eax
test ebx, ebx
je 0x180062d32
mov eax, dword [rsp + 0x54]
test eax, eax
je 0x180062cc0
mov r9d, dword [r12 + 0x90]
mov r8d, eax
add r9d, 3
mov dword [rsp + 0x20], esi
mov edx, 0x14
mov rcx, r12
call fcn.180022394
mov eax, dword [rsp + 0x60]
mov rcx, r12
mov rdi, qword [rsp + 0x70]
mov r9d, dword [rsp + 0x5c]
mov r8d, dword [rsp + 0x4c]
mov dword [rsp + 0x28], ebx
lea eax, [rax + rdi*2]
movzx edx, byte [rax + r13 + 0x9cb9c]
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x20], eax
call fcn.1800226cc
jmp 0x180062d37
mov dword [rsp + 0x60], ecx
jmp 0x180062c4d
cmp byte [rsp + 0x58], sil
je 0x180062c54
mov ebx, dword [rsp + 0x44]
test eax, eax
jne 0x180062d2b
lea r9d, [rbx + rdi]
mov dword [rsp + 0x20], esi
xor r8d, r8d
lea edx, [rax + 0x49]
mov rcx, r12
call fcn.180022394
mov dword [rsp + 0x60], esi
inc ebx
jmp 0x180062c58
mov rdi, qword [rsp + 0x70]
mov eax, dword [rsp + 0x54]
test eax, eax
je 0x180062d99
mov r9d, dword [r12 + 0x90]
mov r8d, eax
add r9d, 2
mov dword [rsp + 0x20], esi
mov edx, 0x12
mov rcx, r12
call fcn.180022394
mov eax, dword [rbp + 0xa8]
mov rcx, r12
mov r9d, dword [rsp + 0x5c]
lea r8d, [rbx + rax]
lea eax, [rax + rdi*2]
mov dword [rsp + 0x28], r8d
movzx edx, byte [rax + r13 + 0x9cb9c]
mov eax, dword [rsp + 0x48]
mov r13d, dword [rsp + 0x4c]
mov r8d, r13d
mov dword [rsp + 0x20], eax
call fcn.1800226cc
jmp 0x180062d9e
mov r13d, dword [rsp + 0x4c]
mov rbx, qword [rsp + 0x78]
mov edi, 1
mov eax, dword [rbx + 0x28]
bt eax, 0x12
jae 0x180062dc9
mov r9d, edi
mov dword [rsp + 0x20], esi
mov r8d, r13d
lea edx, [rdi + 0x76]
mov rcx, r12
call fcn.180022394
mov eax, dword [rbx + 0x28]
test al, 0x40
mov rax, qword [rbp + 0xa0]
je 0x180062de3
test byte [rax + 0x40], 0x20
jne 0x180062de3
mov r10, qword [rbp - 0x80]
jmp 0x180062f56
mov r10, qword [rbp - 0x80]
mov edi, esi
mov rbx, qword [r10 + 0x18]
test byte [rbx + 0x40], 0x20
jne 0x180062e78
mov ecx, 0x400
test word [rax + 0x40], cx
jne 0x180062e2b
mov ecx, 0x1000
test word [rax + 0x40], cx
je 0x180062e13
cmp byte [rax + 0x45], 1
je 0x180062e2b
mov r9d, r13d
mov rdx, r10
mov r13d, dword [rsp + 0x40]
mov rcx, rax
mov r8d, r13d
call fcn.180061b14
jmp 0x180062e6a
mov eax, 1
mov dword [rsp + 0x20], esi
add dword [r14 + 0x38], eax
mov r8d, r13d
mov ebx, dword [r14 + 0x38]
mov edx, 0x87
mov r9d, ebx
mov rcx, r12
call fcn.180022394
mov r13d, dword [rsp + 0x40]
xor r9d, r9d
mov r8d, r13d
mov dword [rsp + 0x20], ebx
mov rcx, r12
lea edx, [r9 + 0x1f]
call fcn.180022394
mov rbx, qword [rsp + 0x78]
mov r10, qword [rbp - 0x80]
jmp 0x180062f5b
cmp dword [rsp + 0x40], r13d
je 0x180062f51
mov rbx, qword [rbx + 0x10]
jmp 0x180062e96
mov eax, dword [rbx + 0x64]
and al, 3
cmp al, 2
je 0x180062e9b
mov rbx, qword [rbx + 0x28]
test rbx, rbx
jne 0x180062e89
movzx edx, word [rbx + 0x5e]
mov rcx, r14
call fcn.18003a150
movzx ecx, word [rbx + 0x5e]
mov r13d, eax
cmp si, cx
jae 0x180062f25
mov r15d, dword [rsp + 0x4c]
or r14d, 0xffffffff
movzx r8d, word [r10 + 0x60]
mov edx, esi
test r8d, r8d
je 0x180062ee9
mov rax, qword [rbx + 8]
mov r9, qword [r10 + 8]
movsxd rcx, edi
movzx r10d, word [rax + rcx*2]
movsxd rax, edx
cmp r10w, word [r9 + rax*2]
je 0x180062eed
inc edx
cmp edx, r8d
jl 0x180062ed8
movzx edx, r14w
lea eax, [rdi + r13]
movsx r9d, dx
mov edx, 0x5a
mov dword [rsp + 0x20], eax
mov r8d, r15d
mov rcx, r12
call fcn.180022394
movzx ecx, word [rbx + 0x5e]
inc edi
mov r10, qword [rbp - 0x80]
cmp edi, ecx
jl 0x180062ebc
mov r14, qword [rbp + 0x90]
mov r15, qword [rbp + 0xb0]
mov r9d, dword [rbp - 0x5c]
mov edx, 0x1c
movzx eax, cx
mov rcx, r12
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r13d
mov r13d, dword [rsp + 0x40]
mov r8d, r13d
call fcn.1800226cc
mov edi, esi
jmp 0x180062e6a
mov rbx, qword [rsp + 0x78]
mov r13d, dword [rsp + 0x40]
mov r12d, dword [rsp + 0x4c]
cmp dword [r15], esi
jne 0x180062f83
mov rax, qword [rbp + 0xa0]
test byte [rax + 0x40], 0x20
jne 0x180062f83
mov r9, rax
mov r8d, r12d
mov edx, r13d
mov rcx, r10
call fcn.180061d04
mov rcx, qword [rbp - 0x80]
mov rcx, qword [rcx + 0x48]
test rcx, rcx
je 0x180062f9c
mov r8, qword [rbp - 0x38]
mov edx, r13d
call fcn.180061de0
mov eax, 0x1000
test dword [rbx + 0x28], eax
je 0x180062fad
mov byte [r15 + 0x35], 0xaa
jmp 0x180062fb9
neg dword [rsp + 0x70]
sbb al, al
add al, 5
mov byte [r15 + 0x35], al
mov dword [r15 + 0x38], r12d
mov r10d, 1
mov al, byte [rbx + 0x2a]
and al, r10b
mov byte [r15 + 0x36], al
test byte [rbx + 0x28], 0xf
jne 0x180062fd7
mov byte [r15 + 0x37], r10b
mov r8, qword [rbp + 0xa0]
mov r9, r10
mov r11, qword [rsp + 0x68]
test edi, edi
je 0x18006202f
mov qword [rbp - 0x80], rsi
jmp 0x18006202f
bt edx, 0xd
jae 0x180063765
dec dword [r14 + 0x44]
mov r9d, 1
add dword [r14 + 0x38], r9d
mov eax, dword [r14 + 0x34]
mov edx, dword [r14 + 0x38]
mov rcx, qword [rsp + 0x68]
mov dword [rsp + 0x44], eax
inc eax
mov dword [r14 + 0x34], eax
mov eax, dword [r14 + 0x44]
mov dword [rbp - 0x60], eax
mov rax, qword [rbp - 0x40]
mov qword [rbp - 0x50], rsi
mov dword [rsp + 0x4c], edx
mov dword [rsp + 0x50], esi
mov rcx, qword [rcx + rax + 0x28]
mov rax, qword [r11 + 0x38]
mov dword [rsp + 0x60], esi
mov dword [rsp + 0x54], esi
mov qword [rbp - 0x68], rsi
mov rax, qword [rax]
mov qword [rbp - 0x28], rax
mov qword [rsp + 0x70], rcx
mov rax, qword [rax + 0x28]
mov byte [r15 + 0x35], 0x42
mov dword [r15 + 0x38], edx
mov qword [rbp - 0x30], rax
cmp byte [r8 + 0x42], r9b
jbe 0x1800631f3
movzx ebx, byte [r8 + 0x42]
sub ebx, edi
sub ebx, r9d
movsxd rax, ebx
imul rcx, rax, 0x70
mov rax, qword [rbp - 0x58]
add rcx, 0x78
test rax, rax
je 0x1800630a4
mov rdx, rcx
mov rcx, rax
call fcn.180006d78
jmp 0x1800630a9
call fcn.18000690c
mov qword [rbp - 0x70], rax
mov r13, rax
test rax, rax
jne 0x1800630c1
mov rax, qword [rbp + 0xb8]
jmp 0x180063a84
mov r9d, 1
lea eax, [r9 + rbx]
movzx ecx, al
mov rax, qword [rsp + 0x68]
mov dword [r13 + 4], ecx
mov dword [r13], ecx
mov rcx, qword [rbp - 0x40]
movups xmm0, xmmword [rax + rcx + 8]
movups xmmword [r13 + 8], xmm0
movups xmm1, xmmword [rax + rcx + 0x18]
movups xmmword [r13 + 0x18], xmm1
movups xmm0, xmmword [rax + rcx + 0x28]
movups xmmword [r13 + 0x28], xmm0
movups xmm1, xmmword [rax + rcx + 0x38]
movups xmmword [r13 + 0x38], xmm1
movups xmm0, xmmword [rax + rcx + 0x48]
movups xmmword [r13 + 0x48], xmm0
movups xmm1, xmmword [rax + rcx + 0x58]
movups xmmword [r13 + 0x58], xmm1
movups xmm0, xmmword [rax + rcx + 0x68]
mov rax, qword [rbp + 0xa0]
movups xmmword [r13 + 0x68], xmm0
mov r8, qword [rax + 8]
cmp ebx, r9d
jl 0x1800631ae
lea r9, [r15 + 0x94]
mov r10d, ebx
mov r15d, 1
lea rdx, [r13 + 0x78]
movzx eax, byte [r9]
lea r9, [r9 + 0x60]
imul rcx, rax, 0x70
movups xmm0, xmmword [rcx + r8 + 8]
movups xmmword [rdx], xmm0
lea rdx, [rdx + 0x70]
movups xmm1, xmmword [rcx + r8 + 0x18]
movups xmmword [rdx - 0x60], xmm1
movups xmm0, xmmword [rcx + r8 + 0x28]
movups xmmword [rdx - 0x50], xmm0
movups xmm1, xmmword [rcx + r8 + 0x38]
movups xmmword [rdx - 0x40], xmm1
movups xmm0, xmmword [rcx + r8 + 0x48]
movups xmmword [rdx - 0x30], xmm0
movups xmm1, xmmword [rcx + r8 + 0x58]
movups xmmword [rdx - 0x20], xmm1
movups xmm0, xmmword [rcx + r8 + 0x68]
movups xmmword [rdx - 0x10], xmm0
sub r10, r15
jne 0x180063149
mov r15, qword [rbp + 0xb0]
lea r9d, [r10 + 1]
mov r8, qword [rbp + 0xa0]
mov rcx, qword [rsp + 0x70]
mov eax, 0x10
test byte [r8 + 0x40], al
jne 0x180063259
test byte [rcx + 0x40], 0x20
jne 0x1800631fd
add dword [r14 + 0x38], r9d
xor r8d, r8d
mov eax, dword [r14 + 0x38]
mov rcx, r12
mov r9d, eax
mov dword [rsp + 0x50], eax
mov dword [rsp + 0x20], esi
lea edx, [r8 + 0x49]
call fcn.180022394
jmp 0x180063248
mov r13, qword [r8 + 8]
mov qword [rbp - 0x70], r13
jmp 0x1800631ba
mov rbx, qword [rcx + 0x10]
jmp 0x180063210
mov eax, dword [rbx + 0x64]
and al, 3
cmp al, 2
je 0x180063215
mov rbx, qword [rbx + 0x28]
test rbx, rbx
jne 0x180063203
mov edi, dword [r14 + 0x34]
mov edx, 0x70
mov r8d, edi
mov dword [rsp + 0x50], edi
mov rcx, r12
mov dword [rsp + 0x20], esi
lea eax, [rdi + 1]
mov dword [r14 + 0x34], eax
movzx r9d, word [rbx + 0x5e]
call fcn.180022394
mov rdx, rbx
mov rcx, r14
call fcn.180022d74
mov eax, 1
add dword [r14 + 0x38], eax
mov eax, dword [r14 + 0x38]
mov dword [rsp + 0x60], eax
mov r9d, dword [rsp + 0x4c]
xor r8d, r8d
mov rcx, r12
mov dword [rsp + 0x20], esi
lea edx, [r8 + 0x46]
call fcn.180022394
mov dword [rsp + 0x78], eax
mov rax, qword [rbp - 0x38]
cmp dword [rax + 0x14], 1
jle 0x180063335
mov rax, qword [rbp - 0x28]
mov edi, esi
mov r15, qword [rbp - 0x58]
mov rbx, rsi
mov r12, qword [rbp - 0x38]
mov r13, rsi
mov r8, qword [r12 + 0x20]
movsxd rcx, edi
shl rcx, 6
add rcx, r8
mov rdx, qword [r8 + rbx]
cmp rcx, rax
je 0x1800632f5
mov ecx, 6
test byte [r8 + rbx + 0x12], cl
jne 0x1800632f5
mov ecx, 0x1fff
test word [r8 + rbx + 0x14], cx
je 0x1800632f5
test rdx, rdx
je 0x1800632dd
xor r9d, r9d
xor r8d, r8d
mov rcx, r15
call fcn.180034c4c
jmp 0x1800632e0
mov rax, rsi
mov r8, rax
mov rdx, r13
mov rcx, r14
call fcn.18003477c
mov r13, rax
mov rax, qword [rbp - 0x28]
inc edi
add rbx, 0x40
cmp edi, dword [r12 + 0x14]
jl 0x180063297
mov r15, qword [rbp + 0xb0]
test r13, r13
mov r12, qword [rbp + 0x98]
mov qword [rbp - 0x68], r13
mov r13, qword [rbp - 0x70]
je 0x180063335
mov r9, qword [rbp - 0x68]
xor r8d, r8d
mov edx, 0x1002c
mov rcx, r14
call fcn.18003467c
mov qword [rbp - 0x68], rax
mov rax, qword [rbp + 0xa0]
lea r8, str.MULTI_INDEX_OR
mov ebx, 0x400
mov edx, 1
mov rcx, r14
movzx eax, word [rax + 0x40]
and ax, bx
or ax, 0x20
mov word [rbp + 0xa8], ax
call fcn.1800225b0
mov rax, qword [rbp - 0x30]
mov edi, esi
mov dword [rsp + 0x48], esi
cmp dword [rax + 0x14], esi
jle 0x1800636af
mov edx, dword [rsp + 0x40]
mov rcx, rsi
mov qword [rbp - 0x48], rcx
mov rax, qword [rax + 0x20]
cmp dword [rcx + rax + 0x1c], edx
je 0x18006339a
test word [rcx + rax + 0x14], bx
je 0x18006368d
mov rbx, qword [rcx + rax]
mov r15d, esi
mov rax, qword [rbp - 0x68]
mov dword [rbp - 0x78], esi
test rax, rax
je 0x1800633b4
mov qword [rax + 0x10], rbx
mov rbx, rax
lea r9d, [rdi + 1]
mov edx, 1
lea r8, str.INDEX__d
mov rcx, r14
call fcn.1800225b0
mov eax, dword [rsp + 0x44]
xor r9d, r9d
mov dword [rsp + 0x30], eax
mov r8, rbx
movzx eax, word [rbp + 0xa8]
mov rdx, r13
mov word [rsp + 0x28], ax
mov rcx, r14
mov qword [rsp + 0x20], rsi
call fcn.18006a190
mov qword [rbp - 0x20], rax
mov rbx, rax
test rax, rax
je 0x180063680
xor r9d, r9d
lea r8, [rax + 0x398]
mov rdx, r13
mov rcx, r14
call fcn.180060cb4
mov rax, qword [rbp + 0xa0]
mov ecx, 0x10
test byte [rax + 0x40], cl
jne 0x18006355f
mov rax, qword [rbp - 0x30]
mov r13d, edi
mov ecx, dword [rax + 0x14]
mov rax, qword [rsp + 0x70]
dec ecx
cmp edi, ecx
mov ecx, 0xffffffff
cmove r13d, ecx
test byte [rax + 0x40], 0x20
mov dword [rbp - 0x74], r13d
jne 0x180063499
mov r15d, dword [rsp + 0x60]
mov r9d, ecx
mov r8d, dword [rsp + 0x40]
mov rcx, r12
mov rdx, rax
mov dword [rsp + 0x20], r15d
call fcn.1800375a0
mov r8d, dword [rsp + 0x50]
xor r9d, r9d
mov dword [rsp + 0x28], r13d
mov rcx, r12
mov dword [rsp + 0x20], r15d
lea edx, [r9 + 0x2a]
call fcn.1800226cc
mov r15d, eax
jmp 0x18006355b
mov rbx, qword [rax + 0x10]
jmp 0x1800634ac
mov eax, dword [rbx + 0x64]
and al, 3
cmp al, 2
je 0x1800634b1
mov rbx, qword [rbx + 0x28]
test rbx, rbx
jne 0x18006349f
movzx edi, word [rbx + 0x5e]
mov rcx, r14
mov edx, edi
call fcn.18003a150
mov dword [rsp + 0x5c], eax
mov r15, rsi
test edi, edi
je 0x180063511
mov r13, qword [rsp + 0x70]
mov r14d, eax
mov rcx, qword [rbx + 8]
mov rdx, r13
mov r8d, dword [rsp + 0x40]
mov dword [rsp + 0x20], r14d
movsx r9d, word [rcx + r15*2]
mov rcx, r12
call fcn.1800375a0
mov eax, 1
add r14d, eax
add r15, rax
cmp r15, rdi
jl 0x1800634d2
mov r14, qword [rbp + 0x90]
xor esi, esi
mov r13d, dword [rbp - 0x74]
mov eax, dword [rsp + 0x5c]
test r13d, r13d
je 0x1800635f6
mov r8d, dword [rsp + 0x50]
xor r9d, r9d
mov dword [rsp + 0x28], edi
mov rcx, r12
mov dword [rsp + 0x20], eax
lea edx, [r9 + 0x1d]
call fcn.1800226cc
mov r15d, eax
test r13d, r13d
jns 0x1800635fa
mov ebx, dword [rsp + 0x5c]
mov r8d, edi
mov edx, ebx
mov rcx, r14
call fcn.18003a1a4
mov edi, dword [rsp + 0x48]
mov rbx, qword [rbp - 0x20]
mov r13, qword [rbp - 0x70]
mov r9d, dword [rbp - 0x60]
mov edx, 0xc
mov r8d, dword [rsp + 0x4c]
mov rcx, r12
mov dword [rsp + 0x20], esi
call fcn.180022394
test r15d, r15d
je 0x180063594
mov edx, r15d
mov rcx, r12
call fcn.180022da0
mov ecx, dword [r12 + 0x90]
mov dword [rax + 8], ecx
cmp byte [rbx + 0x46], sil
mov ecx, 1
mov eax, dword [rsp + 0x54]
mov rdx, qword [rbx + 0x3e8]
cmovne eax, ecx
mov dword [rsp + 0x54], eax
test dword [rdx + 0x28], 0x200
je 0x18006366c
test edi, edi
je 0x1800635ce
mov rax, qword [rbp - 0x50]
cmp qword [rdx + 0x20], rax
jne 0x18006366c
mov rax, qword [rsp + 0x70]
test byte [rax + 0x40], 0x20
je 0x1800635ec
mov rax, qword [rdx + 0x20]
mov ecx, dword [rax + 0x64]
and cl, 3
cmp cl, 2
je 0x18006366c
mov r15, qword [rdx + 0x20]
mov qword [rbp - 0x50], r15
jmp 0x180063670
mov r15d, dword [rbp - 0x78]
mov eax, dword [rsp + 0x60]
mov r9d, edi
mov ebx, dword [rsp + 0x5c]
mov edx, 0x5c
mov r8d, ebx
mov dword [rsp + 0x20], eax
mov rcx, r12
call fcn.180022394
mov r9d, dword [rsp + 0x60]
mov edx, 0x84
mov r8d, dword [rsp + 0x50]
mov rcx, r12
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], ebx
call fcn.1800226cc
test r13d, r13d
je 0x180063546
movsxd rax, dword [r12 + 0x90]
test eax, eax
jle 0x180063546
lea rcx, [rax + rax*2]
mov edx, 0x10
mov rax, qword [r12 + 0x88]
mov word [rax + rcx*8 - 0x16], dx
jmp 0x180063546
mov qword [rbp - 0x50], rsi
mov rcx, rbx
call fcn.18006ad68
mov rcx, r14
call fcn.180022638
mov edx, dword [rsp + 0x40]
mov ebx, 0x400
mov rcx, qword [rbp - 0x48]
mov rax, qword [rbp - 0x30]
inc edi
add rcx, 0x40
mov dword [rsp + 0x48], edi
mov qword [rbp - 0x48], rcx
cmp edi, dword [rax + 0x14]
jl 0x180063385
mov r15, qword [rbp + 0xb0]
mov rcx, r14
call fcn.180022638
mov rax, qword [rbp - 0x50]
mov qword [r15 + 0x40], rax
test rax, rax
je 0x1800636cc
mov eax, dword [rsp + 0x44]
mov dword [r15 + 8], eax
mov rax, qword [rbp - 0x68]
mov rbx, qword [rbp - 0x58]
test rax, rax
je 0x1800636e8
mov rdx, rax
mov qword [rax + 0x10], rsi
mov rcx, rbx
call fcn.180034a7c
mov edx, dword [rsp + 0x78]
mov rcx, r12
call fcn.180022da0
mov ecx, dword [r12 + 0x90]
xor r8d, r8d
mov dword [rsp + 0x20], esi
mov dword [rax + 4], ecx
mov rcx, r12
mov r9d, dword [r15 + 0xc]
lea edx, [r8 + 0xb]
call fcn.180022394
mov edx, dword [rbp - 0x60]
mov rcx, r12
call fcn.1800227b0
mov r8, qword [rbp + 0xa0]
mov eax, 1
cmp byte [r8 + 0x42], al
jbe 0x18006374a
test r13, r13
je 0x18006374a
mov rdx, r13
mov rcx, rbx
call fcn.180006aac
mov r8, qword [rbp + 0xa0]
cmp dword [rsp + 0x54], esi
jne 0x180062024
mov rdx, qword [rbp - 0x28]
mov rcx, r15
call fcn.1800610d0
jmp 0x18006201d
mov r11, qword [rsp + 0x68]
mov rax, qword [rbp - 0x40]
test byte [r11 + rax + 0x48], 0x20
je 0x180063780
mov byte [r15 + 0x35], 0xaa
jmp 0x180062029
mov ecx, r10d
lea rdx, [0x180000000]
mov r8d, ebx
mov dword [r15 + 0x38], ebx
mov dword [rsp + 0x20], esi
mov al, byte [rcx + rdx + 0x9b954]
movzx edx, byte [rcx + rdx + 0x9e0f4]
mov rcx, r12
mov byte [r15 + 0x35], al
call fcn.180022394
mov r8, qword [rbp + 0xa0]
mov r9d, 1
mov r11, qword [rsp + 0x68]
add eax, r9d
mov dword [r15 + 0x3c], eax
mov byte [r15 + 0x37], r9b
jmp 0x18006202f
mov r8, qword [rbp - 0x40]
mov rax, qword [rbx]
mov qword [rbp + 0xb0], rax
test byte [r11 + r8 + 0x44], 8
je 0x1800637f2
test byte [rax + 4], r9b
je 0x1800638bf
cmp r13d, r9d
jne 0x180063819
mov r8, rdx
mov rcx, rax
mov edx, dword [r15 + 4]
call fcn.180039d64
mov r9d, 1
test eax, eax
jne 0x18006381f
lea r12d, [r9 + 1]
jmp 0x1800638bf
cmp r13d, 3
jge 0x18006383e
movzx ecx, word [rbx + 0x12]
bt cx, 0xc
jae 0x18006383e
test r12d, r12d
jne 0x1800638bf
mov r12d, 3
jmp 0x1800638bf
bt cx, 9
jae 0x180063876
mov edx, dword [r15 + 0x2c]
test edx, edx
je 0x180063876
mov rcx, qword [rbp + 0x98]
mov r8d, edx
and edx, r9d
shr r8d, 1
xor r9d, r9d
mov dword [rsp + 0x20], esi
lea edx, [rdx*2 + 0x12]
call fcn.180022394
mov dword [rbp + 0xa8], eax
mov r8d, dword [rbp - 0x5c]
mov r9d, 0x10
mov rdx, qword [rbp + 0xb0]
mov rcx, r14
call fcn.180039108
mov eax, dword [rbp + 0xa8]
test eax, eax
je 0x1800638b4
mov r9, qword [rbp + 0x98]
mov edx, eax
mov rcx, r9
call fcn.180022da0
mov ecx, dword [r9 + 0x90]
mov dword [rax + 8], ecx
or word [rbx + 0x12], 4
mov r9d, 1
mov r8, qword [rbp + 0xa0]
sub edi, r9d
mov rdx, qword [rbp - 0x80]
add rbx, 0x40
mov r11, qword [rsp + 0x68]
test edi, edi
jg 0x180062057
mov r10, qword [rbp - 0x38]
mov rbx, qword [r10 + 0x20]
mov edi, dword [r10 + 0x14]
mov r8, qword [rbp + 0xa0]
mov r13d, r12d
mov r11, qword [rsp + 0x68]
test r12d, r12d
jg 0x180062044
mov r13d, 1
lea r12d, [r13 + 5]
test edi, edi
jle 0x180063a13
add rbx, 0x14
test byte [rbx - 2], r12b
jne 0x180063a00
movzx eax, word [rbx]
mov edx, 0xb
test al, 0x82
setne cl
bt ax, dx
setb al
test al, cl
je 0x180063a00
mov eax, dword [rsp + 0x40]
cmp dword [rbx + 8], eax
jne 0x180063a00
cmp dword [r15], esi
jne 0x180063a00
mov r9, qword [rbp + 0xb8]
mov edx, eax
mov r8d, dword [rbx + 0x14]
mov rcx, r10
mov r13, qword [rbx - 0x14]
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x20], 0x83
call fcn.180065d80
mov rdx, rax
test rax, rax
je 0x1800639fa
test byte [rax + 0x12], 4
jne 0x1800639fa
mov r8d, 1
test byte [rax + 0x14], r8b
je 0x1800639b0
mov rax, qword [rax]
test dword [rax + 4], 0x800
je 0x1800639b0
mov rax, qword [rax + 0x20]
mov rcx, qword [rax]
cmp dword [rcx], r8d
jg 0x180063a98
mov rax, qword [rdx]
mov r9d, 0x10
mov r8d, dword [rbp - 0x5c]
lea rdx, [rbp - 0x10]
mov rcx, r14
movups xmm0, xmmword [rax]
movaps xmmword [rbp - 0x10], xmm0
movups xmm1, xmmword [rax + 0x10]
movaps xmmword [rbp], xmm1
movups xmm0, xmmword [rax + 0x20]
movaps xmmword [rbp + 0x10], xmm0
movups xmm1, xmmword [rax + 0x30]
movaps xmmword [rbp + 0x20], xmm1
movsd xmm0, qword [rax + 0x40]
movsd qword [rbp + 0x30], xmm0
mov rax, qword [r13 + 0x10]
mov qword [rbp], rax
call fcn.180039108
mov r13d, 1
mov r10, qword [rbp - 0x38]
sub edi, r13d
add rbx, 0x40
test edi, edi
jg 0x180063918
cmp dword [r15], esi
je 0x180063a80
mov rcx, qword [rbp + 0x98]
mov r8d, r13d
mov r9d, dword [r15]
mov edx, 0x46
mov dword [rsp + 0x20], esi
mov eax, dword [rcx + 0x90]
mov dword [r15 + 0x1c], eax
call fcn.180022394
mov rdi, qword [rbp - 0x38]
mov rbx, qword [rdi + 0x20]
cmp dword [rdi + 0x14], esi
jle 0x180063a80
test byte [rbx + 0x12], r12b
jne 0x180063a74
mov rax, qword [rbx + 0x38]
test qword [r15 + 0x58], rax
jne 0x180063a74
mov r8d, dword [rbp - 0x5c]
mov r9d, 0x10
mov rdx, qword [rbx]
mov rcx, r14
call fcn.180039108
or word [rbx + 0x12], 4
add esi, r13d
add rbx, 0x40
cmp esi, dword [rdi + 0x14]
jl 0x180063a4a
mov rax, qword [r15 + 0x58]
add rsp, 0x148
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov r13, r8
jmp 0x180063a00