Function at 0x1401858f8
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x78]
sub rsp, 0x138
mov r15, qword [rbp + 0xa0]
lea rax, [r8 + 0x68]
mov qword [rbp - 0x40], rax
mov r14, rcx
mov rax, qword [rcx]
mov r12, rdx
mov qword [rbp - 0x58], rax
xor esi, esi
movzx eax, byte [r15 + 0x34]
mov edi, r9d
mov r11, qword [r15 + 0x50]
mov rbx, r8
imul rcx, rax, 0x70
mov rax, qword [r8 + 8]
add rcx, 8
mov qword [rsp + 0x78], rsi
add rax, rcx
mov qword [rsp + 0x68], r11
mov qword [rbp - 0x48], rax
lea rcx, [r8 + 0x290]
mov eax, dword [rax + 0x44]
mov edx, eax
mov dword [rsp + 0x40], eax
call fcn.140188174
mov r8, qword [rbp - 0x48]
lea r9d, [rsi + 1]
not rax
mov ecx, edi
and rax, qword [rbp + 0xa8]
mov qword [r15 + 0x58], rax
mov r13d, dword [r14 + 0x44]
mov r10, qword [rbx + 0x60]
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 + 0x54], r13d
mov dword [rbp - 0x60], eax
mov dword [r15 + 0x18], eax
cmp byte [r15 + 0x34], sil
jbe 0x140185a0c
test byte [r8 + 0x3c], 8
je 0x140185a0c
mov r9d, dword [r14 + 0x38]
lea edx, [rsi + 0x45]
inc r9d
mov dword [rsp + 0x20], esi
mov dword [r14 + 0x38], r9d
xor r8d, r8d
mov rcx, r12
mov dword [r15], r9d
call fcn.140178330
mov r11, qword [rsp + 0x68]
lea r9d, [rsi + 1]
mov r10, qword [rsp + 0x70]
mov r8, qword [rbp - 0x48]
mov edx, edi
test edi, edi
jle 0x140185a2c
mov eax, edx
lea rcx, [rax + rax*2]
shl rcx, 5
cmp dword [rcx + rbx + 0x398], esi
jne 0x140185a2c
sub edx, r9d
test edx, edx
jg 0x140185a12
movsxd rax, edx
lea rcx, [rax + rax*2]
mov eax, 0x10
shl rcx, 5
mov r9d, dword [rcx + rbx + 0x3a4]
test byte [r8 + 0x40], al
je 0x140185af4
mov eax, dword [r8 + 0x30]
xor r9d, r9d
mov ebx, dword [r8 + 0x34]
mov rcx, r12
mov r8d, ebx
mov dword [rsp + 0x20], eax
lea edx, [r9 + 0xd]
call fcn.140178330
mov r9d, r13d
mov dword [rsp + 0x20], esi
mov r8d, ebx
mov edx, 0xe
mov rcx, r12
call fcn.140178330
mov dword [r15 + 0x3c], eax
mov eax, 0xb
mov byte [r15 + 0x35], al
mov rdx, qword [rbp + 0x90]
mov r11d, 1
mov r8, qword [rsp + 0x78]
lea r10, [rdx + 0x68]
mov rax, r8
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 0x140187363
movzx ecx, word [rbx + 0x12]
mov eax, 6
mov dword [rbp + 0x98], esi
test al, cl
jne 0x14018733c
mov rax, qword [rbx + 0x38]
test qword [r15 + 0x58], rax
je 0x140187254
or dword [rdx + 0x44], 2
jmp 0x14018733c
mov edx, dword [r11 + 0x28]
bt edx, 0xa
jae 0x140185dfd
movzx r13d, word [r11 + 0x2c]
mov rcx, r14
lea edx, [r13 + 2]
call fcn.140165754
mov r8d, dword [r15 + 0xc]
mov ebx, esi
mov dword [rsp + 0x48], r8d
mov dword [rbp + 0x98], eax
test r13d, r13d
je 0x140185bad
mov r12, qword [rsp + 0x70]
add eax, 2
mov dword [rbp + 0x80], eax
mov rdi, rsi
mov rcx, qword [r11 + 0x38]
mov rdx, qword [rdi + rcx]
test rdx, rdx
je 0x140185b95
lea r8d, [rbx + rax]
mov rcx, r14
mov eax, 1
test byte [rdx + 0x14], al
je 0x140185b7b
mov dword [rsp + 0x28], r8d
mov r9d, ebx
mov r8, r15
mov dword [rsp + 0x20], r12d
call fcn.140107930
mov eax, dword [r15 + 0x10]
mov dword [rsp + 0x48], eax
jmp 0x140185b8a
mov rdx, qword [rdx]
mov r9d, eax
mov rdx, qword [rdx + 0x18]
call fcn.140107d88
mov r11, qword [rsp + 0x68]
mov eax, dword [rbp + 0x80]
inc ebx
add rdi, 8
cmp ebx, r13d
jl 0x140185b3e
mov r12, qword [rbp + 0x88]
mov eax, dword [rbp + 0x98]
mov r8d, dword [r11 + 0x18]
mov ebx, 0x45
mov edx, ebx
mov dword [rsp + 0x20], esi
mov r9d, eax
mov rcx, r12
call fcn.140178330
mov r9d, dword [rbp + 0x98]
mov r8d, r13d
inc r9d
mov dword [rsp + 0x20], esi
mov edx, ebx
mov rcx, r12
call fcn.140178330
mov rbx, qword [rsp + 0x68]
mov edx, 9
mov r9d, dword [rsp + 0x48]
mov rcx, r12
mov r8d, dword [rsp + 0x40]
mov al, byte [rbx + 0x1c]
mov rbx, qword [rbx + 0x20]
neg al
mov eax, dword [rbp + 0x98]
sbb edi, edi
mov dword [rsp + 0x20], eax
and edi, 0xfffffffa
call fcn.140178330
lea r9d, [rdi - 1]
mov r8, rbx
mov edx, eax
mov rcx, r12
call fcn.1401786a8
mov eax, dword [rsp + 0x40]
lea edi, [r13 - 1]
mov r10, qword [rsp + 0x68]
mov rdx, qword [rbp + 0x90]
mov byte [r10 + 0x1c], sil
movsxd r9, dword [r15 + 0x40]
mov dword [r15 + 0x38], eax
mov al, byte [rdx + 0x42]
neg al
sbb cl, cl
and cl, 0x70
add cl, 0x3d
mov byte [r15 + 0x35], cl
mov eax, dword [r12 + 0x90]
mov dword [r15 + 0x3c], eax
test edi, edi
js 0x140185a97
mov ecx, dword [rbp + 0x98]
lea r8, [r13*8 - 8]
add ecx, 2
mov qword [rbp - 0x38], r8
add ecx, edi
mov rdx, r9
mov dword [rbp + 0x98], ecx
mov r11d, 1
mov rax, qword [r10 + 0x38]
mov r13, qword [r8 + rax]
lea rax, [rdx - 1]
movzx r8d, word [r13 + 0x14]
and r8w, r11w
cmove rax, rdx
test r8w, r8w
mov rdx, rax
mov qword [rbp - 0x70], rax
lea eax, [r9 - 1]
cmove eax, r9d
mov r9d, eax
mov dword [rbp + 0x80], eax
mov eax, 0x10
cmp edi, eax
jae 0x140185cf6
movzx eax, word [r10 + 0x1e]
movzx ecx, di
shr ax, cl
test r11b, al
je 0x140185cf0
mov rdx, r13
mov rcx, r15
call fcn.14010b5f8
jmp 0x140185dc9
mov ecx, dword [rbp + 0x98]
test r8w, r8w
je 0x140185dda
mov rcx, qword [r13]
mov rcx, qword [rcx + 0x10]
call fcn.140158208
cmp eax, r11d
jne 0x140185dd4
mov rax, qword [rbp - 0x58]
cmp byte [rax + 0x61], sil
jne 0x140185d4e
mov rax, qword [r15 + 0x48]
lea rcx, [rdx + rdx*4]
mov edx, dword [rax + rcx*4 + 4]
mov rcx, r12
call fcn.14017fa44
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.140178330
xor r9d, r9d
xor r8d, r8d
mov rcx, r14
lea edx, [r9 + 0x35]
call fcn.14016a194
mov rbx, rax
test rax, rax
je 0x140185dbe
mov rcx, qword [r13]
xor r8d, r8d
mov r13, qword [rbp - 0x58]
mov rdx, qword [rcx + 0x10]
mov rcx, r13
mov qword [rax + 0x10], rdx
mov edx, 0xad
call fcn.140154560
mov qword [rbx + 0x18], rax
test rax, rax
je 0x140185daf
mov ecx, dword [rbp + 0x98]
mov r9d, 0x10
mov dword [rax + 0x2c], ecx
mov rdx, rbx
mov r8d, dword [r15 + 0x18]
mov rcx, r14
call fcn.1401572f8
mov rdx, rbx
mov qword [rbx + 0x10], rsi
mov rcx, r13
call fcn.140157084
mov r10, qword [rsp + 0x68]
mov r11d, 1
mov rdx, qword [rbp - 0x70]
mov r9d, dword [rbp + 0x80]
mov ecx, dword [rbp + 0x98]
mov r8, qword [rbp - 0x38]
sub ecx, r11d
sub r8, 8
mov dword [rbp + 0x98], ecx
sub edi, r11d
mov qword [rbp - 0x38], r8
jns 0x140185c92
jmp 0x1401871ec
test dl, 5
setne cl
bt edx, 8
setb al
test al, cl
je 0x140185ea2
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.140107930
cmp eax, edi
je 0x140185e61
test edi, edi
je 0x140185e61
cmp byte [r14 + 0x1f], 8
jae 0x140185e61
movzx ecx, byte [r14 + 0x1f]
mov dword [r14 + rcx*4 + 0xd4], edi
add byte [r14 + 0x1f], r13b
mov r9d, dword [r15 + 0x10]
mov edx, 0x1f
mov r8d, dword [rsp + 0x40]
mov rcx, r12
mov dword [rsp + 0x20], eax
call fcn.140178330
mov rdx, qword [rbp + 0x90]
mov r11, r13
mov byte [r15 + 0x35], 0xad
mov rax, qword [rbx + 0x38]
test qword [r15 + 0x58], rax
jne 0x140185a9d
or word [rbx + 0x12], 4
jmp 0x140185a9d
mov ecx, 0x102
mov eax, edx
and eax, ecx
cmp eax, ecx
jne 0x14018612f
mov eax, 0x20
mov dword [rbp + 0x80], 0xad
mov dword [rsp + 0x48], esi
mov rbx, rsi
mov rcx, rsi
test al, dl
je 0x140185edf
mov rax, qword [r11 + 0x38]
mov r8d, 8
mov rcx, qword [rax]
jmp 0x140185ee2
mov r8, rsi
mov eax, 0x10
test al, dl
je 0x140185ef3
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 0x140185fea
mov r13, qword [rbx]
mov dword [rbp + 0x98], 0x18161719
mov rdx, qword [r13 + 0x18]
mov rcx, rdx
call fcn.140158208
mov ecx, 1
cmp eax, ecx
jle 0x140185f80
mov al, byte [r14 + 0x1f]
test al, al
jne 0x140185f3e
add dword [r14 + 0x38], ecx
mov ebx, dword [r14 + 0x38]
jmp 0x140185f4f
sub al, cl
movzx eax, al
mov byte [r14 + 0x1f], al
mov ebx, dword [r14 + rax*4 + 0xd4]
mov rdx, qword [r13 + 0x18]
mov r9d, ecx
mov rcx, r14
mov r8d, ebx
call fcn.140107d88
movzx eax, byte [r13]
mov ecx, 1
add rax, rcx
mov r11d, ebx
and eax, 2
or rax, rcx
mov cl, byte [rbp + rax + 0x98]
jmp 0x140185fa9
lea r8, [rsp + 0x58]
mov rcx, r14
call fcn.140156ae0
mov rdx, rbx
mov rcx, r15
mov r11d, eax
call fcn.14010b5f8
movzx r10d, byte [r13]
mov ebx, dword [rsp + 0x58]
mov cl, byte [rbp + r10 + 0x62]
mov r13d, dword [rsp + 0x54]
mov r9d, r13d
mov r8d, dword [rsp + 0x40]
movzx edx, cl
mov rcx, r12
mov dword [rsp + 0x20], r11d
call fcn.140178330
mov r11d, 1
test ebx, ebx
je 0x14018600e
cmp byte [r14 + 0x1f], 8
jae 0x14018600e
movzx eax, byte [r14 + 0x1f]
mov dword [r14 + rax*4 + 0xd4], ebx
add byte [r14 + 0x1f], r11b
jmp 0x14018600e
mov r8d, dword [rsp + 0x40]
mov edx, r10d
xor edx, 1
mov dword [rsp + 0x20], esi
mov rcx, r12
lea edx, [rdx*4 + 0x21]
call fcn.140178330
mov r11d, 1
test rdi, rdi
je 0x140186098
mov rbx, qword [rdi]
mov r9d, r11d
add dword [r14 + 0x38], r11d
mov rcx, r14
mov eax, dword [r14 + 0x38]
mov r8d, eax
mov dword [rsp + 0x48], eax
mov rdx, qword [rbx + 0x18]
call fcn.140107d88
mov rcx, qword [rbx + 0x18]
call fcn.140158208
mov r11d, 1
cmp eax, r11d
jg 0x14018606c
mov al, byte [rbx]
sub al, 0x36
test al, 0xfd
jne 0x14018606c
mov r9, qword [rsp + 0x70]
xor r9d, r11d
lea edx, [r9*2 + 0x37]
mov dword [rbp + 0x80], edx
jmp 0x14018607f
mov r9, qword [rsp + 0x70]
lea eax, [r9*2 + 0x36]
mov dword [rbp + 0x80], eax
mov rcx, qword [rbx + 0x18]
call fcn.140158208
cmp eax, r11d
jg 0x140186098
mov rdx, rdi
mov rcx, r15
call fcn.14010b5f8
mov ecx, dword [r12 + 0x90]
neg dword [rsp + 0x70]
mov edi, dword [rbp + 0x80]
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, 0xad
je 0x1401871ec
add dword [r14 + 0x38], r11d
mov r8d, eax
mov ebx, dword [r14 + 0x38]
mov edx, 0x7f
mov r9d, ebx
mov dword [rsp + 0x20], esi
mov rcx, r12
call fcn.140178330
mov r8d, dword [rsp + 0x48]
mov r9d, r13d
mov edx, edi
mov dword [rsp + 0x20], ebx
mov rcx, r12
call fcn.140178330
movsxd rax, dword [r12 + 0x90]
mov r11d, 1
test eax, eax
jle 0x1401871ec
lea rcx, [rax + rax*2]
mov rax, qword [r12 + 0x88]
lea edx, [r11 + 0x52]
mov word [rax + rcx*8 - 0x16], dx
jmp 0x1401871ec
bt edx, 9
jae 0x140186ae5
movzx edi, word [r11 + 0x18]
mov r13, rsi
movzx eax, word [r11 + 0x1c]
mov ebx, esi
movzx r10d, word [r11 + 0x1a]
mov r9b, sil
mov word [rbp - 0x80], ax
mov r8d, edi
mov rax, qword [r11 + 0x20]
mov qword [rsp + 0x78], rax
mov eax, dword [r15 + 8]
mov dword [rsp + 0x44], eax
mov eax, 0x20
mov word [rsp + 0x64], di
mov word [rbp - 0x7c], r10w
mov qword [rbp - 0x68], rsi
mov qword [rbp - 0x78], rsi
mov qword [rbp - 0x70], rsi
mov byte [rbp + 0x98], sil
mov byte [rsp + 0x60], sil
mov dword [rsp + 0x5c], esi
mov dword [rsp + 0x4c], edi
test al, dl
je 0x1401861ad
mov rax, qword [r11 + 0x38]
inc r8d
mov ebx, r10d
mov r13, qword [rax + rdi*8]
mov qword [rbp - 0x68], r13
mov eax, 0x10
mov r10d, 0x100
test al, dl
je 0x140186298
movzx edi, word [rbp - 0x80]
mov rax, qword [r11 + 0x38]
cmp ebx, edi
mov ecx, r8d
cmova edi, ebx
mov rax, qword [rax + rcx*8]
mov qword [rbp - 0x78], rax
test word [rax + 0x12], r10w
je 0x140186241
mov r9d, dword [r14 + 0x38]
mov ebx, 1
inc r9d
mov dword [rsp + 0x20], esi
mov dword [r14 + 0x38], r9d
mov r8d, ebx
mov rcx, r12
mov dword [r15 + 0x2c], r9d
lea edx, [rbx + 0x44]
call fcn.140178330
mov eax, dword [r12 + 0x90]
mov ecx, esi
shl dword [r15 + 0x2c], 1
mov r9, qword [rsp + 0x70]
mov r10, qword [rsp + 0x78]
movzx edx, word [rsp + 0x64]
mov r11, qword [rsp + 0x68]
mov dword [r15 + 0x30], eax
mov rax, qword [r10 + 0x38]
cmp byte [rdx + rax], bl
sete cl
xor ecx, r9d
mov r9b, sil
or dword [r15 + 0x2c], ecx
jmp 0x14018624b
movzx edx, word [rsp + 0x64]
mov r10, qword [rsp + 0x78]
mov ebx, edi
test r13, r13
jne 0x140186293
mov rax, qword [r10 + 8]
movsx r8, word [rax + rdx*2]
test r8d, r8d
js 0x140186276
mov rax, qword [r10 + 0x18]
mov rdx, r8
shl rdx, 5
mov rcx, qword [rax + 8]
cmp byte [rdx + rcx + 0x18], sil
je 0x14018627c
cmp r8d, 0xfffffffe
jne 0x140186293
mov edx, 1
mov ebx, edi
movzx edi, word [rsp + 0x64]
mov r9b, dl
mov byte [rbp + 0x98], dl
jmp 0x14018629d
movzx edi, word [rsp + 0x64]
mov edx, 1
mov eax, dword [r11 + 0x28]
or ecx, 0xffffffff
and eax, 0x80030
cmp eax, 0x80000
jne 0x1401862f7
add dword [r14 + 0x38], edx
mov ebx, edx
mov r9b, dl
mov eax, dword [r14 + 0x38]
mov byte [rbp + 0x98], dl
mov dword [rsp + 0x5c], eax
mov dword [r15 + 0x24], eax
cmp dword [r15], esi
je 0x1401862eb
lea edx, [rcx + 0x46]
mov dword [rsp + 0x20], esi
mov rcx, r12
mov r9d, eax
xor r8d, r8d
call fcn.140178330
mov r9b, bl
or ecx, 0xffffffff
add dword [r14 + 0x44], ecx
mov eax, dword [r14 + 0x44]
mov dword [r15 + 0x28], eax
mov rax, qword [rsp + 0x78]
cmp di, word [rax + 0x5e]
jae 0x1401863af
mov rax, qword [rax + 0x38]
mov edx, esi
movzx ecx, di
cmp byte [rcx + rax], sil
mov rcx, qword [rsp + 0x70]
sete dl
cmp ecx, edx
je 0x14018632e
mov rax, qword [rsp + 0x78]
test ecx, ecx
je 0x140186359
cmp word [rax + 0x5e], di
jne 0x140186359
mov rax, qword [rbp - 0x78]
movzx edx, word [rbp - 0x80]
mov qword [rbp - 0x78], r13
mov r13, rax
mov qword [rbp - 0x68], rax
movzx eax, byte [rbp - 0x7c]
mov word [rbp - 0x80], ax
mov byte [rsp + 0x60], r9b
mov byte [rbp + 0x98], sil
mov word [rbp - 0x7c], dx
lea rax, [rbp - 0x50]
mov r8d, ecx
mov rcx, r14
mov qword [rsp + 0x20], rax
mov r9d, ebx
mov rdx, r15
call fcn.14010713c
mov r8d, eax
mov dword [rsp + 0x50], eax
mov rax, qword [rbp - 0x50]
test rax, rax
je 0x1401863a1
cmp word [rbp - 0x80], si
je 0x1401863a1
mov rcx, qword [rbp - 0x58]
movzx edx, di
add rdx, rax
call fcn.140152630
mov r8d, dword [rsp + 0x50]
mov qword [rbp - 0x70], rax
mov edx, dword [rsp + 0x5c]
test edx, edx
je 0x1401863b9
mov eax, dword [r15 + 0x28]
jmp 0x1401863bd
mov rcx, qword [rsp + 0x70]
jmp 0x140186324
mov eax, dword [r15 + 0x10]
mov dword [rsp + 0x54], eax
test r13, r13
je 0x1401863d9
test byte [r13 + 0x14], 0x28
jne 0x1401863d9
mov dword [rsp + 0x58], esi
mov r9d, 1
jmp 0x1401863e4
mov r9d, 1
mov dword [rsp + 0x58], r9d
mov rax, qword [rbp - 0x78]
test rax, rax
je 0x1401863f7
test byte [rax + 0x14], 0x28
mov dword [rsp + 0x48], esi
je 0x1401863fc
mov dword [rsp + 0x48], r9d
mov eax, 0x48
test r13, r13
jne 0x14018642c
test di, di
jne 0x14018642c
mov ecx, dword [rsp + 0x4c]
mov edi, esi
mov ebx, ecx
mov r13b, byte [rbp + 0x98]
test r13b, r13b
je 0x140186509
mov dword [rsp + 0x58], esi
jmp 0x14018650d
mov ecx, dword [rsp + 0x4c]
mov edi, r9d
mov ebx, ecx
test r13, r13
je 0x140186413
mov rax, qword [r13]
add r8d, ecx
movzx r13d, word [rbp - 0x7c]
mov rcx, r14
mov r9d, r13d
mov rdi, qword [rax + 0x18]
mov rdx, rdi
call fcn.140107d88
mov r9, qword [rbp - 0x68]
movzx eax, word [r9 + 0x12]
bt ax, 8
jae 0x14018648f
or edx, 0xffffffff
mov rcx, r12
call fcn.14017fa44
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
movzx eax, word [r9 + 0x12]
test al, al
js 0x1401864bd
mov rcx, rdi
call fcn.140154afc
test eax, eax
je 0x1401864bd
mov r8d, dword [rsp + 0x50]
mov edx, 0x32
mov r9d, dword [rsp + 0x54]
add r8d, ebx
mov rcx, r12
mov dword [rsp + 0x20], esi
call fcn.140178330
mov rcx, qword [rbp - 0x50]
test rcx, rcx
je 0x1401864d8
movzx r8d, bx
mov edx, r13d
add r8, rcx
mov rcx, rdi
call fcn.14018cb00
mov rcx, rdi
add ebx, r13d
call fcn.140158208
mov r10d, 1
cmp eax, r10d
jg 0x1401864fc
mov rdx, qword [rbp - 0x68]
mov rcx, r15
call fcn.14010b5f8
jmp 0x140186501
mov dword [rsp + 0x58], r10d
mov r13b, sil
mov edi, r10d
jmp 0x14018652b
test edx, edx
je 0x14018652b
lea r9d, [r8 + rcx]
mov dword [rsp + 0x20], esi
xor r8d, r8d
mov rcx, r12
mov edx, eax
call fcn.140178330
mov eax, 1
add ebx, eax
mov edi, eax
mov r9, qword [rbp - 0x50]
mov r8d, ebx
mov edx, dword [rsp + 0x50]
mov rcx, r14
movzx eax, r13b
sub r8d, eax
mov dword [rbp + 0x98], eax
call fcn.1401073e4
mov rcx, qword [rsp + 0x68]
lea r13, [0x140000000]
cmp word [rcx + 0x2e], si
jbe 0x140186569
movzx eax, word [rcx + 0x2e]
cmp ebx, eax
je 0x14018664a
test dword [rcx + 0x28], 0x40000
je 0x14018658a
mov r8d, dword [rsp + 0x44]
xor r9d, r9d
mov rcx, r12
mov dword [rsp + 0x20], esi
lea edx, [r9 + 0x76]
call fcn.140178330
mov eax, dword [rsp + 0x5c]
test eax, eax
je 0x1401865aa
mov edx, 0x45
mov dword [rsp + 0x20], esi
mov r9d, eax
mov rcx, r12
lea r8d, [rdx - 0x44]
call fcn.140178330
mov eax, dword [rsp + 0x58]
mov r9d, dword [rsp + 0x54]
mov r8d, dword [rsp + 0x44]
mov dword [rsp + 0x28], ebx
lea eax, [rax + rdi*2]
mov rdi, qword [rsp + 0x70]
lea ecx, [rdi + rax*2]
mov eax, dword [rsp + 0x50]
movzx edx, byte [rcx + r13 + 0x217ad0]
mov rcx, r12
mov dword [rsp + 0x20], eax
call fcn.140178444
mov eax, dword [rsp + 0x5c]
test eax, eax
je 0x14018664e
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.140178330
mov r9d, dword [rsp + 0x54]
mov eax, 2
mov r8d, dword [rsp + 0x44]
mov ecx, ebx
sub ecx, dword [rsp + 0x58]
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 + 0x50]
mov dword [rsp + 0x20], edi
movzx edx, byte [rax + r13 + 0x217ad0]
call fcn.140178444
mov eax, dword [rsp + 0x5c]
jmp 0x140186652
mov eax, dword [rsp + 0x5c]
mov edi, dword [rsp + 0x50]
mov rcx, qword [rbp - 0x78]
test rcx, rcx
je 0x140186844
mov rax, qword [rcx]
mov rcx, r14
mov r13d, dword [rsp + 0x50]
movzx edi, word [rbp - 0x80]
add r13d, dword [rsp + 0x4c]
mov r9d, edi
mov rbx, qword [rax + 0x18]
mov r8d, r13d
mov rdx, rbx
call fcn.140107d88
mov r9, qword [rbp - 0x78]
movzx eax, word [r9 + 0x12]
bt ax, 8
jae 0x1401866bc
or edx, 0xffffffff
mov rcx, r12
call fcn.14017fa44
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
movzx eax, word [r9 + 0x12]
test al, al
js 0x1401866e5
mov rcx, rbx
call fcn.140154afc
test eax, eax
je 0x1401866e5
mov r9d, dword [rsp + 0x54]
mov r8d, r13d
mov edx, 0x32
mov dword [rsp + 0x20], esi
mov rcx, r12
call fcn.140178330
mov rax, qword [rbp - 0x70]
test rax, rax
je 0x14018670d
mov r8, rax
mov edx, edi
mov rcx, rbx
call fcn.14018cb00
mov r9, qword [rbp - 0x70]
mov r8d, edi
mov edx, r13d
mov rcx, r14
call fcn.1401073e4
add dword [rsp + 0x4c], edi
mov rcx, rbx
call fcn.140158208
mov ecx, 1
cmp eax, ecx
jg 0x14018683b
mov rdx, qword [rbp - 0x78]
mov rcx, r15
call fcn.14010b5f8
lea r13, [0x140000000]
mov ebx, dword [rsp + 0x4c]
mov rax, qword [rbp - 0x50]
mov rdi, qword [rbp - 0x58]
test rax, rax
je 0x140186755
mov rdx, rax
mov rcx, rdi
call fcn.140152380
mov rax, qword [rbp - 0x70]
test rax, rax
je 0x140186769
mov rdx, rax
mov rcx, rdi
call fcn.140152380
mov eax, dword [r12 + 0x90]
mov edi, dword [rsp + 0x5c]
mov dword [r15 + 0x3c], eax
test ebx, ebx
je 0x1401867d4
test edi, edi
je 0x1401867a1
mov r9d, dword [r12 + 0x90]
mov r8d, edi
add r9d, 3
mov dword [rsp + 0x20], esi
mov edx, 0x14
mov rcx, r12
call fcn.140178330
mov rax, qword [rsp + 0x70]
mov ecx, dword [rsp + 0x48]
mov r9d, dword [rsp + 0x54]
mov r8d, dword [rsp + 0x44]
mov dword [rsp + 0x28], ebx
lea eax, [rcx + rax*2]
mov rcx, r12
movzx edx, byte [rax + r13 + 0x21718c]
mov eax, dword [rsp + 0x50]
mov dword [rsp + 0x20], eax
call fcn.140178444
test edi, edi
je 0x140186878
mov r9d, dword [r12 + 0x90]
mov r8d, edi
add r9d, 2
mov dword [rsp + 0x20], esi
mov edx, 0x12
mov rcx, r12
call fcn.140178330
mov eax, dword [rbp + 0x98]
mov rcx, r12
mov r9, qword [rsp + 0x70]
lea r8d, [rbx + rax]
mov ebx, dword [rsp + 0x44]
lea eax, [rax + r9*2]
mov dword [rsp + 0x28], r8d
movzx edx, byte [rax + r13 + 0x21718c]
mov r8d, ebx
mov eax, dword [rsp + 0x50]
mov r9d, dword [rsp + 0x54]
mov dword [rsp + 0x20], eax
call fcn.140178444
jmp 0x14018687c
mov dword [rsp + 0x48], ecx
jmp 0x140186732
cmp byte [rsp + 0x60], sil
je 0x140186739
mov ebx, dword [rsp + 0x4c]
test eax, eax
jne 0x140186871
lea r9d, [rdi + rbx]
mov dword [rsp + 0x20], esi
xor r8d, r8d
lea edx, [rax + 0x48]
mov rcx, r12
call fcn.140178330
mov dword [rsp + 0x48], esi
inc ebx
jmp 0x14018673d
mov ebx, dword [rsp + 0x44]
mov r13, qword [rsp + 0x68]
mov edi, 1
mov eax, dword [r13 + 0x28]
bt eax, 0x12
jae 0x1401868a9
mov r9d, edi
mov dword [rsp + 0x20], esi
mov r8d, ebx
lea edx, [rdi + 0x75]
mov rcx, r12
call fcn.140178330
mov eax, dword [r13 + 0x28]
test al, 0x40
mov rax, qword [rbp + 0x90]
je 0x1401868c9
test byte [rax + 0x3c], 0x20
jne 0x1401868c9
mov r12d, dword [rsp + 0x40]
mov r10, qword [rsp + 0x78]
jmp 0x140186a4d
mov r10, qword [rsp + 0x78]
mov edi, esi
mov rbx, qword [r10 + 0x18]
test byte [rbx + 0x40], 0x80
jne 0x14018696c
mov ecx, 0x400
test word [rax + 0x3c], cx
jne 0x140186929
mov ecx, 0x1000
test word [rax + 0x3c], cx
je 0x140186905
mov ecx, 1
cmp byte [rax + 0x42], cl
je 0x140186929
cmp word [r13 + 0x2c], si
je 0x140186929
mov ebx, dword [rsp + 0x44]
mov rdx, r10
mov r12d, dword [rsp + 0x40]
mov r9d, ebx
mov r8d, r12d
mov rcx, rax
call fcn.140107740
mov r10, qword [rsp + 0x78]
jmp 0x140186a51
mov r8d, dword [rsp + 0x44]
mov eax, 1
add dword [r14 + 0x38], eax
mov edx, 0x86
mov ebx, dword [r14 + 0x38]
mov rcx, r12
mov r9d, ebx
mov dword [rsp + 0x20], esi
call fcn.140178330
mov r8d, dword [rsp + 0x40]
xor r9d, r9d
mov rcx, r12
mov dword [rsp + 0x20], ebx
lea edx, [r9 + 0x20]
call fcn.140178330
jmp 0x1401868ba
mov eax, dword [rsp + 0x40]
cmp eax, dword [rsp + 0x44]
je 0x140186a4a
mov rbx, qword [rbx + 0x10]
jmp 0x14018698d
mov eax, dword [rbx + 0x64]
and al, 3
cmp al, 2
je 0x140186992
mov rbx, qword [rbx + 0x28]
test rbx, rbx
jne 0x140186980
movzx edx, word [rbx + 0x5e]
mov rcx, r14
call fcn.140165754
movzx ecx, word [rbx + 0x5e]
mov r13d, eax
cmp si, cx
jae 0x140186a1c
mov r15d, dword [rsp + 0x44]
or r14d, 0xffffffff
movzx r8d, word [r10 + 0x60]
mov edx, esi
test r8d, r8d
je 0x1401869df
mov rax, qword [rbx + 8]
mov r9, qword [r10 + 8]
movsxd rcx, edi
movzx r10d, word [rax + rcx*2]
mov eax, edx
cmp r10w, word [r9 + rax*2]
je 0x1401869e3
inc edx
cmp edx, r8d
jl 0x1401869cf
movzx edx, r14w
lea eax, [rdi + r13]
movsx r9d, dx
mov edx, 0x59
mov dword [rsp + 0x20], eax
mov r8d, r15d
mov rcx, r12
call fcn.140178330
movzx ecx, word [rbx + 0x5e]
inc edi
mov r10, qword [rsp + 0x78]
cmp edi, ecx
jl 0x1401869b3
mov r14, qword [rbp + 0x80]
mov r15, qword [rbp + 0xa0]
mov r9d, dword [rbp - 0x60]
mov edx, 0x1d
mov r8d, dword [rsp + 0x40]
movzx eax, cx
mov rcx, r12
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r13d
call fcn.140178444
mov r13, qword [rsp + 0x68]
mov edi, esi
jmp 0x1401868ba
mov r12d, eax
mov ebx, dword [rsp + 0x44]
cmp dword [r15], esi
jne 0x140186a8e
mov rax, qword [rbp + 0x90]
test byte [rax + 0x3c], 0x20
jne 0x140186a74
mov r9, rax
mov r8d, ebx
mov edx, r12d
mov rcx, r10
call fcn.140193440
mov rcx, qword [rsp + 0x78]
mov rcx, qword [rcx + 0x48]
test rcx, rcx
je 0x140186a8e
mov r8, qword [rbp - 0x40]
mov edx, r12d
call fcn.1401930ec
mov eax, 0x1000
test dword [r13 + 0x28], eax
je 0x140186aa0
mov byte [r15 + 0x35], 0xad
jmp 0x140186aac
neg dword [rsp + 0x70]
sbb al, al
add al, 5
mov byte [r15 + 0x35], al
mov dword [r15 + 0x38], ebx
mov r11d, 1
mov al, byte [r13 + 0x2a]
and al, r11b
mov byte [r15 + 0x36], al
test byte [r13 + 0x28], 0xf
jne 0x140186acc
mov byte [r15 + 0x37], r11b
mov rdx, qword [rbp + 0x90]
test edi, edi
je 0x140185a9d
mov qword [rsp + 0x78], rsi
jmp 0x140185a9d
bt edx, 0xd
jae 0x1401871f8
dec dword [r14 + 0x44]
mov r9d, 1
add dword [r14 + 0x38], r9d
mov r13, rsi
mov eax, dword [r14 + 0x34]
mov edx, dword [r14 + 0x38]
mov dword [rsp + 0x44], eax
inc eax
mov dword [r14 + 0x34], eax
mov eax, dword [r14 + 0x44]
mov rcx, qword [r8 + 0x20]
mov dword [rbp - 0x7c], eax
mov rax, qword [r11 + 0x38]
mov qword [rbp - 0x50], rsi
mov dword [rsp + 0x50], edx
mov dword [rsp + 0x58], esi
mov rax, qword [rax]
mov qword [rbp - 0x38], rax
mov dword [rsp + 0x48], esi
mov dword [rsp + 0x5c], esi
mov rax, qword [rax + 0x28]
mov byte [r15 + 0x35], 0x41
mov dword [r15 + 0x38], edx
mov qword [rbp - 0x70], rsi
mov qword [rbp - 0x78], rcx
mov qword [rbp - 0x30], rax
cmp byte [rbx + 0x40], r9b
jbe 0x140186c71
movzx ebx, byte [rbx + 0x40]
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 0x140186b89
mov rdx, rcx
mov rcx, rax
call fcn.140152438
jmp 0x140186b8e
call fcn.14016960c
mov qword [rsp + 0x68], rax
mov r13, rax
test rax, rax
jne 0x140186ba7
mov rax, qword [rbp + 0xa8]
jmp 0x140187509
mov rdx, qword [rbp - 0x48]
mov eax, 1
add eax, ebx
mov r8d, 0x70
movzx ecx, al
mov dword [r13 + 4], ecx
mov dword [r13], ecx
lea rcx, [r13 + 8]
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [rbp + 0x90]
mov r9d, 1
mov rax, qword [rcx + 8]
cmp ebx, r9d
jl 0x140186c2b
lea rdi, [r15 + 0x94]
add r13, 0x78
lea r15, [rax + 8]
mov r12d, r9d
movzx eax, byte [rdi]
mov r8d, 0x70
imul rdx, rax, 0x70
mov rcx, r13
add rdx, r15
call sub.VCRUNTIME140.dll_memcpy
add r13, 0x70
lea rdi, [rdi + 0x60]
sub rbx, r12
jne 0x140186bf4
mov r15, qword [rbp + 0xa0]
lea r9d, [rbx + 1]
mov r12, qword [rbp + 0x88]
mov rbx, qword [rbp + 0x90]
mov r13, rsi
mov rcx, qword [rbp - 0x78]
mov eax, 0x10
test byte [rbx + 0x3c], al
jne 0x140186cd8
test byte [rcx + 0x40], 0x80
jne 0x140186c7c
add dword [r14 + 0x38], r9d
xor r8d, r8d
mov eax, dword [r14 + 0x38]
mov rcx, r12
mov r9d, eax
mov dword [rsp + 0x58], eax
mov dword [rsp + 0x20], esi
lea edx, [r8 + 0x48]
call fcn.140178330
jmp 0x140186cc7
mov rax, qword [rbx + 8]
mov qword [rsp + 0x68], rax
jmp 0x140186c39
mov rbx, qword [rcx + 0x10]
jmp 0x140186c8f
mov eax, dword [rbx + 0x64]
and al, 3
cmp al, 2
je 0x140186c94
mov rbx, qword [rbx + 0x28]
test rbx, rbx
jne 0x140186c82
mov edi, dword [r14 + 0x34]
mov edx, 0x64
mov r8d, edi
mov dword [rsp + 0x58], 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.140178330
mov rdx, rbx
mov rcx, r14
call fcn.1401823e8
mov eax, 1
add dword [r14 + 0x38], eax
mov eax, dword [r14 + 0x38]
mov dword [rsp + 0x48], eax
mov r9d, dword [rsp + 0x50]
xor r8d, r8d
mov rcx, r12
mov dword [rsp + 0x20], esi
lea edx, [r8 + 0x45]
call fcn.140178330
mov dword [rsp + 0x70], eax
mov ecx, 1
mov rax, qword [rbp - 0x40]
cmp dword [rax + 0x14], ecx
jle 0x140186db3
mov rax, qword [rbp - 0x38]
mov edi, esi
mov r15, qword [rbp - 0x58]
mov rbx, rsi
mov r12, qword [rbp - 0x40]
mov r8, qword [r12 + 0x20]
movsxd rcx, edi
shl rcx, 6
add rcx, r8
mov rdx, qword [r8 + rbx]
cmp rcx, rax
je 0x140186d75
mov ecx, 6
test byte [r8 + rbx + 0x12], cl
jne 0x140186d75
mov ecx, 0x1fff
test word [r8 + rbx + 0x14], cx
je 0x140186d75
test rdx, rdx
je 0x140186d5d
xor r9d, r9d
xor r8d, r8d
mov rcx, r15
call fcn.14010dbc4
jmp 0x140186d60
mov rax, rsi
mov r8, rax
mov rdx, r13
mov rcx, r14
call fcn.1401548d8
mov r13, rax
mov rax, qword [rbp - 0x38]
inc edi
add rbx, 0x40
cmp edi, dword [r12 + 0x14]
jl 0x140186d17
mov r15, qword [rbp + 0xa0]
mov r12, qword [rbp + 0x88]
mov qword [rbp - 0x70], r13
test r13, r13
je 0x140186db3
mov r9, r13
xor r8d, r8d
mov edx, 0x1002c
mov rcx, r14
call fcn.14016a194
mov r13, rax
mov qword [rbp - 0x70], rax
mov rcx, qword [rbp + 0x90]
lea r8, str.MULTI_INDEX_OR
mov ebx, 0x400
mov edx, 1
movzx eax, word [rcx + 0x3c]
mov rcx, r14
and ax, bx
or ax, 0x20
mov word [rbp + 0x98], ax
call fcn.14017f73c
mov rax, qword [rbp - 0x30]
mov edi, esi
mov dword [rsp + 0x4c], esi
cmp dword [rax + 0x14], esi
jle 0x140187133
mov ecx, dword [rsp + 0x40]
mov r15, rsi
mov qword [rbp - 0x68], rsi
mov rax, qword [rax + 0x20]
cmp dword [r15 + rax + 0x1c], ecx
je 0x140186e1a
test word [r15 + rax + 0x14], bx
je 0x14018710d
mov rbx, qword [r15 + rax]
mov r13d, esi
mov rax, qword [rbp - 0x70]
mov dword [rsp + 0x64], esi
test rax, rax
je 0x140186e35
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.14017f73c
mov eax, dword [rsp + 0x44]
xor r9d, r9d
mov rdx, qword [rsp + 0x68]
mov r8, rbx
mov dword [rsp + 0x30], eax
mov rcx, r14
movzx eax, word [rbp + 0x98]
mov word [rsp + 0x28], ax
mov qword [rsp + 0x20], rsi
call fcn.140184c00
mov qword [rbp - 0x28], rax
mov rbx, rax
test rax, rax
je 0x140187104
mov rdx, qword [rsp + 0x68]
lea r8, [rax + 0x398]
xor r9d, r9d
mov rcx, r14
call fcn.140187be4
mov rax, qword [rbp + 0x90]
mov ecx, 0x10
test byte [rax + 0x3c], cl
jne 0x140186fe3
mov rax, qword [rbp - 0x30]
mov r15d, edi
mov ecx, dword [rax + 0x14]
mov eax, 0xffffffff
dec ecx
cmp edi, ecx
cmove r15d, eax
mov rax, qword [rbp - 0x78]
mov dword [rbp - 0x80], r15d
test byte [rax + 0x40], 0x80
jne 0x140186f1e
mov r13d, dword [rsp + 0x48]
mov edx, 0x7f
mov r8d, dword [rsp + 0x40]
mov r9d, r13d
mov rcx, r12
mov dword [rsp + 0x20], esi
call fcn.140178330
mov r8d, dword [rsp + 0x58]
xor r9d, r9d
mov dword [rsp + 0x28], r15d
mov rcx, r12
mov dword [rsp + 0x20], r13d
lea edx, [r9 + 0x2d]
call fcn.140178444
mov r13d, eax
jmp 0x140186fdf
mov rbx, qword [rax + 0x10]
jmp 0x140186f31
mov eax, dword [rbx + 0x64]
and al, 3
cmp al, 2
je 0x140186f36
mov rbx, qword [rbx + 0x28]
test rbx, rbx
jne 0x140186f24
movzx edi, word [rbx + 0x5e]
mov rcx, r14
mov edx, edi
call fcn.140165754
mov dword [rsp + 0x54], eax
mov r13, rsi
test edi, edi
je 0x140186f95
mov rsi, qword [rbp - 0x78]
mov r15d, eax
mov rcx, qword [rbx + 8]
mov rdx, rsi
mov r8d, dword [rsp + 0x40]
mov dword [rsp + 0x20], r15d
movsx r9d, word [rcx + r13*2]
mov rcx, r12
call fcn.140154f70
mov eax, 1
add r15d, eax
add r13, rax
cmp r13, rdi
jl 0x140186f56
mov r14, qword [rbp + 0x80]
xor esi, esi
mov eax, dword [rsp + 0x54]
mov r15d, dword [rbp - 0x80]
test r15d, r15d
je 0x140187079
mov r8d, dword [rsp + 0x58]
xor r9d, r9d
mov dword [rsp + 0x28], edi
mov rcx, r12
mov dword [rsp + 0x20], eax
lea edx, [r9 + 0x1e]
call fcn.140178444
mov r13d, eax
test r15d, r15d
jns 0x14018707e
mov ebx, dword [rsp + 0x54]
mov r8d, edi
mov edx, ebx
mov rcx, r14
call fcn.1401704fc
mov edi, dword [rsp + 0x4c]
mov rbx, qword [rbp - 0x28]
mov r15, qword [rbp - 0x68]
mov r9d, dword [rbp - 0x7c]
mov edx, 0xc
mov r8d, dword [rsp + 0x50]
mov rcx, r12
mov dword [rsp + 0x20], esi
call fcn.140178330
test r13d, r13d
je 0x140187018
mov edx, r13d
mov rcx, r12
call fcn.14017fa44
mov ecx, dword [r12 + 0x90]
mov dword [rax + 8], ecx
test byte [rbx + 0x44], 2
mov ecx, 1
mov eax, dword [rsp + 0x5c]
mov rdx, qword [rbx + 0x3e8]
cmovne eax, ecx
mov dword [rsp + 0x5c], eax
test dword [rdx + 0x28], 0x200
je 0x1401870f0
test edi, edi
je 0x140187052
mov rax, qword [rbp - 0x50]
cmp qword [rdx + 0x20], rax
jne 0x1401870f0
mov rax, qword [rbp - 0x78]
test byte [rax + 0x40], 0x80
je 0x14018706f
mov rax, qword [rdx + 0x20]
mov ecx, dword [rax + 0x64]
and cl, 3
cmp cl, 2
je 0x1401870f0
mov r13, qword [rdx + 0x20]
mov qword [rbp - 0x50], r13
jmp 0x1401870f4
mov r13d, dword [rsp + 0x64]
mov eax, dword [rsp + 0x48]
mov r9d, edi
mov ebx, dword [rsp + 0x54]
mov edx, 0x5b
mov r8d, ebx
mov dword [rsp + 0x20], eax
mov rcx, r12
call fcn.140178330
mov r9d, dword [rsp + 0x48]
mov edx, 0x82
mov r8d, dword [rsp + 0x58]
mov rcx, r12
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], ebx
call fcn.140178444
test r15d, r15d
je 0x140186fca
movsxd rax, dword [r12 + 0x90]
test eax, eax
jle 0x140186fca
lea rcx, [rax + rax*2]
mov edx, 0x10
mov rax, qword [r12 + 0x88]
mov word [rax + rcx*8 - 0x16], dx
jmp 0x140186fca
mov qword [rbp - 0x50], rsi
mov rcx, rbx
call fcn.140187520
mov rcx, r14
call fcn.14017f7c4
mov ecx, dword [rsp + 0x40]
mov ebx, 0x400
mov rax, qword [rbp - 0x30]
inc edi
add r15, 0x40
mov dword [rsp + 0x4c], edi
mov qword [rbp - 0x68], r15
cmp edi, dword [rax + 0x14]
jl 0x140186e03
mov r15, qword [rbp + 0xa0]
mov r13, qword [rbp - 0x70]
mov rcx, r14
call fcn.14017f7c4
mov rax, qword [rbp - 0x50]
mov qword [r15 + 0x40], rax
test rax, rax
je 0x140187150
mov eax, dword [rsp + 0x44]
mov dword [r15 + 8], eax
mov rbx, qword [rbp - 0x58]
test r13, r13
je 0x140187168
mov rdx, r13
mov qword [r13 + 0x10], rsi
mov rcx, rbx
call fcn.140157084
mov edx, dword [rsp + 0x70]
mov rcx, r12
call fcn.14017fa44
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.140178330
mov edx, dword [rbp - 0x7c]
mov rcx, r12
call fcn.140182144
mov rdx, qword [rbp + 0x90]
mov r11d, 1
cmp byte [rdx + 0x40], r11b
jbe 0x1401871d6
mov rax, qword [rsp + 0x68]
test rax, rax
je 0x1401871d6
mov rdx, rax
mov rcx, rbx
call fcn.140152380
mov rdx, qword [rbp + 0x90]
mov r11d, 1
cmp dword [rsp + 0x5c], esi
jne 0x140185a9d
mov rdx, qword [rbp - 0x38]
mov rcx, r15
call fcn.14010b5f8
mov rdx, qword [rbp + 0x90]
jmp 0x140185a9d
mov eax, 0x20
test byte [r8 + 0x40], al
je 0x14018720d
mov byte [r15 + 0x35], 0xad
jmp 0x140185a90
mov ecx, r10d
lea rdx, [0x140000000]
mov dword [rsp + 0x20], esi
mov al, byte [rcx + rdx + 0x21762c]
movzx edx, byte [rcx + rdx + 0x21763c]
mov rcx, r12
mov byte [r15 + 0x35], al
mov eax, dword [rsp + 0x40]
mov r8d, eax
mov dword [r15 + 0x38], eax
call fcn.140178330
mov r11d, 1
add eax, r11d
mov byte [r15 + 0x37], r11b
mov dword [r15 + 0x3c], eax
jmp 0x1401871ec
mov rdx, qword [rbp - 0x48]
mov rax, qword [rbx]
mov qword [rbp + 0x80], rax
test byte [rdx + 0x3c], 8
je 0x140187272
test byte [rax + 4], r11b
je 0x14018733c
cmp r13d, r11d
jne 0x140187296
mov edx, dword [r15 + 4]
mov rcx, rax
call fcn.140157010
mov r11d, 1
test eax, eax
jne 0x14018729c
lea r12d, [r11 + 1]
jmp 0x14018733c
cmp r13d, 3
jge 0x1401872bb
movzx ecx, word [rbx + 0x12]
bt cx, 0xc
jae 0x1401872bb
test r12d, r12d
jne 0x14018733c
mov r12d, 3
jmp 0x14018733c
bt cx, 9
jae 0x1401872f3
mov edx, dword [r15 + 0x2c]
test edx, edx
je 0x1401872f3
mov rcx, qword [rbp + 0x88]
mov r8d, edx
and edx, r11d
shr r8d, 1
xor r9d, r9d
mov dword [rsp + 0x20], esi
lea edx, [rdx*2 + 0x12]
call fcn.140178330
mov dword [rbp + 0x98], eax
mov r8d, dword [rbp - 0x60]
mov r9d, 0x10
mov rdx, qword [rbp + 0x80]
mov rcx, r14
call fcn.1401572f8
mov eax, dword [rbp + 0x98]
test eax, eax
je 0x140187331
mov r9, qword [rbp + 0x88]
mov edx, eax
mov rcx, r9
call fcn.14017fa44
mov ecx, dword [r9 + 0x90]
mov dword [rax + 8], ecx
or word [rbx + 0x12], 4
mov r11d, 1
mov rdx, qword [rbp + 0x90]
sub edi, r11d
mov r8, qword [rsp + 0x78]
add rbx, 0x40
test edi, edi
jg 0x140185ac6
mov r10, qword [rbp - 0x40]
mov rbx, qword [r10 + 0x20]
mov edi, dword [r10 + 0x14]
mov rdx, qword [rbp + 0x90]
mov r13d, r12d
test r12d, r12d
jg 0x140185ab3
mov r12d, 6
test edi, edi
jle 0x14018748f
mov r15d, dword [rsp + 0x40]
add rbx, 0x14
test byte [rbx - 2], r12b
jne 0x140187475
movzx eax, word [rbx]
mov edx, 0xb
test al, 0x82
setne cl
bt ax, dx
setb al
test al, cl
je 0x140187475
cmp dword [rbx + 8], r15d
jne 0x140187475
mov rax, qword [rbp - 0x48]
test byte [rax + 0x3c], 8
jne 0x140187475
mov r9, qword [rbp + 0xa8]
mov edx, r15d
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.1401880c0
mov rdx, rax
mov r11d, 1
test rax, rax
je 0x140187475
test byte [rax + 0x12], 4
jne 0x140187475
test byte [rax + 0x14], r11b
je 0x140187425
mov rax, qword [rax]
test dword [rax + 4], 0x800
je 0x140187425
mov rax, qword [rax + 0x20]
mov rcx, qword [rax + 0x20]
cmp dword [rcx], r11d
jg 0x140187475
mov rax, qword [rdx]
mov r9d, 0x10
mov r8d, dword [rbp - 0x60]
lea rdx, [rbp - 0x20]
mov rcx, r14
movups xmm0, xmmword [rax]
movaps xmmword [rbp - 0x20], xmm0
movups xmm1, xmmword [rax + 0x10]
movaps xmmword [rbp - 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movaps xmmword [rbp], xmm0
movups xmm1, xmmword [rax + 0x30]
movaps xmmword [rbp + 0x10], xmm1
movsd xmm0, qword [rax + 0x40]
movsd qword [rbp + 0x20], xmm0
mov rax, qword [r13 + 0x10]
mov qword [rbp - 0x10], rax
call fcn.1401572f8
mov r11d, 1
mov r10, qword [rbp - 0x40]
sub edi, r11d
add rbx, 0x40
test edi, edi
jg 0x14018738d
mov r15, qword [rbp + 0xa0]
cmp dword [r15], esi
je 0x140187505
mov rcx, qword [rbp + 0x88]
mov r8d, r11d
mov r9d, dword [r15]
mov edx, 0x45
mov dword [rsp + 0x20], esi
mov eax, dword [rcx + 0x90]
mov dword [r15 + 0x1c], eax
call fcn.140178330
mov rdi, qword [rbp - 0x40]
mov rbx, qword [rdi + 0x20]
cmp dword [rdi + 0x14], esi
jle 0x140187505
mov eax, 1
test byte [rbx + 0x12], r12b
jne 0x1401874fa
mov rax, qword [rbx + 0x38]
test qword [r15 + 0x58], rax
jne 0x1401874f5
mov r8d, dword [rbp - 0x60]
mov r9d, 0x10
mov rdx, qword [rbx]
mov rcx, r14
call fcn.1401572f8
or word [rbx + 0x12], 4
mov eax, 1
add esi, eax
add rbx, 0x40
cmp esi, dword [rdi + 0x14]
jl 0x1401874cb
mov rax, qword [r15 + 0x58]
add rsp, 0x138
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret