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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x248
mov eax, dword [rsp + 0x2c0]
mov dword [rsp + 0x58], eax
mov r13, rcx
mov r12, r8
mov word [rsp + 0x68], ax
mov rax, qword [rcx + 0x10]
mov qword [rsp + 0x298], rdx
mov qword [rsp + 0xb8], rax
mov rax, qword [rcx]
mov qword [rsp + 0x2a8], r9
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0x140], 0
mov qword [rsp + 0x148], 0
mov qword [rsp + 0x150], 0
mov qword [rsp + 0x158], 0
mov qword [rsp + 0x160], 0
test r9, r9
je 0x8dd9f6
cmp dword [r9], 0x40
mov eax, 0
cmovl rax, r9
mov qword [rsp + 0x2a8], rax
mov rax, qword [rsp + 0x298]
mov eax, dword [rax]
mov dword [rsp + 0xb0], eax
cmp eax, 0x40
jg 0x8e05d0
test byte [rsp + 0x58], 0x20
je 0x8dec00
mov dword [rsp + 0xb0], 1
mov edx, 0x440
mov ebx, 0x3d0
mov rdi, qword [rsp + 0xa8]
mov rcx, rdi
call fcn.0087dee0
cmp byte [rdi + 0x67], 0
mov r14, rax
jne 0x8defb8
mov qword [rax], r13
mov rax, qword [rsp + 0x298]
add rbx, r14
xor ebp, ebp
mov edx, dword [rsp + 0xb0]
mov qword [r14 + 0x20], r12
lea rdi, [r14 + 0x51]
lea rsi, [r14 + 0x78]
mov qword [r14 + 8], rax
and rdi, 0xfffffffffffffff8
mov rax, qword [rsp + 0x2a8]
mov r15d, 3
mov byte [r14 + 0x48], dl
mov qword [r14 + 0x10], rax
mov rax, qword [rsp + 0x2b0]
mov qword [r14 + 0x30], 0xffffffffffffffff
mov qword [r14 + 0x18], rax
mov eax, dword [r13 + 0x44]
sub eax, 1
mov dword [r13 + 0x44], eax
mov dword [r14 + 0x38], eax
mov dword [r14 + 0x3c], eax
movzx eax, word [rsp + 0x58]
mov word [r14 + 0x44], ax
movzx eax, word [rsp + 0x2c8]
mov word [r14 + 0x46], ax
mov eax, dword [r13 + 0xc8]
mov dword [r14 + 0x40], eax
mov rax, qword [rsp + 0x2b8]
mov qword [r14 + 0x49], 0
mov qword [r14 + 0x28], rax
mov eax, r14d
sub eax, edi
mov qword [rsp + 0x88], rsi
lea ecx, [rax + 0x78]
xor eax, eax
mov qword [r14 + 0x70], 0
shr ecx, 3
rep stosq qword [rdi], rax
movsxd rax, edx
lea rcx, [r14 + 0x368]
lea rdx, [rax + rax*2]
mov rdi, rax
mov qword [rsp + 0x78], rcx
lea rax, [rax + rdx*4]
xor edx, edx
mov qword [rsp + 0x70], rcx
lea r8, [rax*8 + 0x70]
call sub.msvcrt.dll_memset
mov r8d, 0x2c
mov rdx, r12
movabs rax, 0xffffff9d00000000
mov qword [r14 + 0x264], rax
lea rax, [rbx + 0x58]
mov rcx, rsi
mov qword [rbx + 0x48], rax
lea rax, [r14 + 0xa0]
mov word [rbx + 0x3c], bp
mov word [rbx + 0x40], r15w
mov dword [rbx + 0x38], 0
mov qword [r14 + 0x78], r14
mov byte [r14 + 0x89], 0
mov qword [r14 + 0x80], 0
mov dword [r14 + 0x8c], 0
mov qword [r14 + 0x90], 8
mov qword [r14 + 0x98], rax
mov qword [rsp + 0x140], r14
mov qword [rsp + 0x148], rsi
mov qword [rsp + 0x150], rbx
call fcn.00881960
test edi, edi
jne 0x8ded80
cmp qword [rsp + 0x2a8], 0
je 0x8ddbe7
mov rax, qword [rsp + 0x2a8]
mov eax, dword [rax]
mov byte [r14 + 0x49], al
test dword [rsp + 0x58], 0x100
jne 0x8defe0
lea r8, str.SCAN_CONSTANT_ROW
xor edx, edx
mov rcx, r13
call fcn.0088aae0
mov ebx, dword [r14 + 0x8c]
sub ebx, 1
js 0x8ddc3e
mov rsi, qword [rsp + 0x298]
mov rdi, qword [rsp + 0x88]
nop word [rax + rax]
mov r8d, ebx
mov rdx, rdi
mov rcx, rsi
sub ebx, 1
call fcn.008d8880
cmp ebx, 0xffffffff
jne 0x8ddc28
cmp qword [rsp + 0x2b8], 0
je 0x8ddc6c
mov rax, qword [rsp + 0x2b8]
mov rax, qword [rax + 0x60]
test rax, rax
je 0x8ddc6c
mov rbx, qword [rsp + 0x2b8]
test byte [rbx + 4], 9
je 0x8df000
mov rax, qword [rsp + 0xa8]
movzx eax, byte [rax + 0x67]
mov byte [rsp + 0x80], al
test al, al
jne 0x8dec40
mov rax, qword [rsp + 0x148]
xor r12d, r12d
xor esi, esi
lea r15, [rsp + 0x1d0]
lea rbp, [0x00865290]
lea rdi, [0x008641f0]
mov r11d, dword [rax + 0x1c]
test r11d, r11d
jg 0x8ddd4c
jmp 0x8ddd9f
mov r9d, 1
mov qword [r15], 0
mov qword [r15 + 8], 0
mov qword [r15 + 0x10], 0
mov qword [r15 + 0x18], 0
mov qword [r15 + 0x20], 0
mov qword [r15 + 0x28], 0
mov word [rsp + 0x1f4], r9w
mov qword [rsp + 0x1d8], rbp
mov qword [rsp + 0x1e0], rdi
test rdx, rdx
je 0x8ded70
mov rcx, r15
call fcn.0086e180
mov rax, qword [rsp + 0x148]
cmp word [rsp + 0x1f4], 0
jne 0x8ded70
nop word cs:[rax + rax]
add esi, 1
add r12, 0x38
cmp dword [rax + 0x1c], esi
jle 0x8ddd9f
mov rbx, qword [rax + 0x20]
add rbx, r12
test byte [rbx + 0x12], 2
jne 0x8ddd40
cmp qword [rbx + 0x30], 0
jne 0x8ddd40
mov r10d, dword [rsp + 0xb0]
mov rdx, qword [rbx]
test r10d, r10d
jne 0x8ddcc0
mov r8d, dword [r14 + 0x3c]
mov r9d, 0x10
mov rcx, r13
add esi, 1
add r12, 0x38
call fcn.008d25e0
mov rax, qword [rsp + 0x148]
or word [rbx + 0x12], 4
cmp dword [rax + 0x1c], esi
jg 0x8ddd4c
test dword [rsp + 0x58], 0x100
je 0x8dddcf
mov rax, qword [rsp + 0xa8]
test byte [rax + 0x60], 0x10
je 0x8df0f0
movzx eax, word [rsp + 0x58]
and word [r14 + 0x44], 0xfeff
and ah, 0xfe
mov word [rsp + 0x68], ax
mov rax, qword [rsp + 0x140]
cmp dword [rsp + 0xb0], 1
mov r12, qword [rsp + 0x150]
mov qword [rsp + 0x48], rax
mov rbp, qword [rax + 8]
je 0x8e0240
mov rbx, qword [rsp + 0x48]
xor r9d, r9d
mov r10d, 3
movzx edx, byte [rbx + 0x48]
lea rax, [rdx*8]
sub rax, rdx
shl rax, 4
lea rsi, [rbp + rax + 8]
mov rax, qword [rbx]
mov rax, qword [rax]
mov word [r12 + 0x3c], r9w
mov word [r12 + 0x40], r10w
mov qword [rsp + 0x58], rax
lea rax, [r12 + 0x58]
mov qword [r12 + 0x48], rax
lea rax, [rbp + 8]
mov dword [r12 + 0x38], 0
mov dword [rsp + 0x164], 0x4e20
cmp rsi, rax
jbe 0x8ddf2e
lea rcx, [rsp + 0x140]
mov qword [rsp + 0x60], r14
xor edi, edi
lea r15, [rbx + 0x260]
mov qword [rsp + 0x50], rcx
lea rbx, [rbp + 0x78]
mov eax, 0x4e20
xor ebp, ebp
mov qword [rsp + 0x290], r13
nop dword [rax]
add eax, 0x3e8
mov byte [r12 + 0x10], bpl
mov dword [rsp + 0x164], eax
mov rax, qword [rsp + 0x48]
mov edx, dword [rbx - 0x2c]
mov r11d, dword [rax + 0x268]
mov eax, 1
cmp edx, r11d
je 0x8ddec2
mov rcx, r15
call fcn.00870730
mov qword [r12 + 8], rax
mov rax, qword [rbx - 0x50]
mov r13d, 0
test byte [rbx - 0x34], 0xa
cmovne r13, rdi
cmp byte [rax + 0x3f], 1
je 0x8decc0
mov rcx, qword [rsp + 0x50]
mov rdx, r13
xor r14d, r14d
call fcn.0089d030
test eax, eax
jne 0x8dec88
mov rax, qword [rsp + 0x148]
cmp byte [rax + 0x11], 0
jne 0x8ded48
or rdi, qword [r12 + 8]
mov rax, qword [rsp + 0x58]
cmp byte [rax + 0x67], 0
je 0x8deca3
mov r14, qword [rsp + 0x60]
mov r13, qword [rsp + 0x290]
mov rcx, qword [rsp + 0x58]
mov rdx, r12
call fcn.00870c50
xor edx, edx
mov rcx, r14
call fcn.0089e8d0
mov rax, qword [rsp + 0xa8]
cmp byte [rax + 0x67], 0
jne 0x8dec40
cmp qword [r14 + 0x10], 0
je 0x8df0d0
movzx eax, word [r14 + 0x50]
mov rcx, r14
lea edx, [rax + 1]
movsx edx, dx
call fcn.0089e8d0
mov rax, qword [rsp + 0xa8]
cmp byte [rax + 0x67], 0
jne 0x8dec40
cmp qword [r14 + 0x10], 0
je 0x8df0d0
mov eax, dword [r13 + 0x30]
mov dword [rsp + 0x60], eax
test eax, eax
jne 0x8dec40
movzx eax, byte [r14 + 0x48]
cmp al, 1
jbe 0x8e0450
cmp qword [rsp + 0x2b0], 0
je 0x8e0450
mov rax, qword [rsp + 0xa8]
test word [rsp + 0x68], 0x400
mov qword [rsp + 0xa0], 0xffffffffffffffff
mov eax, dword [rax + 0x60]
jne 0x8ddfe7
test ah, 1
je 0x8e1560
test eax, 0x80000
je 0x8e1377
mov rax, qword [r14]
movzx ebx, word [rsp + 0x68]
movsx edx, word [r14 + 0x50]
add dword [rax + 0xc8], edx
mov eax, ebx
mov dword [rsp + 0xdc], ebx
test al, 4
je 0x8de048
mov rdx, qword [r14 + 0x3c0]
mov eax, dword [rdx + 0x38]
test ah, 0x10
je 0x8e0940
mov rbx, qword [rsp + 0x298]
mov r8d, 1
mov rcx, qword [rbx + 0x28]
mov byte [r14 + 0x4a], r8b
test byte [rcx + 0x30], 0x80
je 0x8e13e2
nop dword [rax]
mov eax, dword [rsp + 0xb0]
test eax, eax
jle 0x8e1ad2
sub eax, 1
mov rbp, qword [rsp + 0xa8]
mov rbx, qword [rsp + 0x70]
lea rdx, [rax + rax*2]
lea rax, [rax + rdx*4]
lea r15, [r14 + rax*8 + 0x3d0]
movzx eax, word [rsp + 0x68]
mov qword [rsp + 0x48], r15
mov r15, qword [rsp + 0x298]
and eax, 0x20
mov word [rsp + 0x50], ax
nop dword [rax]
movzx edi, byte [rbx + 0x38]
lea rax, [rdi*8]
sub rax, rdi
shl rax, 4
mov rsi, qword [r15 + rax + 0x28]
mov rdx, qword [rsi + 0x60]
test rdx, rdx
je 0x8e1e36
mov rcx, rbp
call fcn.0086fe70
mov r12d, eax
mov r11, qword [rbx + 0x58]
mov eax, dword [r11 + 0x38]
test byte [rsi + 0x31], 0x40
jne 0x8de1a0
movzx edx, byte [rsi + 0x3f]
cmp dl, 2
je 0x8de1a0
test ah, 4
jne 0x8e01a0
cmp dl, 1
je 0x8de1a0
test al, 0x40
jne 0x8e0018
cmp word [rsp + 0x50], 0
jne 0x8e0018
lea rax, [rdi*8]
sub rax, rdi
shl rax, 4
cmp byte [r14 + 0x4a], 0
mov edx, dword [r15 + rax + 0x4c]
mov eax, 0x65
je 0x8de136
mov dword [r14 + 0x30], edx
mov eax, 0x70
mov dword [rsp + 0x20], eax
mov r9, rsi
mov r8d, r12d
mov rcx, r13
mov qword [rsp + 0x58], r11
call fcn.00893ae0
mov r11, qword [rsp + 0x58]
cmp byte [r14 + 0x4a], 0
mov eax, dword [r11 + 0x38]
jne 0x8de168
cmp word [rsi + 0x36], 0x3f
jle 0x8e149f
mov rcx, qword [rsp + 0xb8]
movsxd rdx, dword [rcx + 0x98]
test edx, edx
jle 0x8de1a0
mov r8, qword [rcx + 0x90]
lea rdx, [rdx + rdx*2]
movzx ecx, byte [rsp + 0x80]
lea rdx, [r8 + rdx*8]
mov word [rdx - 0x16], cx
nop word cs:[rax + rax]
test ah, 2
je 0x8de258
mov r10, qword [r11 + 0x20]
test byte [rsi + 0x30], 0x80
je 0x8de1c3
movzx eax, byte [r10 + 0x64]
and eax, 3
cmp al, 2
je 0x8e0228
cmp byte [r14 + 0x4a], 0
jne 0x8dffc0
mov esi, dword [rsp + 0x2c8]
test esi, esi
je 0x8df7a0
cmp word [rsp + 0x50], 0
je 0x8df7a0
mov eax, dword [rsp + 0x2c8]
mov edx, 0x64
mov dword [rbx + 8], eax
mov r8d, eax
nop dword [rax + rax]
mov r9d, dword [r10 + 0x58]
mov rsi, qword [rsp + 0xb8]
mov dword [rsp + 0x20], r12d
mov qword [rsp + 0x68], r11
mov rcx, rsi
mov qword [rsp + 0x58], r10
call fcn.00883630
mov r10, qword [rsp + 0x58]
mov rcx, r13
mov rdx, r10
call fcn.00893aa0
mov r11, qword [rsp + 0x68]
mov eax, dword [r11 + 0x38]
test al, 0xf
je 0x8de258
test eax, 0x188002
jne 0x8de258
test byte [r14 + 0x44], 1
je 0x8e1384
nop word [rax + rax]
test r12d, r12d
js 0x8de268
mov edx, r12d
mov rcx, r13
call fcn.008c5c40
add rbx, 0x68
cmp rbx, qword [rsp + 0x48]
jne 0x8de098
mov rax, qword [rsp + 0xb8]
mov eax, dword [rax + 0x98]
mov dword [r14 + 0x54], eax
mov rax, qword [rsp + 0xa8]
cmp byte [rax + 0x67], 0
jne 0x8dec40
mov rdi, qword [rsp + 0x78]
mov qword [rsp + 0x50], r14
mov r15, qword [rsp + 0xb8]
mov rbp, rdi
mov eax, dword [r13 + 0x30]
mov dword [rsp + 0xd8], eax
test eax, eax
jne 0x8e0598
mov rax, qword [rbp + 0x58]
mov eax, dword [rax + 0x38]
test eax, 0x404000
je 0x8de329
test ah, 0x40
je 0x8df778
movzx edx, byte [rbp + 0x38]
mov rbx, qword [rsp + 0x298]
mov qword [rsp + 0x20], rbp
mov rcx, r13
mov r9, qword [rsp + 0xa0]
lea rax, [rdx*8]
sub rax, rdx
mov rdx, qword [rsp + 0x88]
shl rax, 4
lea r8, [rbx + rax + 8]
call fcn.008dc230
mov rax, qword [rsp + 0xa8]
cmp byte [rax + 0x67], 0
jne 0x8e0598
mov rax, qword [r13 + 0xa0]
test rax, rax
cmove rax, r13
cmp byte [rax + 0x123], 2
jne 0x8de35b
mov r9d, dword [rsp + 0xdc]
mov rdx, qword [rsp + 0x298]
mov r8, rbp
mov rcx, r13
call fcn.008839d0
mov eax, dword [r15 + 0x98]
movzx esi, byte [rbp + 0x38]
mov rdi, qword [rsp + 0x50]
mov r12, qword [rbp + 0x58]
mov dword [rbp + 0x20], eax
mov rax, qword [r13]
mov rbx, rsi
mov rcx, qword [rdi + 8]
mov qword [rsp + 0x80], rsi
mov qword [rsp + 0x48], rax
lea rax, [rsi*8]
sub rax, rsi
mov qword [rsp + 0x58], rcx
shl rax, 4
mov esi, dword [rcx + rax + 0x4c]
lea rcx, [rdi + 0x260]
mov rax, 0xfffffffffffffffe
mov dword [rsp + 0x9c], esi
cmp esi, dword [rdi + 0x268]
je 0x8de3c9
mov edx, esi
call fcn.00870730
not rax
and rax, qword [rsp + 0xa0]
mov qword [rbp + 0x60], rax
mov rax, qword [rsp + 0x50]
mov rdi, qword [rax + 0x70]
mov eax, dword [r13 + 0x44]
lea esi, [rax - 1]
mov dword [r13 + 0x44], esi
mov dword [rbp + 0x10], esi
mov dword [rbp + 0xc], esi
mov eax, dword [r13 + 0x44]
sub eax, 1
mov dword [r13 + 0x44], eax
cmp byte [rbp + 0x38], 0
mov dword [rsp + 0xb4], eax
mov dword [rbp + 0x18], eax
je 0x8de431
mov rcx, qword [rsp + 0x80]
lea rax, [rcx*8]
sub rax, rcx
mov rcx, qword [rsp + 0x58]
shl rax, 4
test byte [rcx + rax + 0x44], 8
jne 0x8dfc40
mov eax, dword [rsp + 0x60]
test eax, eax
je 0x8dfc78
lea rdx, [rbp - 0x368]
jmp 0x8de459
sub rdx, 0x68
sub eax, 1
je 0x8de463
mov ecx, dword [rdx + 0x368]
test ecx, ecx
je 0x8de450
mov rcx, qword [rsp + 0x80]
lea rdx, [rcx*8]
sub rdx, rcx
shl rdx, 4
add rdx, qword [rsp + 0x58]
movzx r8d, byte [rdx + 0x48]
mov ecx, r8d
and ecx, 0x10
mov byte [rsp + 0x70], cl
jne 0x8df680
movzx ecx, byte [rsp + 0x60]
mov edx, dword [r12 + 0x38]
shr rdi, cl
and edi, 1
mov dword [rsp + 0x68], edi
test dh, 4
jne 0x8df7c0
test dh, 1
je 0x8de4bf
test dl, 5
jne 0x8e03c0
cdqe
mov rdi, qword [rsp + 0x50]
lea rcx, [rax + rax*2]
lea rax, [rax + rcx*4]
mov r9d, dword [rdi + rax*8 + 0x374]
mov eax, edx
and eax, 0x102
cmp eax, 0x102
je 0x8dfc80
test dh, 2
je 0x8dfe80
movzx eax, word [r12 + 0x1c]
movzx esi, word [r12 + 0x18]
movzx ebx, word [r12 + 0x1a]
mov word [rsp + 0xe8], ax
mov rax, qword [r12 + 0x20]
mov word [rsp + 0x100], bx
mov qword [rsp + 0x78], rax
mov eax, dword [rbp + 8]
mov dword [rsp + 0xd0], eax
movzx eax, si
mov dword [rsp + 0xc0], eax
test dl, 0x20
je 0x8e0520
mov r8, qword [r12 + 0x48]
movzx ecx, si
add eax, 1
mov r14, qword [r8 + rcx*8]
test dl, 0x10
je 0x8e0508
mov rcx, qword [r12 + 0x48]
cdqe
mov rdi, qword [rcx + rax*8]
movzx eax, word [rsp + 0xe8]
cmp ebx, eax
cmovl ebx, eax
test byte [rdi + 0x13], 1
jne 0x8e1723
mov byte [rsp + 0xf0], 0
test r14, r14
je 0x8e19dd
and edx, 0x80030
mov dword [rsp + 0x90], 0
cmp edx, 0x80000
je 0x8e05f0
mov rcx, qword [rsp + 0x78]
cmp si, word [rcx + 0x60]
jae 0x8de608
mov rdx, qword [rcx + 0x38]
movzx eax, si
cmp byte [rdx + rax], 0
sete al
movzx eax, al
cmp dword [rsp + 0x68], eax
jne 0x8de608
movzx eax, byte [rsp + 0x100]
movzx ecx, word [rsp + 0xe8]
movzx edx, byte [rsp + 0xf0]
mov byte [rsp + 0xf0], 0
mov word [rsp + 0x100], cx
mov word [rsp + 0xe8], ax
mov byte [rsp + 0x70], dl
mov rdx, r14
mov r14, rdi
mov rdi, rdx
nop dword [rax]
mov r10d, dword [rsp + 0x60]
test r10d, r10d
je 0x8de61e
test byte [r12 + 0x3a], 0x10
jne 0x8e12c9
mov r8d, dword [rsp + 0x68]
mov r9d, ebx
mov rdx, rbp
mov rcx, r13
lea rax, [rsp + 0x138]
mov qword [rsp + 0x20], rax
call fcn.008dd3e0
cmp word [rsp + 0xe8], 0
mov dword [rsp + 0xc8], eax
mov rax, qword [rsp + 0x138]
je 0x8de661
test rax, rax
jne 0x8e09b8
mov qword [rsp + 0xe0], 0
mov r9d, dword [rsp + 0x90]
test r9d, r9d
je 0x8e0538
mov eax, dword [rbp + 0x28]
mov dword [rsp + 0xec], eax
test r14, r14
setne al
test si, si
setne dl
test r14, r14
je 0x8e06a8
xor ebx, ebx
test byte [r14 + 0x14], 0x28
setne bl
mov dword [rsp + 0xf8], ebx
test rdi, rdi
je 0x8e1120
or eax, edx
movzx eax, al
mov dword [rsp + 0xfc], eax
xor eax, eax
test byte [rdi + 0x14], 0x28
setne al
mov dword [rsp + 0x104], eax
movzx r9d, word [rsp + 0x100]
mov rax, qword [r14]
mov rcx, r13
mov rbx, qword [rax + 0x18]
mov eax, dword [rsp + 0xc0]
mov dword [rsp + 0xf0], r9d
add eax, dword [rsp + 0xc8]
mov r8d, eax
mov rdx, rbx
mov dword [rsp + 0x100], eax
call fcn.008d54f0
movzx eax, word [r14 + 0x12]
test ah, 1
je 0x8de729
lea rdx, [rbp + 0x2c]
mov rcx, r15
call fcn.008706f0
movzx eax, word [r14 + 0x12]
test al, 0x80
je 0x8e16a0
mov r8, qword [rsp + 0x138]
test r8, r8
je 0x8de753
movzx eax, si
mov edx, dword [rsp + 0xf0]
mov rcx, rbx
add r8, rax
call fcn.0086f000
movzx eax, byte [rbx]
mov esi, dword [rsp + 0xf0]
add esi, dword [rsp + 0xc0]
cmp al, 0xb0
jne 0x8de76c
movzx eax, byte [rbx + 2]
cmp al, 0xb1
je 0x8e1aaa
cmp al, 0x8a
je 0x8e1a48
mov r8, r14
lea rdx, [rbp + 0x60]
mov rcx, rbp
call fcn.00870660
mov r8d, esi
mov dword [rsp + 0x100], 0
mov rcx, qword [r13 + 0x10]
mov r9, qword [rsp + 0x138]
mov edx, dword [rsp + 0xc8]
call fcn.00883930
movzx eax, word [r12 + 0x3e]
test ax, ax
je 0x8de7c4
cmp esi, eax
je 0x8e147f
mov r14d, dword [rsp + 0xfc]
mov ecx, dword [rsp + 0x90]
shl r14d, 2
test ecx, ecx
jne 0x8e08ed
mov r8d, dword [rbp + 0x34]
test r8d, r8d
jne 0x8e0830
mov eax, dword [rsp + 0xf8]
lea rbx, [0x010e54d0]
lea eax, [r14 + rax*2]
add eax, dword [rsp + 0x68]
cdqe
movzx r14d, byte [rbx + rax]
test byte [r12 + 0x3a], 0x10
je 0x8de81b
cmp r14d, 0x19
je 0x8e1cee
mov dword [rsp + 0xf0], 0
mov eax, dword [rsp + 0xc8]
mov dword [rsp + 0x28], esi
mov edx, r14d
mov rcx, r15
mov r9d, dword [rsp + 0xec]
mov r8d, dword [rsp + 0xd0]
mov dword [rsp + 0x20], eax
call fcn.008836a0
mov edx, dword [rsp + 0x90]
test edx, edx
jne 0x8e07c0
test rdi, rdi
je 0x8e0670
mov rax, qword [rdi]
mov rsi, qword [rax + 0x18]
mov eax, dword [rsp + 0xf0]
test eax, eax
je 0x8de884
mov eax, dword [r15 + 0x98]
mov dword [rbp + 0x40], eax
movzx ebx, word [rsp + 0xe8]
mov r14d, dword [rsp + 0xc0]
mov rdx, rsi
mov rcx, r13
add r14d, dword [rsp + 0xc8]
mov r9d, ebx
mov r8d, r14d
call fcn.008d54f0
movzx eax, word [rdi + 0x12]
test ah, 1
je 0x8de8c6
lea rdx, [rbp + 0x2c]
mov rcx, r15
call fcn.008706f0
movzx eax, word [rdi + 0x12]
test al, 0x80
je 0x8e0980
mov rax, qword [rsp + 0xe0]
test rax, rax
je 0x8de8ff
mov r8, rax
mov edx, ebx
mov rcx, rsi
call fcn.0086f000
mov rcx, qword [r13 + 0x10]
mov r8d, ebx
mov edx, r14d
mov r9, qword [rsp + 0xe0]
call fcn.00883930
mov eax, dword [rsp + 0xc0]
lea r14d, [rax + rbx]
movzx eax, byte [rsi]
cmp al, 0xb0
jne 0x8de915
movzx eax, byte [rsi + 2]
cmp al, 0xb1
je 0x8e1a3d
cmp al, 0x8a
je 0x8e1354
lea rdx, [rbp + 0x60]
mov r8, rdi
mov rcx, rbp
call fcn.00870660
mov rdx, qword [rsp + 0x138]
test rdx, rdx
je 0x8de94b
mov rcx, qword [rsp + 0x48]
call fcn.00869bb0
mov rax, qword [rsp + 0xe0]
test rax, rax
je 0x8de965
mov rcx, qword [rsp + 0x48]
mov rdx, rax
call fcn.00869bb0
mov eax, dword [rbp + 0x40]
test eax, eax
jne 0x8de976
mov eax, dword [r15 + 0x98]
mov dword [rbp + 0x40], eax
test r14d, r14d
je 0x8df398
mov eax, dword [rsp + 0x68]
mov esi, dword [rsp + 0x104]
lea ebx, [rax + rax]
mov eax, dword [rsp + 0x90]
add esi, ebx
test eax, eax
jne 0x8df300
mov eax, dword [rsp + 0xc8]
mov dword [rsp + 0x28], r14d
movsxd rsi, esi
mov rcx, r15
lea rdi, [0x010e54c9]
mov r9d, dword [rsp + 0xec]
mov r8d, dword [rsp + 0xd0]
mov dword [rsp + 0x20], eax
movzx edx, byte [rdi + rsi]
call fcn.008836a0
mov r10d, dword [rsp + 0xf0]
test r10d, r10d
jne 0x8df369
nop dword [rax]
mov eax, dword [r12 + 0x38]
test eax, 0x40000
jne 0x8e0638
test al, 0x40
je 0x8e0048
mov rax, qword [rsp + 0x50]
test byte [rax + 0x44], 0x20
jne 0x8e0048
mov edi, 1
mov edx, dword [rbp]
test edx, edx
je 0x8e178a
mov eax, dword [r12 + 0x38]
test ah, 0x10
je 0x8e04c8
mov byte [rbp + 0x39], 0xb6
mov edx, eax
mov ebx, dword [rsp + 0xd0]
shr edx, 0x10
and edx, 1
mov dword [rbp + 0x3c], ebx
mov byte [rbp + 0x3a], dl
test al, 0xf
jne 0x8dea4e
mov byte [rbp + 0x3b], 1
test edi, edi
mov eax, 0
cmove rax, qword [rsp + 0x78]
cmp edi, 1
sbb esi, esi
mov qword [rsp + 0x78], rax
add esi, 2
nop dword [rax + rax]
mov rax, qword [rsp + 0x80]
mov r14d, dword [rsp + 0xb4]
lea rdi, [rax*8]
sub rdi, rax
shl rdi, 4
mov qword [rsp + 0x90], rdi
mov rdi, qword [rsp + 0x50]
nop dword [rax]
mov eax, dword [rdi + 0x8c]
mov r12, qword [rdi + 0x98]
test eax, eax
jle 0x8df4a0
sub eax, 1
mov dword [rsp + 0x48], esi
xor ebx, ebx
add rax, 1
lea rdx, [rax*8]
sub rdx, rax
lea rax, [r12 + rdx*8]
mov qword [rsp + 0x68], rax
mov rax, r12
mov r12, r15
mov r15, rax
jmp 0x8debc7
mov rcx, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x90]
mov r11, qword [r15]
test byte [rcx + rsi + 0x44], 8
je 0x8deb0a
test byte [r11 + 4], 1
je 0x8debbc
cmp dword [rsp + 0x48], 1
je 0x8df420
cmp dword [rsp + 0x48], 3
jne 0x8df443
test ah, 2
je 0x8df460
mov r8d, dword [rbp + 0x2c]
test r8d, r8d
je 0x8df460
mov eax, r8d
mov dword [rsp + 0x20], 0
mov rcx, r12
and eax, 1
mov qword [rsp + 0x70], r11
cmp eax, 1
sbb edx, edx
xor r9d, r9d
shr r8d, 1
and edx, 0xfffffffe
add edx, 0x14
call fcn.00883630
mov r11, qword [rsp + 0x70]
mov r8d, r14d
mov rcx, r13
mov esi, eax
mov r9d, 0x10
mov rdx, r11
call fcn.008d25e0
test esi, esi
je 0x8debb6
mov edx, dword [r12 + 0x98]
mov rcx, qword [r12]
lea eax, [rdx - 1]
cmovs esi, eax
cmp byte [rcx + 0x67], 0
lea rax, [0x01164020]
jne 0x8debb3
movsxd rax, esi
lea rcx, [rax + rax*2]
mov rax, qword [r12 + 0x90]
lea rax, [rax + rcx*8]
mov dword [rax + 8], edx
or word [r15 + 0x12], 4
add r15, 0x38
cmp r15, qword [rsp + 0x68]
je 0x8debed
movzx eax, word [r15 + 0x12]
test al, 6
jne 0x8debbc
mov rdx, qword [r15 + 0x30]
test qword [rbp + 0x60], rdx
je 0x8deae8
or byte [rdi + 0x4c], 2
add r15, 0x38
cmp r15, qword [rsp + 0x68]
jne 0x8debc7
mov r15, r12
test ebx, ebx
je 0x8df490
mov esi, ebx
jmp 0x8deaa0
mov eax, dword [rsp + 0xb0]
lea ebx, [rax - 1]
imul ebx, ebx, 0x68
add ebx, 0x3d0
movsxd rbx, ebx
lea rdx, [rbx + 0x70]
jmp 0x8dda30
mov rcx, qword [rsp + 0x58]
mov rdx, r12
mov r14, qword [rsp + 0x60]
mov r13, qword [rsp + 0x290]
call fcn.00870c50
nop dword [rax]
lea rdx, [r14 + 0x68]
mov rcx, r14
call fcn.00876280
mov eax, dword [r14 + 0x40]
mov rcx, qword [rsp + 0xa8]
mov rdx, r14
xor r14d, r14d
mov dword [r13 + 0xc8], eax
call fcn.00879c00
mov rax, r14
add rsp, 0x248
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
or rdi, qword [r12 + 8]
cmp eax, 0x65
jne 0x8dec1f
lea rdx, str.abbreviated_query_algorithm_search
mov ecx, 0x1c
call fcn.0088ac50
add ebp, 1
cmp rsi, rbx
jbe 0x8ddf21
mov eax, dword [rsp + 0x164]
add rbx, 0x70
jmp 0x8dde90
cmp rsi, rbx
jbe 0x8e0550
mov r10, rbx
xor r14d, r14d
jmp 0x8decf9
add r10, 0x70
mov edx, dword [rax + 0x44]
mov eax, 1
cmp r11d, edx
je 0x8decf1
mov rcx, r15
call fcn.00870730
or r14, rax
cmp rsi, r10
jbe 0x8ded30
mov rax, r10
test r14, r14
jne 0x8decd8
movzx edx, byte [r10 + 0x3c]
add r10, 0x70
and edx, 0xa
jne 0x8decdc
cmp rsi, r10
jbe 0x8ded30
movzx edx, byte [r10 + 0x3c]
mov rax, r10
add r10, 0x70
and edx, 0xa
jne 0x8decdc
cmp rsi, r10
ja 0x8ded14
nop word [rax + rax]
mov rcx, qword [rsp + 0x50]
mov r8, r14
mov rdx, r13
call fcn.00889ba0
jmp 0x8ddef3
mov rcx, qword [rsp + 0x50]
mov r8, r14
mov rdx, r13
call fcn.0089d850
or rdi, qword [r12 + 8]
test eax, eax
je 0x8ddf12
jmp 0x8dec8d
mov rdx, qword [rbx]
jmp 0x8ddd74
mov rax, qword [rsp + 0x298]
mov dword [rsp + 0x48], 0
mov qword [rsp + 0x60], r14
lea rsi, [rax + 0x28]
nop dword [rax]
mov rdi, qword [rsp + 0x60]
mov edx, dword [rsi + 0x24]
movsxd rax, dword [rdi + 0x264]
lea ecx, [rax + 1]
mov dword [rdi + 0x264], ecx
mov dword [rdi + rax*4 + 0x268], edx
movsxd rdx, dword [rsp + 0x48]
mov rdi, qword [rsp + 0x298]
lea rax, [rdx*8]
sub rax, rdx
shl rax, 4
test byte [rdi + rax + 0x48], 4
je 0x8def40
mov r14, qword [rsi + 0x40]
test r14, r14
je 0x8def40
mov ebx, dword [r14]
test ebx, ebx
jle 0x8def40
mov rdi, qword [rsi]
xor ebp, ebp
xor r12d, r12d
nop word cs:[rax + rax]
movsx edx, word [rdi + 0x36]
mov r9d, ebp
cmp edx, r12d
jle 0x8defa0
movsxd rax, r12d
mov rcx, qword [rdi + 8]
mov ebx, r12d
lea r11, [rax + rax*2]
shl r11, 3
jmp 0x8dee47
add ebx, 1
add r11, 0x18
cmp ebx, edx
je 0x8defa0
test byte [rcx + r11 + 0x12], 2
je 0x8dee38
mov rcx, qword [r13]
xor r9d, r9d
xor r8d, r8d
mov edx, 0xa7
mov qword [rsp + 0x50], r11
call fcn.00880ba0
mov r11, qword [rsp + 0x50]
test rax, rax
mov r15, rax
je 0x8def40
mov eax, dword [rsi + 0x24]
lea r12d, [rbx + 1]
mov word [r15 + 0x30], bx
mov qword [r15 + 0x40], rdi
mov dword [r15 + 0x2c], eax
test byte [rdi + 0x30], 0x60
je 0x8def70
mov rax, qword [rdi + 8]
test byte [rax + r11 + 0x12], 0x60
je 0x8def70
movzx ecx, word [rdi + 0x36]
mov eax, 1
mov rdx, 0xffffffffffffffff
shl rax, cl
sub rax, 1
cmp cx, 0x40
cmovge rax, rdx
or qword [rsi + 0x38], rax
mov rax, rbp
shl rax, 5
mov rdx, qword [r14 + rax + 8]
test rdx, rdx
je 0x8deeed
mov rcx, qword [r13]
xor r9d, r9d
xor r8d, r8d
call fcn.0087f670
mov rdx, rax
mov r8, rdx
xor r9d, r9d
mov edx, 0xae
mov rcx, r13
call fcn.00890580
mov r8, r15
mov edx, 0x35
mov rcx, r13
mov r9, rax
call fcn.00890580
mov r9, rax
test byte [rsi + 0x1c], 8
jne 0x8def90
mov rcx, qword [rsp + 0x88]
mov r8d, 1
mov rdx, r9
add rbp, 1
call fcn.008816c0
cmp dword [r14], ebp
jg 0x8dee10
nop
mov rdi, qword [rsp + 0x298]
add dword [rsp + 0x48], 1
add rsi, 0x70
mov eax, dword [rsp + 0x48]
cmp dword [rdi], eax
jg 0x8deda0
mov r14, qword [rsp + 0x60]
jmp 0x8ddc06
cmp ebx, 0x3f
mov ecx, 0x3f
mov eax, 1
cmovle ecx, ebx
shl rax, cl
jmp 0x8deec6
mov edx, dword [rsi + 0x24]
mov rcx, rax
call fcn.00864d50
jmp 0x8def1c
mov r8, qword [rdi]
lea rdx, str.too_many_arguments_on__s_____max__d
mov rcx, r13
call fcn.0087dd60
jmp 0x8def40
test rax, rax
je 0x8dec6a
mov rcx, qword [rsp + 0xa8]
mov rdx, rax
xor r14d, r14d
call fcn.00869bb0
jmp 0x8dec6a
mov rax, qword [rsp + 0xa8]
test byte [rax + 0x60], 0x10
jne 0x8ddbf5
mov byte [r14 + 0x4b], 1
jmp 0x8ddbf5
mov rdx, qword [rbx + 0x28]
cmp dword [rdx], 1
jne 0x8ddc6c
mov rcx, qword [rdx + 0x28]
cmp byte [rcx + 0x3f], 1
jne 0x8ddc6c
mov ecx, dword [r14 + 0x8c]
mov ebx, dword [rdx + 0x4c]
test ecx, ecx
jle 0x8df067
lea r9d, [rcx - 1]
mov r8, qword [r14 + 0x98]
lea rcx, [r9*8]
sub rcx, r9
lea rdx, [r8 + 0x12]
lea rcx, [r8 + rcx*8 + 0x4a]
nop dword [rax + rax]
test byte [rdx], 4
jne 0x8df05e
cmp ebx, dword [rdx + 0xa]
jne 0x8ddc6c
add rdx, 0x38
cmp rcx, rdx
jne 0x8df050
mov rdi, qword [rsp + 0x2b8]
mov rcx, qword [rdi + 0x48]
test rcx, rcx
je 0x8e200f
mov r8d, dword [rcx]
test r8d, r8d
jle 0x8e200f
sub r8d, 1
lea rdx, [rcx + 8]
shl r8, 5
lea r8, [rcx + r8 + 0x28]
jmp 0x8df0c0
cmp ebx, dword [rcx + 0x2c]
jne 0x8ddc6c
test byte [rdx + 0x10], 2
jne 0x8ddc6c
add rdx, 0x20
cmp r8, rdx
je 0x8e200f
mov rcx, qword [rdx]
cmp byte [rcx], 0xa7
je 0x8df0a0
jmp 0x8ddc6c
mov rax, qword [rsp + 0xa8]
test byte [rax + 0x31], 0x10
je 0x8ddf92
mov qword [r14 + 0x70], 0xffffffffffffffff
jmp 0x8ddf92
mov rax, qword [rsp + 0x298]
cmp dword [rax], 1
jne 0x8df2d9
mov rax, qword [rsp + 0x298]
mov r15d, dword [rax + 0x4c]
mov r9, qword [rax + 0x28]
mov rax, qword [rsp + 0x2b0]
mov eax, dword [rax]
test eax, eax
jle 0x8df189
mov rdi, qword [rsp + 0x2b0]
sub eax, 1
shl rax, 5
lea rcx, [rdi + 8]
lea r8, [rdi + rax + 0x28]
nop word [rax + rax]
mov rax, qword [rcx]
test rax, rax
jne 0x8df15d
jmp 0x8df180
mov rax, qword [rax + 0x20]
mov rax, qword [rax + 8]
test rax, rax
je 0x8df180
mov edx, dword [rax + 4]
test edx, 0x41000
je 0x8e1640
and edx, 0x40000
jne 0x8df150
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x8df15d
nop dword [rax]
add rcx, 0x20
cmp r8, rcx
jne 0x8df140
mov rsi, qword [r9 + 0x10]
test rsi, rsi
je 0x8df2d9
mov qword [rsp + 0x290], r13
mov rdi, qword [rsp + 0x2b0]
mov r13d, r15d
mov qword [rsp + 0x48], r14
mov r15, qword [rsp + 0x88]
jmp 0x8df1cd
mov rsi, qword [rsi + 0x28]
test rsi, rsi
je 0x8df2cc
cmp byte [rsi + 0x62], 0
je 0x8df1c0
cmp qword [rsi + 0x48], 0
jne 0x8df1c0
cmp word [rsi + 0x5e], 0
je 0x8df2b5
xor ebp, ebp
jmp 0x8df204
movzx eax, word [rsi + 0x5e]
add rbp, 1
lea r12d, [r14 + 1]
cmp eax, ebp
jle 0x8df2ac
mov qword [rsp + 0x28], rsi
mov r8d, ebp
mov edx, r13d
mov rcx, r15
mov dword [rsp + 0x20], 2
mov r9, 0xffffffffffffffff
mov r14d, ebp
mov r12d, ebp
call fcn.0089c480
test rax, rax
jne 0x8df1f0
mov rax, qword [rsi + 0x40]
mov r8d, dword [rdi]
mov r9, qword [rax + rbp*8]
test r8d, r8d
jle 0x8df2a8
lea r8, [rbp + rbp]
xor ebx, ebx
nop dword [rax + rax]
mov rax, rbx
shl rax, 5
mov r10, qword [rdi + rax + 8]
mov rax, r10
test r10, r10
jne 0x8df27d
jmp 0x8df2a0
mov rax, qword [rax + 0x20]
mov rax, qword [rax + 8]
test rax, rax
je 0x8df2a0
mov edx, dword [rax + 4]
test edx, 0x41000
je 0x8e1588
and edx, 0x40000
jne 0x8df270
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x8df27d
nop dword [rax]
add rbx, 1
cmp dword [rdi], ebx
jg 0x8df250
movzx eax, word [rsi + 0x5e]
cmp eax, r12d
jne 0x8df1c0
mov r14, qword [rsp + 0x48]
mov r13, qword [rsp + 0x290]
mov byte [r14 + 0x4b], 1
jmp 0x8dddcf
mov r14, qword [rsp + 0x48]
mov r13, qword [rsp + 0x290]
cmp qword [rsp + 0x2a8], 0
jne 0x8dddcf
mov rax, qword [rsp + 0x2b0]
or word [r14 + 0x44], 0x80
mov qword [r14 + 0x10], rax
jmp 0x8dddcf
mov eax, dword [r15 + 0x98]
mov edx, 0x14
mov rcx, r15
movsxd rsi, esi
mov dword [rsp + 0x20], 0
mov r8d, dword [rsp + 0x90]
lea rdi, [0x010e54c9]
lea r9d, [rax + 3]
call fcn.00883630
mov eax, dword [rsp + 0xc8]
mov rcx, r15
mov dword [rsp + 0x28], r14d
movzx edx, byte [rdi + rsi]
mov r9d, dword [rsp + 0xec]
mov dword [rsp + 0x20], eax
mov r8d, dword [rsp + 0xd0]
call fcn.008836a0
mov eax, dword [rsp + 0xf0]
test eax, eax
je 0x8df3b5
mov ebx, dword [rsp + 0xf0]
mov eax, dword [r15 + 0x98]
mov rcx, qword [r15]
test ebx, ebx
lea edx, [rax - 1]
cmovns edx, ebx
cmp byte [rcx + 0x67], 0
mov edi, edx
lea rdx, [0x01164020]
je 0x8e1439
mov dword [rdx + 8], eax
mov edi, dword [rsp + 0x90]
test edi, edi
je 0x8de9e8
mov eax, dword [rsp + 0x68]
lea rdi, [0x010e54c9]
lea ebx, [rax + rax]
mov eax, dword [r15 + 0x98]
mov dword [rsp + 0x20], 0
mov rcx, r15
mov edx, 0x12
mov r8d, dword [rsp + 0x90]
lea r9d, [rax + 2]
call fcn.00883630
mov esi, dword [rsp + 0x100]
mov r9d, dword [rsp + 0xec]
mov rcx, r15
mov r8d, dword [rsp + 0xd0]
lea eax, [rbx + rsi]
lea ebx, [r14 + rsi]
cdqe
mov dword [rsp + 0x28], ebx
movzx edx, byte [rdi + rax]
mov eax, dword [rsp + 0xc8]
mov dword [rsp + 0x20], eax
call fcn.008836a0
jmp 0x8de9e8
mov edx, dword [rbp + 4]
mov r8, qword [rsp + 0x78]
mov rcx, r11
mov qword [rsp + 0x70], r11
call fcn.0086e620
test eax, eax
je 0x8df480
movzx eax, word [r15 + 0x12]
mov r11, qword [rsp + 0x70]
test ah, 0x10
je 0x8deb20
test ebx, ebx
mov eax, 3
cmove ebx, eax
jmp 0x8debbc
mov r9d, 0x10
mov r8d, r14d
mov rdx, r11
mov rcx, r13
call fcn.008d25e0
jmp 0x8debb6
mov ebx, 2
jmp 0x8debbc
mov rax, qword [rsp + 0x50]
mov r12, qword [rax + 0x98]
nop dword [rax]
mov rax, qword [rsp + 0x50]
mov eax, dword [rax + 0x94]
test eax, eax
jle 0x8df620
sub eax, 1
mov ebx, dword [rsp + 0x9c]
mov r14, r13
add rax, 1
lea rdx, [rax*8]
sub rdx, rax
mov rax, qword [rsp + 0x80]
lea rsi, [r12 + rdx*8]
lea rdi, [rax*8]
sub rdi, rax
shl rdi, 4
mov r13, rdi
nop dword [rax]
test byte [r12 + 0x12], 6
jne 0x8df610
movzx eax, word [r12 + 0x14]
test al, 0x82
je 0x8df610
test ah, 8
je 0x8df610
cmp ebx, dword [r12 + 0x1c]
jne 0x8df610
mov rax, qword [rsp + 0x58]
test byte [rax + r13 + 0x44], 8
jne 0x8df610
mov rdi, qword [r12]
mov r8d, dword [r12 + 0x20]
mov edx, ebx
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0x83
mov r9, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x88]
call fcn.0089c480
test rax, rax
je 0x8df610
test byte [rax + 0x12], 4
jne 0x8df610
mov rdx, qword [rax]
test byte [rax + 0x14], 1
je 0x8df593
test byte [rdx + 5], 8
je 0x8df593
mov rcx, qword [rdx + 0x20]
mov rcx, qword [rcx + 0x20]
cmp dword [rcx], 1
jg 0x8df610
movdqu xmm0, xmmword [rdx]
mov r8d, dword [rsp + 0xb4]
mov rcx, r14
mov qword [rsp + 0x48], rax
mov r9d, 0x10
movups xmmword [rsp + 0x1d0], xmm0
movdqu xmm1, xmmword [rdx + 0x10]
movups xmmword [rsp + 0x1e0], xmm1
movdqu xmm2, xmmword [rdx + 0x20]
movups xmmword [rsp + 0x1f0], xmm2
movdqu xmm3, xmmword [rdx + 0x30]
movups xmmword [rsp + 0x200], xmm3
mov rdx, qword [rdx + 0x40]
mov qword [rsp + 0x210], rdx
mov rdx, qword [rdi + 0x10]
mov qword [rsp + 0x1e0], rdx
lea rdx, [rsp + 0x1d0]
call fcn.008d25e0
mov rax, qword [rsp + 0x48]
or word [rax + 0x12], 4
nop dword [rax + rax]
add r12, 0x38
cmp r12, rsi
jne 0x8df4f0
mov r13, r14
mov r9d, dword [rbp]
test r9d, r9d
jne 0x8df6d8
mov rax, qword [rbp + 0x60]
mov qword [rsp + 0xa0], rax
mov eax, dword [rbp + 0x18]
mov rbx, qword [rsp + 0x50]
add rbp, 0x68
add dword [rsp + 0x60], 1
mov dword [rbx + 0x38], eax
mov eax, dword [rsp + 0x60]
cmp eax, dword [rsp + 0xb0]
jne 0x8de2b0
mov r14, rbx
mov rax, qword [rsp + 0xb8]
mov eax, dword [rax + 0x98]
mov dword [r14 + 0x58], eax
jmp 0x8dec6a
mov eax, dword [rdx + 0x38]
mov ebx, dword [rdx + 0x3c]
xor r9d, r9d
mov edx, 0xd
mov rcx, r15
mov dword [rsp + 0x20], eax
mov r8d, ebx
call fcn.00883630
mov r9d, esi
mov r8d, ebx
mov edx, 0xe
mov dword [rsp + 0x20], 0
mov rcx, r15
mov esi, 2
call fcn.00883630
mov byte [rbp + 0x39], 0xb
mov dword [rbp + 0x40], eax
mov qword [rsp + 0x78], 0
jmp 0x8dea70
mov eax, dword [r15 + 0x98]
mov r8d, 1
mov edx, 0x47
mov rcx, r15
mov dword [rbp + 0x1c], eax
mov dword [rsp + 0x20], 0
call fcn.00883630
mov rax, qword [rsp + 0x50]
mov r11d, dword [rax + 0x94]
mov rbx, qword [rax + 0x98]
mov rax, qword [rbp + 0x60]
test r11d, r11d
jle 0x8df631
mov r12d, dword [rsp + 0xb4]
mov esi, dword [rsp + 0xd8]
mov rdi, qword [rsp + 0x50]
nop dword [rax]
test byte [rbx + 0x12], 6
jne 0x8df761
test qword [rbx + 0x30], rax
jne 0x8df761
mov rdx, qword [rbx]
mov r9d, 0x10
mov r8d, r12d
mov rcx, r13
call fcn.008d25e0
or word [rbx + 0x12], 4
mov rax, qword [rbp + 0x60]
add esi, 1
add rbx, 0x38
cmp esi, dword [rdi + 0x94]
jl 0x8df738
jmp 0x8df631
mov r9, qword [rsp + 0xa0]
mov edx, dword [rsp + 0x60]
mov r8, rbp
mov rcx, qword [rsp + 0x50]
call fcn.008dab10
jmp 0x8de317
mov r8d, dword [r13 + 0x34]
mov edx, 0x65
lea eax, [r8 + 1]
mov dword [r13 + 0x34], eax
mov dword [rbx + 8], r8d
jmp 0x8de200
movzx ebx, word [r12 + 0x3c]
mov rcx, r13
lea edx, [rbx + 2]
call fcn.0086f330
mov esi, dword [rbp + 0xc]
mov dword [rsp + 0xc8], eax
mov dword [rsp + 0xc0], esi
test ebx, ebx
je 0x8df8a0
xor esi, esi
lea edi, [rax + 2]
jmp 0x8df82e
cmp rsi, 0x1f
jbe 0x8dfb68
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x68]
mov r8, rbp
mov rdx, r14
mov rcx, r13
mov dword [rsp + 0x20], eax
call fcn.008dcc60
mov eax, dword [rbp + 0x10]
mov dword [rsp + 0xc0], eax
add rsi, 1
cmp ebx, esi
jle 0x8df8a0
mov rdx, qword [r12 + 0x48]
mov r9d, esi
lea eax, [rdi + rsi]
mov r14, qword [rdx + rsi*8]
test r14, r14
je 0x8df826
test byte [r14 + 0x14], 1
jne 0x8df7f8
mov rdx, qword [r14]
mov r9d, 1
mov r8d, eax
mov rcx, r13
mov rdx, qword [rdx + 0x18]
call fcn.008d54f0
cmp byte [r14 + 0x17], 0x4a
jne 0x8df826
test byte [r12 + 0x1c], 2
je 0x8df826
mov rax, qword [rsp + 0x50]
xor r8d, r8d
mov edx, 0x47
mov rcx, r15
add rsi, 1
mov rax, qword [rax + 0x28]
mov r9d, dword [rax + 0xc]
mov dword [rsp + 0x20], 0
call fcn.00883630
cmp ebx, esi
jg 0x8df82e
nop dword [rax]
mov r14d, dword [rsp + 0xc8]
mov r8d, dword [r12 + 0x18]
mov edx, 0x47
mov rcx, r15
mov dword [rsp + 0x20], 0
mov r9d, r14d
call fcn.00883630
lea r9d, [r14 + 1]
mov r8d, ebx
mov rcx, r15
mov dword [rsp + 0x20], 0
mov edx, 0x47
call fcn.00883630
movzx eax, byte [r12 + 0x1c]
mov rcx, r15
mov rdi, qword [r12 + 0x28]
mov dword [rsp + 0x20], r14d
mov r9d, dword [rsp + 0xc0]
mov edx, 9
and eax, 1
mov r8d, dword [rsp + 0x9c]
cmp al, 1
sbb esi, esi
call fcn.00883630
or esi, 0xfffffff9
mov r8, rdi
mov rcx, r15
mov edx, eax
mov r9d, esi
call fcn.0087ec20
mov rax, qword [rsp + 0x48]
and byte [r12 + 0x1c], 0xfe
cmp byte [rax + 0x67], 0
je 0x8df942
mov qword [r12 + 0x28], 0
mov eax, dword [rsp + 0x9c]
mov dword [rsp + 0x68], 0
mov dword [rbp + 0x3c], eax
mov rax, qword [rsp + 0x50]
cmp byte [rax + 0x4a], 1
sbb eax, eax
and eax, 0xffffff88
sub eax, 0x4a
mov byte [rbp + 0x39], al
mov eax, dword [r15 + 0x98]
mov dword [rbp + 0x40], eax
test byte [r12 + 0x39], 8
je 0x8df981
mov eax, dword [rbp + 0x48]
mov dword [rsp + 0x68], eax
lea rax, [rbp + 0x60]
sub ebx, 1
mov r14, r12
mov r12, qword [rsp + 0x48]
mov qword [rsp + 0x78], rax
movsxd rdi, ebx
lea rax, [rsp + 0x1d0]
mov qword [rsp + 0x70], rax
shl rdi, 3
cmp ebx, 0xffffffff
jne 0x8dfb0c
jmp 0x8dfb50
cmp ebx, 0x1f
jle 0x8dfbe0
sub dword [rsp + 0x68], 1
mov rax, qword [rsi]
mov rdx, qword [rax + 0x10]
movzx eax, byte [rdx]
cmp al, 0xb0
jne 0x8df9e0
movzx eax, byte [rdx + 2]
cmp al, 0xb1
je 0x8dfc30
cmp al, 0x8a
je 0x8dfc18
cmp byte [r12 + 0x67], 0
jne 0x8dfa56
movsxd rax, dword [rsp + 0x68]
mov rdx, qword [rbp + 0x50]
lea rax, [rax + rax*4]
lea rax, [rdx + rax*4]
mov edx, dword [rax + 4]
test edx, edx
jns 0x8dfa1a
mov eax, dword [r15 + 0x98]
lea edx, [rax - 1]
mov rcx, qword [r15]
lea rax, [0x01164020]
cmp byte [rcx + 0x67], 0
jne 0x8dfa3c
mov rax, qword [r15 + 0x90]
movsxd rdx, edx
lea rdx, [rdx + rdx*2]
lea rax, [rax + rdx*8]
mov r9d, dword [rax + 8]
mov r8d, dword [rax + 4]
mov rcx, r15
movzx edx, byte [rax]
mov eax, dword [rax + 0xc]
mov dword [rsp + 0x20], eax
call fcn.00883630
xor r9d, r9d
xor r8d, r8d
mov edx, 0x35
mov rcx, r13
call fcn.00890580
mov r10, rax
test rax, rax
je 0x8dfb00
mov rax, qword [rsi]
mov r8, qword [rsp + 0x70]
xor r9d, r9d
mov edx, 0xb0
mov rcx, r12
mov qword [rsp + 0x48], r10
mov rax, qword [rax + 0x10]
mov qword [r10 + 0x10], rax
mov qword [rsp + 0x1d0], 0
mov dword [rsp + 0x1d8], 0
call fcn.00880ba0
mov r10, qword [rsp + 0x48]
mov qword [r10 + 0x18], rax
test rax, rax
je 0x8dfae7
mov esi, dword [rsp + 0xc8]
mov r8d, dword [rbp + 0x18]
mov r9d, 0x10
mov rcx, r13
lea edx, [rsi + rbx + 2]
mov dword [rax + 0x2c], edx
mov rdx, r10
call fcn.008d25e0
mov r10, qword [rsp + 0x48]
mov qword [r10 + 0x10], 0
mov rdx, r10
mov rcx, r12
call fcn.00879590
nop word [rax + rax]
sub ebx, 1
sub rdi, 8
cmp ebx, 0xffffffff
je 0x8dfb50
mov rax, qword [r14 + 0x48]
mov rsi, qword [rax + rdi]
test byte [rsi + 0x14], 1
jne 0x8df9c0
cmp ebx, 0xf
jg 0x8dfb00
movzx eax, word [r14 + 0x22]
bt eax, ebx
jae 0x8dfb00
mov rdx, qword [rsp + 0x78]
mov r8, rsi
mov rcx, rbp
sub ebx, 1
sub rdi, 8
call fcn.00870660
cmp ebx, 0xffffffff
jne 0x8dfb0c
nop dword [rax]
mov qword [rsp + 0x78], 0
mov esi, 2
jmp 0x8dea70
mov edx, 1
mov ecx, esi
shl edx, cl
test dword [r12 + 0x30], edx
je 0x8df802
mov r8d, dword [r13 + 0x34]
mov dword [rsp + 0x90], eax
mov rcx, r13
mov eax, dword [r13 + 0x38]
lea edx, [r8 + 1]
mov dword [rsp + 0x70], r8d
lea r9d, [rax + 1]
mov dword [r13 + 0x34], edx
mov rdx, qword [r14]
mov dword [r13 + 0x38], r9d
mov dword [rsp + 0x78], r9d
call fcn.008d0a40
mov r9d, dword [rsp + 0x78]
mov r8d, dword [rsp + 0x70]
mov rcx, r15
mov eax, dword [rsp + 0x90]
mov edx, 0xad
mov dword [rsp + 0x20], r9d
mov r9d, eax
call fcn.00883630
jmp 0x8df826
mov eax, 1
mov ecx, ebx
shl eax, cl
test dword [r14 + 0x30], eax
jne 0x8dfb1e
sub dword [rsp + 0x68], 1
cmp ebx, 0xf
jg 0x8df9ce
movzx eax, word [r14 + 0x22]
bt eax, ebx
jae 0x8df9ce
jmp 0x8dfb2d
mov rax, qword [rdx + 0x20]
mov rax, qword [rax + 0x20]
mov eax, dword [rax]
cmp eax, 1
jne 0x8dfb00
jmp 0x8df9f0
mov rax, qword [rdx + 0x20]
mov eax, dword [rax]
jmp 0x8dfc22
mov eax, dword [r13 + 0x38]
xor r8d, r8d
mov edx, 0x47
mov rcx, r15
lea r9d, [rax + 1]
mov dword [r13 + 0x38], r9d
mov dword [rbp], r9d
mov dword [rsp + 0x20], 0
call fcn.00883630
mov eax, dword [rsp + 0x60]
test eax, eax
jne 0x8de43d
nop dword [rax]
xor eax, eax
jmp 0x8de463
test dl, 0x20
je 0x8e04b8
mov rax, qword [r12 + 0x48]
mov rbx, qword [rax]
mov eax, 1
and edx, 0x10
jne 0x8e0478
mov edi, dword [rsp + 0x68]
test edi, edi
jne 0x8e0918
mov qword [rsp + 0x78], 0
test rbx, rbx
je 0x8e1e27
mov dword [rsp + 0x1d0], 0x1917181a
mov rdi, qword [rbx]
mov rdx, qword [rdi + 0x18]
movzx eax, byte [rdx]
cmp al, 0xb0
jne 0x8dfcda
movzx eax, byte [rdx + 2]
cmp al, 0xb1
je 0x8e1a1a
cmp al, 0x8a
je 0x8e12ee
lea r8, [rsp + 0x1a0]
mov rcx, r13
call fcn.008d5a40
lea rdx, [rbp + 0x60]
mov r8, rbx
mov rcx, rbp
mov r12d, eax
call fcn.00870660
movzx eax, byte [rdi]
sub eax, 0x36
cdqe
movzx edx, byte [rsp + rax + 0x1d0]
mov dword [rsp + 0x20], r12d
mov r8d, dword [rsp + 0x9c]
mov r9d, esi
mov rcx, r15
call fcn.00883630
mov edx, dword [rsp + 0x1a0]
test edx, edx
je 0x8dfd47
mov rcx, r13
call fcn.0086f310
mov edi, 5
sub edi, dword [rsp + 0x68]
cmp qword [rsp + 0x78], 0
je 0x8e0570
mov rax, qword [rsp + 0x78]
mov r9d, 1
mov rcx, r13
mov r12, qword [rax]
mov eax, dword [r13 + 0x38]
lea ebx, [rax + 1]
mov rdx, qword [r12 + 0x18]
mov dword [r13 + 0x38], ebx
mov r8d, ebx
call fcn.008d54f0
mov rdx, qword [r12 + 0x18]
movzx eax, byte [rdx]
cmp al, 0xb0
jne 0x8dfd95
movzx eax, byte [rdx + 2]
cmp al, 0xb1
je 0x8e1a9f
cmp al, 0x8a
je 0x8e05a2
movzx ecx, byte [r12]
sub ecx, 0x36
and ecx, 0xfd
jne 0x8e05b5
cmp dword [rsp + 0x68], 1
sbb r12d, r12d
and r12d, 2
add r12d, 0x37
cmp al, 0xb1
je 0x8e1a97
cmp al, 0x8a
je 0x8e1a25
mov r8, qword [rsp + 0x78]
lea rdx, [rbp + 0x60]
mov rcx, rbp
call fcn.00870660
mov eax, dword [r15 + 0x98]
mov byte [rbp + 0x39], dil
mov edx, 0x86
mov rcx, r15
mov r8d, dword [rsp + 0x9c]
mov dword [rbp + 0x40], eax
mov eax, dword [r13 + 0x38]
mov dword [rbp + 0x3c], r8d
lea edi, [rax + 1]
mov dword [r13 + 0x38], edi
mov r9d, edi
mov dword [rsp + 0x20], 0
call fcn.00883630
mov dword [rsp + 0x20], edi
mov r9d, esi
mov r8d, ebx
mov edx, r12d
mov rcx, r15
call fcn.00883630
movsxd rax, dword [r15 + 0x98]
test eax, eax
jle 0x8dfb50
mov r9, qword [r15 + 0x90]
lea rax, [rax + rax*2]
mov r10d, 0x53
mov qword [rsp + 0x78], 0
mov esi, 2
lea rax, [r9 + rax*8]
mov word [rax - 0x16], r10w
jmp 0x8dea70
and dh, 0x20
je 0x8e04e0
mov eax, dword [r13 + 0x34]
mov rsi, qword [rsp + 0x80]
mov dword [rsp + 0xc0], eax
add eax, 1
mov dword [r13 + 0x34], eax
mov eax, dword [r13 + 0x38]
lea edi, [rax + 1]
mov eax, dword [r13 + 0x44]
mov dword [r13 + 0x38], edi
sub eax, 1
mov dword [rsp + 0xe8], edi
mov dword [r13 + 0x44], eax
mov dword [rsp + 0xe0], eax
lea rax, [rsi*8]
sub rax, rsi
mov rsi, qword [rsp + 0x58]
shl rax, 4
mov rax, qword [rsi + rax + 0x28]
mov qword [rsp + 0xd0], rax
mov rax, qword [r12 + 0x48]
mov r12, qword [rsp + 0x50]
mov rax, qword [rax]
mov r14, qword [rax + 0x20]
mov qword [rsp + 0xf0], rax
mov byte [rbp + 0x39], 0x43
mov dword [rbp + 0x3c], edi
movzx eax, byte [r12 + 0x48]
cmp al, 1
ja 0x8e113b
mov rax, qword [rsp + 0x50]
mov rax, qword [rax + 8]
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0x50]
test byte [rax + 0x44], 0x10
jne 0x8e09d8
mov rax, qword [rsp + 0xd0]
test byte [rax + 0x30], 0x80
je 0x8e150b
mov rax, qword [rsp + 0xd0]
mov r12, qword [rax + 0x10]
test r12, r12
jne 0x8dff6e
jmp 0x8e2092
mov r12, qword [r12 + 0x28]
test r12, r12
je 0x8e2088
movzx eax, byte [r12 + 0x64]
and eax, 3
cmp al, 2
jne 0x8dff60
mov r8d, dword [r13 + 0x34]
movzx r9d, word [r12 + 0x5e]
mov rcx, r15
mov edx, 0x74
lea eax, [r8 + 1]
mov dword [rsp + 0xfc], r8d
mov dword [r13 + 0x34], eax
mov dword [rsp + 0x20], 0
call fcn.00883630
mov rdx, r12
mov rcx, r13
call fcn.00893aa0
jmp 0x8e1538
lea rax, [rdi*8]
mov r8d, dword [rsp + 0x2c8]
sub rax, rdi
shl rax, 4
mov rax, qword [r15 + rax + 0x28]
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x8dfffd
jmp 0x8e0002
mov rax, qword [rax + 0x28]
add r8d, 1
test rax, rax
je 0x8e0002
cmp r10, rax
jne 0x8dfff0
mov dword [r14 + 0x34], r8d
mov edx, 0x70
mov dword [rbx + 8], r8d
jmp 0x8de200
mov rax, qword [rsi]
mov r8d, dword [rsi + 0x28]
xor r9d, r9d
mov edx, r12d
mov rcx, r13
mov qword [rsp + 0x58], r11
mov qword [rsp + 0x20], rax
call fcn.00885690
mov r11, qword [rsp + 0x58]
mov eax, dword [r11 + 0x38]
jmp 0x8de1a0
mov rax, qword [rsp + 0x78]
mov rax, qword [rax + 0x18]
test byte [rax + 0x30], 0x80
je 0x8e0748
mov edi, dword [rsp + 0xd0]
cmp dword [rsp + 0x9c], edi
je 0x8e0155
mov rsi, qword [rax + 0x10]
test rsi, rsi
jne 0x8e008d
jmp 0x8e2097
mov rsi, qword [rsi + 0x28]
test rsi, rsi
je 0x92affb
movzx eax, byte [rsi + 0x64]
and eax, 3
cmp al, 2
jne 0x8e0080
movzx edx, word [rsi + 0x5e]
mov rcx, r13
call fcn.0086f330
cmp word [rsi + 0x5e], 0
mov ebx, eax
je 0x8e1ff3
mov qword [rsp + 0x48], rbp
mov r14, qword [rsp + 0x78]
mov rbp, rsi
xor edi, edi
mov esi, dword [rsp + 0xd0]
nop word [rax + rax]
mov rax, qword [rbp + 8]
movzx edx, word [rax + rdi*2]
movzx eax, word [r14 + 0x60]
test eax, eax
je 0x8e1670
mov rcx, qword [r14 + 8]
xor r9d, r9d
jmp 0x8e00fd
add r9, 1
cmp eax, r9d
jle 0x8e1670
cmp dx, word [rcx + r9*2]
jne 0x8e00f0
movsx r9d, r9w
lea eax, [rbx + rdi]
mov r8d, esi
mov edx, 0x5d
mov rcx, r15
mov dword [rsp + 0x20], eax
add rdi, 1
call fcn.00883630
movzx eax, word [rbp + 0x5e]
cmp eax, edi
jg 0x8e00d0
mov rbp, qword [rsp + 0x48]
mov dword [rsp + 0x28], eax
mov edx, 0x1e
mov rcx, r15
mov r9d, dword [rsp + 0xb4]
mov dword [rsp + 0x20], ebx
mov r8d, dword [rsp + 0x9c]
call fcn.008836a0
mov edi, dword [rbp]
test edi, edi
jne 0x8e07b0
mov rax, qword [rsp + 0x50]
test byte [rax + 0x44], 0x20
je 0x8e178a
xor edi, edi
mov rax, qword [rsp + 0x78]
mov rcx, qword [rax + 0x48]
test rcx, rcx
je 0x8dea1f
mov r8, qword [rsp + 0x88]
mov edx, dword [rsp + 0x9c]
call fcn.0089f370
jmp 0x8dea1f
mov r10, qword [rsi + 0x50]
test r10, r10
jne 0x8e01b9
jmp 0x8e01be
mov r10, qword [r10 + 0x28]
test r10, r10
je 0x8e01be
cmp rbp, qword [r10]
jne 0x8e01b0
lea rax, [rdi*8]
xor r9d, r9d
mov edx, 0xac
mov qword [rsp + 0x58], r11
sub rax, rdi
mov dword [rsp + 0x20], 0
mov rcx, qword [rsp + 0xb8]
shl rax, 4
mov qword [rsp + 0x68], r10
mov r8d, dword [r15 + rax + 0x4c]
call fcn.00883630
mov r10, qword [rsp + 0x68]
mov rcx, qword [rsp + 0xb8]
mov r9d, 0xfffffff4
mov edx, eax
mov r8, r10
call fcn.0087ec20
mov r11, qword [rsp + 0x58]
mov eax, dword [r11 + 0x38]
jmp 0x8de1a0
cmp word [rsp + 0x50], 0
je 0x8de1c3
mov eax, dword [rbx + 4]
mov dword [rbx + 8], eax
jmp 0x8de258
test byte [rax + 0x44], 0x20
jne 0x8dddf6
mov rsi, qword [rbp + 0x28]
cmp byte [rsi + 0x3f], 1
je 0x8dddf6
test byte [rbp + 0x48], 2
jne 0x8dddf6
lea r15, [rax + 0x78]
xor eax, eax
mov edi, dword [rbp + 0x4c]
mov dword [r12 + 0x38], 0
mov word [r12 + 0x3e], ax
lea rbx, [rsp + 0x1d0]
movabs rax, 0x8200000000
mov qword [rsp + 0x1f0], rax
mov eax, 0x100
mov rcx, rbx
mov word [rsp + 0x1f8], ax
mov eax, 0xffffffff
mov dword [rsp + 0x58], edi
mov qword [rsp + 0x1d0], r15
mov qword [rsp + 0x1d8], r15
mov dword [rsp + 0x1fc], edi
mov qword [rsp + 0x1e0], 0
mov qword [rsp + 0x1e8], 0
mov byte [rsp + 0x1fa], 1
mov word [rsp + 0x228], ax
call fcn.0089c040
test rax, rax
jne 0x8e0311
jmp 0x8e1b97
mov rcx, rbx
call fcn.0089c040
test rax, rax
je 0x8e1b97
cmp qword [rax + 0x28], 0
jne 0x8e0300
mov rdx, qword [r12 + 0x48]
mov ecx, 1
mov r8d, 1
mov r9d, 0x21
mov dword [r12 + 0x38], 0x1101
mov qword [rdx], rax
mov eax, 0x1101
mov word [r12 + 0x3c], cx
mov word [r12 + 0x18], r8w
mov word [r12 + 0x14], r9w
mov rdi, qword [rsp + 0x48]
mov ebx, dword [rsp + 0x58]
mov r11d, 1
mov word [r12 + 0x16], r11w
mov rdx, qword [rdi + 0x10]
mov qword [rdi + 0x3c0], r12
mov qword [r12 + 8], 1
mov dword [rdi + 0x36c], ebx
mov ebx, 1
mov word [rdi + 0x50], bx
test rdx, rdx
je 0x8e0393
mov edx, dword [rdx]
mov byte [rdi + 0x49], dl
mov rdi, qword [rsp + 0x48]
test byte [rdi + 0x45], 1
je 0x8e03a2
mov byte [rdi + 0x4b], 1
cmp byte [rsp + 0x1f9], 1
jbe 0x8ddf87
or eax, 0x200000
mov dword [r12 + 0x38], eax
jmp 0x8ddf87
mov rax, qword [r12 + 0x48]
xor r9d, r9d
mov r8, rbp
mov rcx, r13
mov rdx, qword [rax]
mov eax, dword [r13 + 0x38]
lea r12d, [rax + 1]
mov eax, dword [rsp + 0x68]
mov dword [r13 + 0x38], r12d
mov dword [rsp + 0x28], r12d
mov dword [rsp + 0x20], eax
call fcn.008dcc60
mov ebx, eax
test r12d, r12d
je 0x8e0406
cmp r12d, eax
je 0x8e0406
mov edx, r12d
mov rcx, r13
call fcn.0086f310
mov r8d, dword [rbp + 0x34]
mov esi, dword [rbp + 0x10]
test r8d, r8d
jne 0x8e1286
mov dword [rsp + 0x20], ebx
mov r9d, esi
mov edx, 0x20
mov rcx, r15
mov r8d, dword [rsp + 0x9c]
mov esi, 2
call fcn.00883630
mov byte [rbp + 0x39], 0xb6
mov qword [rsp + 0x78], 0
jmp 0x8dea70
mov qword [rsp + 0xa0], 0xffffffffffffffff
cmp al, 1
jbe 0x8ddff2
mov rax, qword [rsp + 0xa8]
mov eax, dword [rax + 0x60]
jmp 0x8ddfe7
mov rdx, qword [r12 + 0x48]
mov r11d, dword [rsp + 0x68]
mov rax, qword [rdx + rax*8]
mov qword [rsp + 0x78], rax
test r11d, r11d
je 0x8dfcb4
cmp qword [rsp + 0x78], 0
je 0x8e0918
mov rax, rbx
mov rbx, qword [rsp + 0x78]
mov qword [rsp + 0x78], rax
jmp 0x8dfcbd
xor eax, eax
xor ebx, ebx
jmp 0x8dfc96
mov r10d, dword [rsp + 0x68]
test r10d, r10d
sete dl
add edx, 4
mov byte [rbp + 0x39], dl
jmp 0x8dea31
and r8d, 0x20
je 0x8e16da
mov byte [rbp + 0x39], 0xb6
mov esi, 2
mov qword [rsp + 0x78], 0
jmp 0x8dea70
mov byte [rsp + 0xf0], 0
xor edi, edi
jmp 0x8de585
mov eax, dword [rsp + 0xc0]
xor ebx, ebx
xor r14d, r14d
jmp 0x8de549
mov eax, dword [rbp + 0x10]
mov dword [rsp + 0xec], eax
jmp 0x8de688
xor r14d, r14d
mov rcx, qword [rsp + 0x50]
mov rdx, r13
mov r8, r14
call fcn.00889ba0
jmp 0x8ddef3
mov eax, dword [r15 + 0x98]
mov byte [rbp + 0x39], dil
mov esi, 2
mov edi, dword [rsp + 0x9c]
mov dword [rbp + 0x40], eax
mov dword [rbp + 0x3c], edi
jmp 0x8dea70
mov r14, qword [rsp + 0x50]
jmp 0x8dec40
mov rcx, qword [rdx + 0x20]
mov rcx, qword [rcx + 0x20]
mov ecx, dword [rcx]
cmp ecx, 1
jle 0x8dfda5
cmp dword [rsp + 0x68], 1
sbb r12d, r12d
and r12d, 0xfffffffe
add r12d, 0x38
jmp 0x8dfdc9
mov r8d, 0x40
lea rdx, str.at_most__d_tables_in_a_join
mov rcx, r13
xor r14d, r14d
call fcn.0087dd60
jmp 0x8dec6a
mov eax, dword [r13 + 0x38]
mov r11d, dword [rbp]
add eax, 1
mov dword [r13 + 0x38], eax
mov dword [rsp + 0x90], eax
mov dword [rbp + 0x24], eax
test r11d, r11d
jne 0x8e1ab2
mov eax, dword [r13 + 0x44]
mov byte [rsp + 0xf0], 1
mov ebx, 1
sub eax, 1
mov dword [r13 + 0x44], eax
mov dword [rbp + 0x28], eax
jmp 0x8de5a2
mov eax, dword [rsp + 0xc0]
mov r8d, dword [rsp + 0xd0]
mov edx, 0x7c
mov rcx, r15
mov dword [rsp + 0x20], eax
mov r9d, eax
call fcn.00883630
mov eax, dword [r12 + 0x38]
jmp 0x8de9f8
mov dword [rsp + 0xf0], 0
cmp byte [rsp + 0x70], 0
mov r14d, dword [rsp + 0xc0]
je 0x8de934
mov eax, dword [rsp + 0x90]
test eax, eax
je 0x8e1e65
mov eax, dword [rsp + 0xc0]
lea r14d, [rax + 1]
jmp 0x8de934
movzx eax, dl
mov dword [rsp + 0xfc], eax
test rdi, rdi
je 0x8e1b7c
mov dword [rsp + 0xf8], 1
xor eax, eax
test byte [rdi + 0x14], 0x28
setne al
mov dword [rsp + 0x104], eax
cmp byte [rsp + 0xf0], 0
jne 0x8e1987
mov r8d, dword [rsp + 0x90]
test r8d, r8d
jne 0x8e0884
mov esi, dword [rsp + 0xc0]
mov rcx, qword [r13 + 0x10]
mov r9, qword [rsp + 0x138]
mov edx, dword [rsp + 0xc8]
mov r8d, esi
call fcn.00883930
movzx eax, word [r12 + 0x3e]
test ax, ax
jne 0x8e1465
mov r14d, dword [rsp + 0xfc]
mov dword [rsp + 0x100], 0
shl r14d, 2
jmp 0x8de7df
mov rdi, qword [rsp + 0x50]
mov eax, dword [rsp + 0x9c]
xor r9d, r9d
mov edx, 0x8c
mov r8d, dword [rsp + 0xd0]
mov rbx, qword [rdi]
mov r14, qword [rbx + 0x10]
or byte [rdi + 0x4c], 1
mov dword [rsp + 0x20], eax
mov rcx, r14
call fcn.00883630
test byte [rdi + 0x44], 0x20
je 0x8e1450
mov rax, qword [rbx + 0xa0]
test rax, rax
cmove rax, rbx
mov esi, dword [rax + 0x70]
test esi, esi
je 0x8e1ec4
mov eax, dword [rbp]
test eax, eax
je 0x8e016f
nop dword [rax]
xor edi, edi
jmp 0x8dea1f
mov eax, dword [r15 + 0x98]
xor r8d, r8d
mov rcx, r15
mov edx, 0xb
mov dword [rsp + 0x20], 0
lea r9d, [rax + 2]
call fcn.00883630
mov ecx, dword [rsp + 0x68]
xor eax, eax
cmp esi, 1
setg al
mov r9d, dword [rsp + 0xec]
mov r8d, dword [rsp + 0xd0]
lea eax, [rcx + rax*4 + 2]
mov rcx, r15
cdqe
movzx edx, byte [rbx + rax]
mov eax, dword [rsp + 0xc8]
mov ebx, esi
sub ebx, dword [rsp + 0xf8]
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], eax
call fcn.008836a0
jmp 0x8de85f
mov eax, dword [rsp + 0xc0]
mov ebx, dword [rsp + 0xec]
mov rcx, r15
mov edx, 0x3f
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0xc8]
mov r9d, ebx
mov dword [rsp + 0x20], eax
call fcn.008836a0
mov r8d, dword [rsp + 0x60]
mov r9d, ebx
mov rcx, r13
mov rax, qword [rsp + 0xa0]
mov rdx, qword [rsp + 0x50]
mov qword [rsp + 0x20], rax
call fcn.008dd7c0
jmp 0x8de7ec
mov ebx, dword [rsp + 0xc0]
xor r8d, r8d
mov edx, 0x4a
mov rcx, r15
mov r14d, dword [rsp + 0xc8]
mov dword [rsp + 0x20], 0
lea esi, [rbx + 1]
lea r9d, [rbx + r14]
call fcn.00883630
mov rcx, qword [r13 + 0x10]
mov r8d, esi
mov edx, r14d
mov r9, qword [rsp + 0x138]
call fcn.00883930
movzx eax, word [r12 + 0x3e]
test ax, ax
je 0x8e08dc
cmp esi, eax
je 0x8e1474
mov dword [rsp + 0x100], 0
mov r14d, 4
mov dword [rsp + 0x20], 0
mov r9d, dword [rsp + 0x90]
mov edx, 0x47
mov rcx, r15
mov r8d, 1
call fcn.00883630
jmp 0x8de7df
mov edx, 0x22
mov dword [rsp + 0x20], 0
mov r8d, dword [rsp + 0x9c]
mov rcx, r15
call fcn.00883630
mov qword [rsp + 0x78], rbx
jmp 0x8dfd47
movzx edi, word [rsp + 0x68]
test dil, 8
je 0x8de048
mov rbx, qword [rsp + 0x298]
mov rcx, qword [rbx + 0x28]
cmp byte [rcx + 0x3f], 1
je 0x8de048
test ah, 0x20
je 0x8e0973
and edi, 0x10
je 0x8de048
mov r8d, 2
jmp 0x8de037
mov rcx, rsi
call fcn.00864200
test eax, eax
je 0x8de8ce
mov dword [rsp + 0x20], 0
mov r8d, r14d
mov edx, 0x32
mov rcx, r15
mov r9d, dword [rsp + 0xec]
call fcn.00883630
jmp 0x8de8ce
mov rcx, qword [rsp + 0x48]
movzx edx, si
add rdx, rax
call fcn.0087e6f0
mov qword [rsp + 0xe0], rax
jmp 0x8de66d
mov dword [rsp + 0xf8], 0
mov dword [rsp + 0xfc], 0
mov dword [rsp + 0x20], 0
xor r8d, r8d
mov edx, 0x47
mov rcx, r15
mov r9d, dword [rsp + 0xe8]
call fcn.00883630
mov dword [rsp + 0x100], eax
mov rax, qword [rsp + 0x50]
cmp dword [rax + 0x8c], 1
jle 0x8e0ad8
mov qword [rsp + 0x68], r14
mov r14, qword [rsp + 0x50]
xor esi, esi
xor ebx, ebx
mov qword [rsp + 0x70], rbp
mov rdi, qword [rsp + 0xf0]
xor r12d, r12d
mov rbp, qword [rsp + 0x48]
nop word [rax + rax]
mov rax, qword [r14 + 0x98]
add rax, rbx
cmp rdi, rax
je 0x8e0a99
test word [rax + 0x12], 0x8006
jne 0x8e0a99
test word [rax + 0x14], 0x1fff
je 0x8e0a99
mov rdx, qword [rax]
test rdx, rdx
je 0x8e0a88
xor r9d, r9d
xor r8d, r8d
mov rcx, rbp
call fcn.0087f670
mov rdx, rax
mov r8, rdx
mov rcx, r13
mov rdx, r12
call fcn.00890900
mov r12, rax
add esi, 1
add rbx, 0x38
cmp esi, dword [r14 + 0x8c]
jl 0x8e0a50
mov r14, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x70]
test r12, r12
je 0x8e0ad8
mov r9, r12
xor r8d, r8d
mov edx, 0x1002c
mov rcx, r13
call fcn.00890580
mov qword [rsp + 0x90], rax
jmp 0x8e0ae4
mov qword [rsp + 0x90], 0
lea r8, str.MULTI_INDEX_OR
mov edx, 1
mov rcx, r13
call fcn.0088aae0
mov r9d, dword [r14 + 0x14]
test r9d, r9d
jle 0x8e1e98
mov dword [rsp + 0x70], 0
xor edi, edi
xor ebx, ebx
mov rsi, r14
mov qword [rsp + 0xc8], 0
mov qword [rsp + 0x108], rbp
jmp 0x8e0cee
mov r14, qword [rsp + 0x48]
xor r9d, r9d
xor r8d, r8d
mov rdx, r12
mov rcx, r14
call fcn.0087f670
cmp byte [r14 + 0x67], 0
mov r12, rax
jne 0x8e0ccf
mov rax, qword [rsp + 0x90]
mov rbp, r12
test rax, rax
je 0x8e0b6b
mov qword [rax + 0x10], r12
mov rbp, rax
mov r9d, edi
lea r8, str.INDEX__d
mov edx, 1
mov rcx, r13
call fcn.0088aae0
mov rdx, qword [rsp + 0x78]
xor r9d, r9d
mov r8, rbp
mov eax, dword [rsp + 0xc0]
mov rcx, r13
mov dword [rsp + 0x30], 0x20
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x38], eax
mov qword [rsp + 0x20], 0
call fcn.008dd950
mov r14, rax
test rax, rax
je 0x8e0ccf
mov rax, qword [r13 + 0xa0]
test rax, rax
cmove rax, r13
cmp byte [rax + 0x123], 2
jne 0x8e0bf4
mov rdx, qword [rsp + 0x78]
xor r9d, r9d
lea r8, [r14 + 0x368]
mov rcx, r13
call fcn.008839d0
mov rax, qword [rsp + 0x50]
test byte [rax + 0x44], 0x10
je 0x8e0d30
mov dword [rsp + 0x20], 0
mov r9d, dword [rsp + 0xe0]
mov edx, 0xc
mov rcx, r15
mov r8d, dword [rsp + 0xe8]
call fcn.00883630
movzx eax, byte [r14 + 0x4c]
mov edx, 1
test al, 2
cmove edx, dword [rsp + 0x70]
mov dword [rsp + 0x70], edx
mov rdx, qword [r14 + 0x3c0]
test byte [rdx + 0x39], 2
je 0x8e0c68
mov ebp, dword [rsp + 0x68]
mov rdx, qword [rdx + 0x20]
test ebp, ebp
je 0x8e0f40
cmp rdx, qword [rsp + 0xc8]
je 0x8e0f40
mov qword [rsp + 0xc8], 0
test al, 1
je 0x8e0c81
mov rax, qword [rsp + 0x50]
or byte [rax + 0x4c], 1
mov rcx, r14
call fcn.00893d00
mov eax, dword [r13 + 0x130]
test eax, eax
je 0x8e0cc8
mov rdx, qword [r13 + 0x10]
jns 0x8e0ca3
mov eax, dword [rdx + 0x98]
sub eax, 1
mov r8, qword [rdx]
lea rcx, [0x01164020]
cmp byte [r8 + 0x67], 0
jne 0x8e0cc5
cdqe
lea rcx, [rax + rax*2]
mov rax, qword [rdx + 0x90]
lea rcx, [rax + rcx*8]
mov eax, dword [rcx + 8]
mov dword [r13 + 0x130], eax
test r12, r12
je 0x8e0ce1
mov rcx, qword [rsp + 0x48]
mov rdx, r12
call fcn.00879590
add rbx, 0x38
cmp dword [rsi + 0x14], edi
jle 0x8e0e10
mov rax, qword [rsi + 0x20]
mov ecx, dword [rsp + 0x9c]
mov dword [rsp + 0x68], edi
add edi, 1
add rax, rbx
cmp ecx, dword [rax + 0x1c]
je 0x8e0d0e
test byte [rax + 0x15], 4
je 0x8e0ce1
mov r12, qword [rax]
test r12, r12
jne 0x8e0b30
mov rax, qword [rsp + 0x48]
cmp byte [rax + 0x67], 0
je 0x8e0b54
jmp 0x8e0ce1
mov eax, dword [rsi + 0x14]
mov ecx, dword [rsp + 0x68]
mov rdx, qword [rsp + 0xd0]
sub eax, 1
cmp eax, ecx
mov eax, 0xffffffff
cmovne eax, ecx
mov dword [rsp + 0xec], eax
test byte [rdx + 0x30], 0x80
jne 0x8e0f80
mov ebp, dword [rsp + 0xf8]
mov r8d, dword [rsp + 0x9c]
mov r9d, 0xffffffff
mov rcx, r15
mov dword [rsp + 0x20], ebp
call fcn.008d4650
mov dword [rsp + 0x20], ebp
xor r9d, r9d
mov rcx, r15
mov r8d, dword [rsp + 0xfc]
mov edx, 0x2e
call fcn.00883630
mov ebp, eax
mov rax, qword [r15]
cmp byte [rax + 0x67], 0
je 0x8e13bd
mov dword [rsp + 0x20], 0
mov r9d, dword [rsp + 0xe0]
mov edx, 0xc
mov rcx, r15
mov r8d, dword [rsp + 0xe8]
call fcn.00883630
test ebp, ebp
je 0x8e0c28
mov eax, dword [r15 + 0x98]
mov rcx, qword [r15]
lea edx, [rax - 1]
cmovs ebp, edx
cmp byte [rcx + 0x67], 0
lea rdx, [0x01164020]
jne 0x8e0e06
mov rdx, qword [r15 + 0x90]
movsxd rbp, ebp
lea rcx, [rbp + rbp*2]
lea rdx, [rdx + rcx*8]
mov dword [rdx + 8], eax
jmp 0x8e0c28
mov eax, dword [r13 + 0x130]
mov rbp, qword [rsp + 0x108]
test eax, eax
je 0x8e0e47
mov rdx, qword [r13 + 0x10]
test eax, eax
js 0x8e1457
mov r8, qword [rdx]
lea rcx, [0x01164020]
cmp byte [r8 + 0x67], 0
je 0x8e1411
mov eax, dword [rcx + 8]
mov dword [r13 + 0x130], eax
mov rax, qword [rsp + 0xc8]
mov qword [rbp + 0x48], rax
test rax, rax
je 0x8e0e69
mov eax, dword [rsp + 0xc0]
mov dword [rbp + 8], eax
mov rax, qword [rsp + 0x90]
test rax, rax
je 0x8e0e8b
mov qword [rax + 0x10], 0
mov rcx, qword [rsp + 0x48]
mov rdx, rax
call fcn.00879590
mov ebx, dword [rsp + 0x100]
mov eax, dword [r15 + 0x98]
mov rcx, qword [r15]
test ebx, ebx
lea edx, [rax - 1]
cmovns edx, ebx
cmp byte [rcx + 0x67], 0
mov edi, edx
lea rdx, [0x01164020]
jne 0x8e0ec5
movsxd rdx, edi
lea rcx, [rdx + rdx*2]
mov rdx, qword [r15 + 0x90]
lea rdx, [rdx + rcx*8]
mov dword [rdx + 4], eax
mov r9d, dword [rbp + 0xc]
xor r8d, r8d
mov edx, 0xb
mov dword [rsp + 0x20], 0
mov rcx, r15
call fcn.00883630
mov edx, dword [rsp + 0xe0]
mov rcx, r15
call fcn.00882b70
mov rax, qword [rsp + 0x50]
cmp byte [rax + 0x48], 1
jbe 0x8e0f0c
mov rax, qword [rsp + 0x78]
test rax, rax
jne 0x8e1427
mov ebx, dword [rsp + 0x70]
test ebx, ebx
jne 0x8dfb50
mov r8, qword [rsp + 0xf0]
lea rdx, [rbp + 0x60]
mov rcx, rbp
mov esi, 2
call fcn.00870660
mov qword [rsp + 0x78], 0
jmp 0x8dea70
mov r10, qword [rsp + 0xd0]
mov qword [rsp + 0xc8], rdx
mov rcx, rdx
test byte [r10 + 0x30], 0x80
je 0x8e0c74
movzx edx, byte [rdx + 0x64]
and edx, 3
cmp dl, 2
mov edx, 0
cmovne rdx, rcx
mov qword [rsp + 0xc8], rdx
jmp 0x8e0c74
mov rax, qword [rsp + 0xd0]
mov r10, qword [rax + 0x10]
test r10, r10
jne 0x8e0fad
jmp 0x8e208d
mov r10, qword [r10 + 0x28]
test r10, r10
je 0x92b005
movzx eax, byte [r10 + 0x64]
and eax, 3
cmp al, 2
jne 0x8e0fa0
movzx r11d, word [r10 + 0x5e]
mov rcx, r13
xor ebp, ebp
mov edx, r11d
mov dword [rsp + 0x104], r11d
call fcn.0086f330
mov edx, r11d
mov dword [rsp + 0x120], eax
add edx, eax
test r11d, r11d
je 0x8e107d
mov qword [rsp + 0x110], rsi
mov esi, dword [rsp + 0x9c]
mov qword [rsp + 0x118], r12
mov r12, qword [rsp + 0xd0]
mov dword [rsp + 0x124], edi
mov edi, eax
mov qword [rsp + 0x128], rbx
mov rbx, r10
mov qword [rsp + 0x290], r13
mov r13, rbp
mov ebp, edx
nop dword [rax + rax]
mov rdx, qword [rbx + 8]
mov r8d, esi
mov rcx, r15
movsx r9d, word [rdx + r13]
mov dword [rsp + 0x20], edi
mov rdx, r12
add edi, 1
add r13, 2
call fcn.008d4650
cmp ebp, edi
jne 0x8e1030
mov rsi, qword [rsp + 0x110]
mov r12, qword [rsp + 0x118]
mov edi, dword [rsp + 0x124]
mov rbx, qword [rsp + 0x128]
mov r13, qword [rsp + 0x290]
mov r8d, dword [rsp + 0xec]
test r8d, r8d
jne 0x8e1d35
mov ebp, dword [rsp + 0xf8]
mov r9d, dword [rsp + 0x104]
mov edx, 0x60
mov rcx, r15
mov r8d, dword [rsp + 0x120]
mov dword [rsp + 0x20], ebp
call fcn.00883630
mov r9d, ebp
mov edx, 0x89
mov rcx, r15
mov eax, dword [rsp + 0x104]
mov r8d, dword [rsp + 0xfc]
xor ebp, ebp
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x120]
mov dword [rsp + 0x20], eax
call fcn.008836a0
cmp dword [rsp + 0x104], 1
je 0x8e1e51
mov eax, dword [rsp + 0x104]
cmp eax, dword [r13 + 0x28]
jle 0x8e0da9
mov dword [r13 + 0x28], eax
mov eax, dword [rsp + 0x120]
mov dword [r13 + 0x2c], eax
jmp 0x8e0da9
mov dword [rsp + 0x104], 1
mov dword [rsp + 0xfc], 1
jmp 0x8de6d3
movzx esi, al
sub esi, dword [rsp + 0x60]
mov rcx, qword [rsp + 0x48]
lea edi, [rsi - 1]
movsxd rax, edi
lea rdx, [rax*8]
sub rdx, rax
shl rdx, 4
add rdx, 0x78
call fcn.0087dfc0
mov qword [rsp + 0x78], rax
mov rcx, rax
test rax, rax
je 0x8df639
lea eax, [rdi + 1]
movzx eax, al
mov dword [rcx + 4], eax
mov dword [rcx], eax
lea rax, [rbx*8]
sub rax, rbx
mov rbx, qword [rsp + 0x58]
shl rax, 4
lea rax, [rbx + rax + 8]
mov rbx, rcx
movdqu xmm1, xmmword [rax]
movups xmmword [rcx + 8], xmm1
movdqu xmm2, xmmword [rax + 0x10]
movups xmmword [rcx + 0x18], xmm2
movdqu xmm3, xmmword [rax + 0x20]
movups xmmword [rcx + 0x28], xmm3
movdqu xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x38], xmm1
movdqu xmm2, xmmword [rax + 0x40]
movups xmmword [rcx + 0x48], xmm2
movdqu xmm3, xmmword [rax + 0x50]
movups xmmword [rcx + 0x58], xmm3
movdqu xmm1, xmmword [rax + 0x60]
movups xmmword [rcx + 0x68], xmm1
mov rax, qword [r12 + 8]
mov qword [rsp + 0x68], rax
lea r8, [rax + 8]
test edi, edi
jle 0x8dff24
lea r9d, [rsi - 2]
lea rcx, [rbp + 0xa0]
lea rax, [r9*8]
lea rdx, [rbx + 0x78]
sub rax, r9
shl rax, 4
lea r9, [rbx + rax + 0xe8]
nop word [rax + rax]
movzx r10d, byte [rcx]
add rdx, 0x70
add rcx, 0x68
lea rax, [r10*8]
sub rax, r10
shl rax, 4
add rax, r8
movdqu xmm4, xmmword [rax]
movups xmmword [rdx - 0x70], xmm4
movdqu xmm5, xmmword [rax + 0x10]
movups xmmword [rdx - 0x60], xmm5
movdqu xmm4, xmmword [rax + 0x20]
movups xmmword [rdx - 0x50], xmm4
movdqu xmm5, xmmword [rax + 0x30]
movups xmmword [rdx - 0x40], xmm5
movdqu xmm4, xmmword [rax + 0x40]
movups xmmword [rdx - 0x30], xmm4
movdqu xmm5, xmmword [rax + 0x50]
movups xmmword [rdx - 0x20], xmm5
movdqu xmm0, xmmword [rax + 0x60]
movups xmmword [rdx - 0x10], xmm0
cmp r9, rdx
jne 0x8e1220
jmp 0x8dff24
mov dword [rsp + 0x20], ebx
mov r9d, esi
mov rcx, r15
mov edx, 0x3f
mov dword [rsp + 0x28], 1
call fcn.008836a0
mov r8d, dword [rsp + 0x60]
mov r9d, esi
mov rcx, r13
mov rax, qword [rsp + 0xa0]
mov rdx, qword [rsp + 0x50]
mov qword [rsp + 0x20], rax
call fcn.008dd7c0
jmp 0x8e0416
mov dword [rsp + 0x20], 0
xor r9d, r9d
mov edx, 0x87
mov rcx, r15
mov r8d, dword [rsp + 0xd0]
call fcn.00883630
jmp 0x8de61e
mov rax, qword [rdx + 0x20]
mov rax, qword [rax + 0x20]
mov eax, dword [rax]
cmp eax, 1
jle 0x8dfcea
movzx eax, byte [r13 + 0x1f]
test al, al
je 0x8e154f
sub eax, 1
mov byte [r13 + 0x1f], al
movzx eax, al
mov r12d, dword [r13 + rax*4 + 0xd8]
mov r9d, 1
mov r8d, r12d
mov rcx, r13
mov dword [rsp + 0x1a0], r12d
call fcn.008d54f0
movzx eax, byte [rdi]
sub eax, 0x37
and eax, 2
or eax, 1
cdqe
movzx edx, byte [rsp + rax + 0x1d0]
jmp 0x8dfd1c
mov rax, qword [rsi + 0x20]
mov rax, qword [rax + 0x20]
mov eax, dword [rax]
cmp eax, 1
jle 0x8de925
mov dword [rsp + 0x104], 1
jmp 0x8de934
mov rcx, r14
call fcn.008652c0
jmp 0x8ddff2
cmp byte [r14 + 0x4b], 2
je 0x8de258
movsxd rax, dword [rsi + 0x98]
test eax, eax
jle 0x8de258
mov r8, qword [rsi + 0x90]
lea rax, [rax + rax*2]
mov r9d, 2
lea rax, [r8 + rax*8]
mov word [rax - 0x16], r9w
jmp 0x8de258
movsxd rax, ebp
mov ecx, dword [rsp + 0xec]
lea rdx, [rax + rax*2]
mov rax, qword [r15 + 0x90]
lea rax, [rax + rdx*8]
mov byte [rax + 1], 0xfd
mov dword [rax + 0x10], ecx
jmp 0x8e0da9
test al, 0x40
je 0x8de048
movzx ebx, byte [rsp + 0x80]
test byte [rsp + 0x68], 8
mov ecx, 8
cmovne ebx, ecx
and eax, 0xffffffbf
mov dword [rdx + 0x38], eax
mov byte [rsp + 0x80], bl
jmp 0x8de048
cdqe
lea rcx, [rax + rax*2]
mov rax, qword [rdx + 0x90]
lea rcx, [rax + rcx*8]
jmp 0x8e0e44
mov rcx, qword [rsp + 0x48]
mov rdx, rax
call fcn.00869bb0
jmp 0x8e0f0c
movsxd rdx, edi
lea rcx, [rdx + rdx*2]
mov rdx, qword [r15 + 0x90]
lea rdx, [rdx + rcx*8]
jmp 0x8df395
xor edi, edi
jmp 0x8dea14
mov eax, dword [rdx + 0x98]
sub eax, 1
jmp 0x8e0e2f
mov esi, dword [rsp + 0xc0]
cmp esi, eax
jne 0x8e0726
mov dword [rsp + 0x100], 0
test rdi, rdi
je 0x8e0665
mov dword [rsp + 0xf0], 0
mov rax, qword [rdi]
mov rsi, qword [rax + 0x18]
jmp 0x8de884
mov edx, dword [rsi + 0x30]
mov ecx, eax
and ecx, 0x404000
and edx, 0xe0
or edx, ecx
jne 0x8de168
lea rax, [rdi*8]
xor r8d, r8d
sub rax, rdi
shl rax, 4
mov rax, qword [r15 + rax + 0x60]
test rax, rax
je 0x8e14dd
add r8d, 1
shr rax, 1
jne 0x8e14d4
mov rcx, qword [rsp + 0xb8]
mov r9d, 0xfffffffd
movsxd r8, r8d
mov edx, 0xffffffff
mov qword [rsp + 0x58], r11
call fcn.0087ec20
mov r11, qword [rsp + 0x58]
mov eax, dword [r11 + 0x38]
jmp 0x8de168
mov eax, dword [r13 + 0x38]
xor r8d, r8d
mov edx, 0x4a
mov rcx, r15
add eax, 1
mov dword [r13 + 0x38], eax
mov r9d, eax
mov dword [rsp + 0x20], 0
mov dword [rsp + 0xfc], eax
call fcn.00883630
mov eax, dword [r13 + 0x38]
add eax, 1
mov dword [rsp + 0xf8], eax
mov dword [r13 + 0x38], eax
jmp 0x8e09ee
mov eax, dword [r13 + 0x38]
lea r12d, [rax + 1]
mov dword [r13 + 0x38], r12d
jmp 0x8e1320
mov rcx, r14
call fcn.00877dc0
movzx ebx, byte [r14 + 0x48]
mov qword [rsp + 0xa0], rax
mov dword [rsp + 0xb0], ebx
mov eax, ebx
jmp 0x8e045c
movzx ecx, byte [rax]
lea edx, [rcx + 0x59]
and edx, 0xfd
jne 0x8df2a0
mov rdx, qword [rsi + 8]
movzx ecx, word [rdx + r8]
cmp word [rax + 0x30], cx
jne 0x8df2a0
cmp r13d, dword [rax + 0x2c]
jne 0x8df2a0
mov rcx, qword [rsp + 0x290]
mov rdx, r10
mov qword [rsp + 0x58], r8
mov qword [rsp + 0x50], r9
call fcn.00895a70
mov r9, qword [rsp + 0x50]
mov r8, qword [rsp + 0x58]
test rax, rax
je 0x8e1f78
mov r10, qword [rax]
xor ecx, ecx
jmp 0x8e160a
lea r11, [0x010ebf20]
movzx edx, byte [r11 + rdx]
cmp byte [r11 + rax], dl
jne 0x8df2a0
add rcx, 1
movzx eax, byte [r10 + rcx]
movzx edx, byte [r9 + rcx]
cmp eax, edx
jne 0x8e15f0
test eax, eax
jne 0x8e1606
mov rax, qword [rsi + 8]
movsx rax, word [rax + r8]
movsx edx, ax
test edx, edx
jns 0x8e167b
cmp edx, 0xffffffff
jne 0x8df2a8
jmp 0x8df1f0
movzx ebx, byte [rax]
lea edx, [rbx + 0x59]
and edx, 0xfd
jne 0x8df180
cmp r15d, dword [rax + 0x2c]
jne 0x8df180
cmp word [rax + 0x30], 0
jns 0x8df180
jmp 0x8df2c2
mov r9d, 0xffffffff
jmp 0x8e0108
mov rdx, qword [rsi + 0x18]
lea rax, [rax + rax*2]
mov rcx, qword [rdx + 8]
lea rax, [rcx + rax*8]
test byte [rax + 8], 0xf
jne 0x8df1f0
jmp 0x8df2a8
mov rcx, rbx
call fcn.00864200
test eax, eax
je 0x8de731
mov dword [rsp + 0x20], 0
mov r9d, dword [rsp + 0xec]
mov edx, 0x32
mov rcx, r15
mov r8d, dword [rsp + 0x100]
call fcn.00883630
jmp 0x8de731
movsxd rax, dword [rsp + 0x68]
lea rdx, [0x010e54c7]
mov r8d, dword [rsp + 0x9c]
mov rcx, r15
movzx edx, byte [rdx + rax]
mov dword [rbp + 0x3c], r8d
mov byte [rbp + 0x39], dl
lea rdx, [0x010e54c5]
mov dword [rsp + 0x20], 0
movzx edx, byte [rdx + rax]
call fcn.00883630
mov byte [rbp + 0x3b], 1
add eax, 1
mov dword [rbp + 0x40], eax
jmp 0x8dfb50
mov eax, dword [r13 + 0x38]
mov edx, 0x47
mov rcx, r15
mov r8d, 1
lea r9d, [rax + 1]
mov dword [r13 + 0x38], r9d
mov dword [rbp + 0x2c], r9d
mov dword [rsp + 0x20], 0
call fcn.00883630
mov eax, dword [r15 + 0x98]
mov rcx, qword [rsp + 0x78]
mov dword [rbp + 0x30], eax
mov eax, dword [rbp + 0x2c]
mov rcx, qword [rcx + 0x38]
lea edx, [rax + rax]
movzx eax, si
mov dword [rbp + 0x2c], edx
cmp byte [rcx + rax], 1
sete al
movzx eax, al
xor eax, dword [rsp + 0x68]
or eax, edx
mov edx, dword [r12 + 0x38]
mov dword [rbp + 0x2c], eax
jmp 0x8de574
mov rbx, qword [rsp + 0x78]
mov rax, qword [rbx + 0x50]
mov r10, rax
test rax, rax
je 0x8e1e18
mov rcx, qword [rsp + 0x78]
lea rax, [rsp + 0x170]
mov rsi, qword [rsp + 0x50]
xor ebx, ebx
lea r14, [rsp + 0x1a0]
mov rdx, qword [rcx + 0x18]
mov qword [rsp + 0x1c8], rax
mov eax, dword [rsp + 0x9c]
mov qword [rsp + 0x1a0], 0
mov qword [rsp + 0x1a8], 0
mov dword [rsp + 0x178], eax
mov eax, dword [rsp + 0xd0]
mov qword [rsp + 0x1b0], 0
mov qword [rsp + 0x1b8], 0
mov qword [rsp + 0x1c0], 0
cmp word [rcx + 0x60], 0
mov dword [rsp + 0x17c], eax
mov rax, qword [rsi]
mov qword [rsp + 0x188], rsi
mov rax, qword [rax]
mov qword [rsp + 0x190], rax
je 0x8e0171
mov qword [rsp + 0x48], r15
mov r15, rdx
mov dword [rsp + 0x70], edi
mov rdi, r10
mov qword [rsp + 0xc0], rbp
mov rbp, rcx
mov qword [rsp + 0x90], r12
jmp 0x8e18ef
test r11w, r11w
js 0x8e18df
movsx rax, r11w
lea rdx, [rax + rax*2]
mov rax, qword [r15 + 8]
lea rdx, [rax + rdx*8]
movzx eax, word [rdx + 0x12]
test al, 0x20
je 0x8e18df
test ah, 2
jne 0x8e1afb
lea rax, [0x0087ea70]
mov dword [rsp + 0x184], r11d
mov qword [rsp + 0x1a8], rax
mov rdx, qword [rsi + 0x20]
mov dword [rsp + 0x180], r12d
test rdx, rdx
je 0x8e18c7
mov rcx, r14
call fcn.0086e180
mov rdx, qword [rsi + 0x10]
mov rcx, r14
call fcn.0086e260
mov rdx, qword [rsi + 0x18]
mov rcx, r14
call fcn.0086e260
movzx eax, word [rbp + 0x60]
add rbx, 1
cmp eax, ebx
jle 0x8e1a79
mov rax, qword [rbp + 8]
mov r12d, ebx
movsx r11d, word [rax + rbx*2]
cmp r11w, 0xfffe
jne 0x8e1870
mov rax, rbx
mov r11d, 1
shl rax, 5
mov rdx, qword [rdi + rax + 8]
lea rax, [0x0086eba0]
mov word [rsp + 0x1f4], r11w
mov qword [rsp + 0x1d8], rax
lea rax, [0x008641f0]
mov qword [rsp + 0x170], rdx
mov qword [rsp + 0x1e0], rax
mov dword [rsp + 0x1f8], 0
test rdx, rdx
je 0x8e18df
lea rcx, [rsp + 0x1d0]
call fcn.0086e180
cmp word [rsp + 0x1f4], 0
jne 0x8e18df
lea rax, [0x0089f2f0]
mov qword [rsp + 0x1a8], rax
jmp 0x8e18ae
mov esi, dword [rsp + 0xc0]
mov eax, dword [rsp + 0xc8]
xor r8d, r8d
mov rcx, r15
mov dword [rsp + 0x20], 0
mov edx, 0x4a
lea r9d, [rsi + rax]
call fcn.00883630
mov r8d, esi
lea esi, [rsi + 1]
mov dword [rsp + 0xf8], 0
mov dword [rsp + 0x100], 1
mov dword [rsp + 0xfc], 1
jmp 0x8de799
mov r10, qword [rsp + 0x78]
movzx eax, si
mov rcx, qword [r10 + 8]
movsx rcx, word [rcx + rax*2]
mov rax, rcx
test ecx, ecx
js 0x8e1e41
mov rcx, qword [r10 + 0x18]
lea rax, [rax + rax*2]
mov r8, qword [rcx + 8]
lea rax, [r8 + rax*8]
test byte [rax + 8], 0xf
sete byte [rsp + 0xf0]
jmp 0x8de585
mov rax, qword [rdx + 0x20]
mov eax, dword [rax]
jmp 0x8e12f8
mov rax, qword [rdx + 0x20]
mov rax, qword [rax + 0x20]
mov eax, dword [rax]
cmp eax, 1
jg 0x8dfdea
jmp 0x8dfdd9
mov rax, qword [rsi + 0x20]
mov eax, dword [rax]
jmp 0x8e135e
mov rax, qword [rbx + 0x20]
mov rax, qword [rax + 0x20]
mov eax, dword [rax]
cmp eax, 1
jle 0x8de77c
mov dword [rsp + 0x100], 0
mov r8d, esi
mov dword [rsp + 0xf8], 1
jmp 0x8de799
mov r15, qword [rsp + 0x48]
mov edi, dword [rsp + 0x70]
mov r12, qword [rsp + 0x90]
mov rbp, qword [rsp + 0xc0]
jmp 0x8e0171
mov rax, qword [rdx + 0x20]
mov eax, dword [rax]
jmp 0x8e1a2f
mov rcx, qword [rdx + 0x20]
mov ecx, dword [rcx]
jmp 0x8e05ac
mov rax, qword [rbx + 0x20]
mov eax, dword [rax]
jmp 0x8e1a52
mov r9d, eax
xor r8d, r8d
mov edx, 0x47
mov rcx, r15
mov dword [rsp + 0x20], 0
call fcn.00883630
jmp 0x8e0612
mov rax, qword [rsp + 0xb8]
mov eax, dword [rax + 0x98]
mov dword [r14 + 0x54], eax
mov rax, qword [rsp + 0xa8]
cmp byte [rax + 0x67], 0
jne 0x8dec40
jmp 0x8df661
mov rdx, qword [rdx]
cmp byte [rdx], 0
je 0x8e1b11
nop dword [rax + rax]
add rdx, 1
cmp byte [rdx], 0
jne 0x8e1b08
test al, 4
jne 0x8e1b68
add rdx, 1
mov eax, 0x42
lea r10, str.BINARY
jmp 0x8e1b55
cdqe
lea r8, [0x010ebf20]
movzx eax, byte [r8 + rax]
cmp byte [r8 + rcx], al
jne 0x8e18df
movzx eax, byte [r10 + 1]
add r10, 1
add rdx, 1
movzx ecx, byte [rdx]
cmp ecx, eax
jne 0x8e1b30
test ecx, ecx
jne 0x8e1b48
jmp 0x8e1897
add rdx, 1
cmp byte [rdx], 0
je 0x8e1b15
add rdx, 1
cmp byte [rdx], 0
jne 0x8e1b68
jmp 0x8e1b15
mov dword [rsp + 0x104], 1
mov dword [rsp + 0xf8], 1
jmp 0x8e06d6
mov rdi, qword [rsi + 0x10]
test rdi, rdi
je 0x8e1f99
mov qword [rsp + 0x60], r14
mov r14d, dword [rsp + 0x58]
mov qword [rsp + 0x90], rbp
mov qword [rsp + 0x290], r13
jmp 0x8e1bcd
mov rdi, qword [rdi + 0x28]
test rdi, rdi
je 0x8e1f8c
cmp byte [rdi + 0x62], 0
je 0x8e1bc0
cmp qword [rdi + 0x48], 0
jne 0x8e1bc0
movzx eax, word [rdi + 0x5e]
cmp ax, 3
ja 0x8e1bc0
movzx edx, byte [rdi + 0x64]
mov ecx, edx
and ecx, 8
cmp cl, 1
sbb esi, esi
and esi, 0xffffff80
add esi, 0x82
mov dword [rsp + 0x50], esi
test ax, ax
je 0x8e206c
xor esi, esi
nop word [rax + rax]
mov eax, dword [rsp + 0x50]
mov qword [rsp + 0x28], rdi
mov r9d, esi
mov r8d, r14d
mov rdx, r15
mov rcx, rbx
mov r13d, esi
mov ebp, esi
mov dword [rsp + 0x20], eax
call fcn.0089c390
test rax, rax
jne 0x8e1c51
jmp 0x8e1ce8
mov rcx, rbx
call fcn.0089c040
test rax, rax
je 0x8e1ce8
cmp qword [rax + 0x28], 0
jne 0x8e1c40
mov rdx, qword [r12 + 0x48]
lea ebp, [r13 + 1]
mov qword [rdx + rsi*8], rax
movzx eax, word [rdi + 0x5e]
add rsi, 1
cmp eax, esi
jg 0x8e1c10
nop dword [rax]
cmp eax, ebp
jne 0x8e1bc0
mov ebx, ebp
mov r14, qword [rsp + 0x60]
movzx edx, byte [rdi + 0x64]
mov rbp, qword [rsp + 0x90]
mov r13, qword [rsp + 0x290]
mov dword [r12 + 0x38], 0x1201
and edx, 0x20
jne 0x8e1fc4
mov rax, qword [rbp + 0x60]
test qword [rdi + 0x68], rax
je 0x8e1fc4
mov esi, 0x27
mov word [r12 + 0x3c], bx
mov eax, 0x1201
mov word [r12 + 0x18], bx
mov qword [r12 + 0x20], rdi
mov word [r12 + 0x14], si
jmp 0x8e0351
movzx eax, word [rdi + 0x5e]
jmp 0x8e1c78
mov rax, qword [rsp + 0x78]
xor r9d, r9d
mov edx, 0x7b
mov rcx, r15
mov rax, qword [rax + 0x10]
movsx eax, word [rax]
mov dword [rsp + 0x20], 0
add eax, 9
movsxd r8, eax
sar eax, 0x1f
imul r8, r8, 0x66666667
sar r8, 0x22
sub r8d, eax
call fcn.00883630
mov dword [rsp + 0xf0], eax
jmp 0x8de826
mov eax, dword [rsp + 0x120]
xor r9d, r9d
mov edx, 0x1f
mov rcx, r15
mov r8d, dword [rsp + 0xfc]
mov dword [rsp + 0x20], eax
call fcn.00883630
mov ebp, eax
mov rax, qword [r15]
cmp byte [rax + 0x67], 0
jne 0x8e1d83
movsxd rax, ebp
mov ecx, dword [rsp + 0x104]
lea rdx, [rax + rax*2]
mov rax, qword [r15 + 0x90]
lea rax, [rax + rdx*8]
mov byte [rax + 1], 0xfd
mov dword [rax + 0x10], ecx
cmp dword [rsp + 0xec], 0xffffffff
je 0x8e10e6
mov eax, dword [rsp + 0xf8]
mov r9d, dword [rsp + 0x104]
mov edx, 0x60
mov rcx, r15
mov r8d, dword [rsp + 0x120]
mov dword [rsp + 0x20], eax
call fcn.00883630
mov ecx, dword [rsp + 0x104]
mov edx, 0x89
mov r9d, dword [rsp + 0xf8]
mov r8d, dword [rsp + 0xfc]
mov dword [rsp + 0x28], ecx
mov ecx, dword [rsp + 0x120]
mov dword [rsp + 0x20], ecx
mov rcx, r15
call fcn.008836a0
movsxd rax, dword [r15 + 0x98]
test eax, eax
jle 0x8e10e6
mov rdx, qword [r15 + 0x90]
lea rax, [rax + rax*2]
mov ecx, 0x10
lea rax, [rdx + rax*8]
mov word [rax - 0x16], cx
jmp 0x8e10e6
test byte [rbx + 0x65], 4
jne 0x8e179f
jmp 0x8e0171
mov rbx, qword [rsp + 0x78]
mov edx, 0x26
jmp 0x8e091d
mov r12d, 0xffff8000
jmp 0x8de0c8
cmp ecx, 0xfffffffe
sete byte [rsp + 0xf0]
jmp 0x8de585
mov edx, dword [rsp + 0x120]
mov rcx, r13
call fcn.0086f3a0
jmp 0x8e0da9
mov ebx, dword [rsp + 0xc8]
xor r8d, r8d
mov edx, 0x4a
mov rcx, r15
mov dword [rsp + 0x20], 0
lea r9d, [r14 + rbx]
call fcn.00883630
mov dword [rsp + 0x104], 0
jmp 0x8e0692
mov eax, dword [r13 + 0x130]
test eax, eax
je 0x8e1ffa
mov dword [rsp + 0x70], 0
mov rdx, qword [r13 + 0x10]
mov qword [rsp + 0xc8], 0
jmp 0x8e0e27
mov rdi, qword [rsp + 0x78]
mov rcx, qword [rbx]
mov rsi, qword [rdi + 0x18]
movsx edx, word [rsi + 0x36]
add edx, 1
movsxd rdx, edx
shl rdx, 2
call fcn.0087e170
mov r8, rax
test rax, rax
je 0x8e0155
movsx eax, word [rsi + 0x36]
mov dword [r8], eax
movzx eax, word [rdi + 0x60]
cmp ax, 1
jbe 0x8e1f60
mov rbx, qword [rsp + 0x78]
sub eax, 2
mov qword [rsp + 0x48], rbp
mov rcx, rsi
lea r9, [rax + 2]
mov rdi, qword [rbx + 8]
mov ebx, 1
mov rbp, r9
mov rsi, rbx
mov rbx, r8
jmp 0x8e1f46
test ax, ax
js 0x8e1f3d
movsx edx, ax
call fcn.0086f8c0
movsx rax, ax
mov dword [rbx + rax*4 + 4], esi
add rsi, 1
cmp rbp, rsi
je 0x8e1f58
movzx eax, word [rdi + rsi*2 - 2]
test byte [rcx + 0x30], 0x20
jne 0x8e1f28
test ax, ax
js 0x8e1f3d
jmp 0x8e1f35
mov rbp, qword [rsp + 0x48]
mov r8, rbx
mov r9d, 0xfffffff1
mov edx, 0xffffffff
mov rcx, r14
call fcn.0087ec20
jmp 0x8e0155
mov rax, qword [rsp + 0x290]
mov rax, qword [rax]
mov rax, qword [rax + 0x10]
jmp 0x8e15e4
mov r14, qword [rsp + 0x60]
mov r13, qword [rsp + 0x290]
mov eax, dword [r12 + 0x38]
test eax, eax
jne 0x8e0351
mov rax, qword [rsp + 0x140]
mov r12, qword [rsp + 0x150]
mov qword [rsp + 0x48], rax
mov rbp, qword [rax + 8]
jmp 0x8dddf6
mov qword [r12 + 0x20], rdi
mov edi, 0x27
mov eax, 0x1241
mov dword [r12 + 0x38], 0x1241
mov word [r12 + 0x3c], bx
mov word [r12 + 0x18], bx
mov word [r12 + 0x14], di
jmp 0x8e0351
xor eax, eax
jmp 0x8e0130
mov qword [rbp + 0x48], 0
mov dword [rsp + 0x70], 0
jmp 0x8e0e69
mov r8, qword [rax + 0x10]
mov rax, qword [rsp + 0x2b8]
mov r9d, ebx
mov rdi, qword [rsp + 0x88]
mov edx, dword [rax + 8]
mov dword [rsp + 0x20], 0x49
mov rcx, rdi
call fcn.00890bc0
mov rax, qword [rsp + 0x2b8]
mov edx, dword [rax + 0xc]
test edx, edx
jle 0x8ddc6c
mov rax, qword [rax + 0x60]
mov r9d, ebx
mov rcx, rdi
mov r8, qword [rax + 0x18]
mov dword [rsp + 0x20], 0x4a
call fcn.00890bc0
jmp 0x8ddc6c
mov rbp, qword [rsp + 0x90]
mov r14, qword [rsp + 0x60]
xor ebx, ebx
mov r13, qword [rsp + 0x290]
jmp 0x8e1c9b
jmp 0x92afec
jmp 0x92b005
jmp 0x92afec
jmp 0x92affb
add dword [r13 + 0x34], 1
movzx eax, word [0x5e]
ud2
movzx eax, word [0x5e]
ud2
movzx eax, word [0x5e]
ud2