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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r14
push r15
sub rsp, 0x40
mov ebp, dword [rsp + 0x80]
xor ebx, ebx
mov r10, qword [rsp + 0x90]
mov r15, r8
mov rdi, qword [rsp + 0xa8]
mov rsi, rdx
mov r11, rcx
lea eax, [rbp - 0x36]
cmp eax, 0xd
ja 0x180015c77
mov r8d, dword [rsp + 0x88]
mov edx, r8d
shr edx, 6
and edx, 3
cmp edx, 3
jne 0x180015b4f
cmp ebp, 0x3e
jne case.default.0x1800160b2
mov eax, 1
jmp 0x180016ef6
cdqe
lea r14, [0x180000000]
mov eax, dword [r14 + rax*4 + 0x16f10]
add rax, r14
jmp rax
cmp dword [rsp + 0x98], 2
jne case.0x180015b63.1
mov ecx, 0x2000000
or dword [r10 + 4], ecx
mov ebx, 0x40
jmp case.0x180015b63.0
mov ebx, 0x20
jmp case.0x180015b63.0
mov qword [rsp + 0x38], rdi
and r8d, 7
mov dword [rsp + 0x30], r9d
mov dword [rsp + 0x28], r8d
mov dword [rsp + 0x20], edx
mov r9d, dword [rsp + 0xa0]
mov r8, rsi
mov rdx, r10
mov rcx, r11
call fcn.180015810
movzx ecx, byte [rdi]
sub cl, 6
mov word [rdi + 2], bx
cmp cl, 1
ja 0x180016ef6
movzx ecx, byte [rdi + 1]
mov ecx, dword [r14 + rcx*4 + 0x5325a0]
or dword [rsi + 0x1c], ecx
jmp 0x180016ef6
lea eax, [rbp - 0x44]
cmp eax, 0x18
ja 0x180016081
mov edx, dword [rsp + 0x88]
lea r14, [0x180000000]
mov r15d, edx
cdqe
shr r15d, 6
and r15d, 3
cmp r15d, 3
je case.default.0x180015cb3
mov eax, dword [r14 + rax*4 + 0x16f48]
add rax, r14
jmp rax
mov ebx, 0x20
jmp 0x180015dc1
mov eax, 0x2000
or dword [r10 + 4], eax
mov ebx, 0x10
jmp 0x180015dc1
mov ebx, 8
jmp 0x180015dc1
mov qword [rsp + 0x38], rdi
and edx, 7
mov dword [rsp + 0x30], r9d
mov dword [rsp + 0x28], edx
mov dword [rsp + 0x20], r15d
jmp 0x180015c3a
mov eax, dword [r14 + rax*4 + 0x16fac]
and edx, 7
add rax, r14
jmp rax
mov ecx, dword [rsp + 0x98]
test ecx, ecx
je 0x180015e9c
sub ecx, 1
je 0x180015e4f
cmp ecx, 1
jne 0x180015e7d
lea r8, [r10 + 4]
mov ecx, 0x2000000
cmp ebp, 0x47
jne 0x180015e16
or dword [r8], ecx
test ecx, r9d
je 0x180015e24
or dword [r8], ecx
lea r11, [r10 + 4]
jmp 0x180015e27
mov r11, r8
bt r9d, 0x18
jb 0x180015e33
or dword [r8], ecx
jmp 0x180015e36
mov r11, r8
test byte [r10 + 0x24], 1
je 0x180015e48
mov eax, dword [r8]
or eax, ecx
mov dword [r11], eax
add edx, 8
mov ebx, 0x40
jmp 0x180015e7d
mov r8d, dword [r10 + 4]
mov eax, 0x2000
or r8d, eax
test byte [r10 + 0x24], 1
mov dword [r10 + 4], r8d
je 0x180015e75
mov ecx, 0x2000000
or r8d, ecx
mov dword [r10 + 4], r8d
add edx, 8
mov ebx, 0x20
add edx, 0x10
mov eax, dword [r14 + rdx*4 + 0x5325a0]
mov word [rdi + 2], bx
mov byte [rdi + 1], dl
mov byte [rdi], 1
or dword [rsi + 0x1c], eax
mov eax, 1
jmp 0x180016ef6
mov r8d, dword [r10 + 4]
mov eax, 0x2000
or r8d, eax
test byte [r10 + 0x24], 1
mov dword [r10 + 4], r8d
je 0x180015ec2
mov ecx, 0x2000000
or r8d, ecx
mov dword [r10 + 4], r8d
add edx, 8
mov ebx, 0x10
add edx, 0x20
jmp 0x180015e7d
test byte [r10 + 0x24], 1
je 0x180015f5a
mov ecx, 0x2000000
or dword [r10 + 4], ecx
add edx, 8
add edx, 0x20
mov ebx, 0x10
jmp 0x180015e7d
cmp dword [r10 + 0x18], 1
jne 0x180015fa2
mov eax, dword [r10 + 0x24]
mov ecx, 0x2000000
or dword [r10 + 4], ecx
and eax, 1
mov r8d, 0x30
mov ebx, 8
lea ecx, [rdx + rax*8]
mov edx, 0x3c
lea eax, [rcx - 4]
cmp eax, 3
cmova edx, r8d
add edx, ecx
jmp 0x180015e7d
add edx, 0x30
mov ebx, 8
jmp 0x180015e7d
test byte [r10 + 0x24], 1
je 0x180015e75
mov ecx, 0x2000000
or dword [r10 + 4], ecx
jmp 0x180015e72
mov r8d, dword [rsp + 0x88]
lea eax, [rbp - 1]
mov edx, r8d
shr edx, 3
and edx, 7
cmp eax, 0x34
ja case.default.0x1800160b2
cdqe
lea r14, [0x180000000]
mov eax, dword [r14 + rax*4 + 0x17010]
add rax, r14
jmp rax
mov byte [rdi], 2
mov word [rdi + 2], 8
sub dword [rcx + 0x20], 1
js case.default.0x1800160b2
mov rax, qword [rcx + 0x18]
movzx ecx, byte [rax]
mov eax, 1
mov byte [rsi], cl
inc qword [r11 + 0x18]
jmp 0x180016ef6
mov eax, dword [rsp + 0x98]
test eax, eax
jne 0x18001611e
mov eax, 0x2000
or dword [r10 + 4], eax
mov byte [rdi], 2
mov word [rdi + 2], 0x10
sub dword [rcx + 0x20], 2
js case.default.0x1800160b2
mov rax, qword [rcx + 0x18]
movzx ecx, word [rax]
mov eax, 1
mov word [rsi], cx
add qword [r11 + 0x18], 2
jmp 0x180016ef6
cmp eax, 2
jne 0x180016168
and r9d, 0x3000000
cmp r9d, 0x3000000
jne 0x180016168
mov ecx, 0x2000000
mov byte [rdi], al
or dword [r10 + 4], ecx
mov word [rdi + 2], 0x40
sub dword [r11 + 0x20], 8
js case.default.0x1800160b2
mov rax, qword [r11 + 0x18]
mov rcx, qword [rax]
mov eax, 1
mov qword [rsi], rcx
add qword [r11 + 0x18], 8
jmp 0x180016ef6
mov eax, 0x2000
or dword [r10 + 4], eax
mov byte [rdi], 2
mov eax, dword [rcx + 0x24]
mov word [rdi + 2], 0x20
cmp eax, 2
jne 0x1800161aa
or word [rsi + 0x18], 0x20
sub dword [rcx + 0x20], 4
js case.default.0x1800160b2
mov rax, qword [rcx + 0x18]
movsxd rcx, dword [rax]
mov eax, 1
mov qword [rsi], rcx
add qword [r11 + 0x18], 4
jmp 0x180016ef6
sub dword [rcx + 0x20], 4
js case.default.0x1800160b2
mov rax, qword [rcx + 0x18]
mov ecx, dword [rax]
mov eax, 1
mov dword [rsi], ecx
add qword [r11 + 0x18], 4
jmp 0x180016ef6
mov eax, 0x2000
mov byte [rdi], 2
test eax, r9d
je 0x180016202
test dword [r10], eax
je 0x180016202
or dword [r10 + 4], eax
mov ecx, dword [rcx + 0x24]
test ecx, ecx
je 0x1800161fa
sub ecx, 1
je 0x1800161f2
cmp ecx, 1
jne 0x180016208
mov word [rdi + 2], 0x10
jmp 0x180016208
mov word [rdi + 2], 0x20
jmp 0x180016208
mov word [rdi + 2], 8
or word [rsi + 0x18], 0x20
sub dword [r11 + 0x20], 1
js case.default.0x1800160b2
mov rax, qword [r11 + 0x18]
movsx rcx, byte [rax]
mov eax, 1
mov qword [rsi], rcx
inc qword [r11 + 0x18]
jmp 0x180016ef6
mov byte [rdi], 3
mov word [rdi + 2], 0x10
sub dword [rcx + 0x20], 2
js case.default.0x1800160b2
mov rax, qword [rcx + 0x18]
movzx ecx, word [rax]
mov eax, 1
mov word [rsi], cx
add qword [r11 + 0x18], 2
jmp 0x180016ef6
mov byte [rdi], 3
mov word [rdi + 2], 8
sub dword [rcx + 0x20], 1
js case.default.0x1800160b2
mov rax, qword [rcx + 0x18]
movzx ecx, byte [rax]
mov eax, 1
mov byte [rsi], cl
inc qword [r11 + 0x18]
jmp 0x180016ef6
mov byte [rdi], 4
mov word [rdi + 2], 8
sub dword [rcx + 0x20], 1
js case.default.0x1800160b2
mov rax, qword [rcx + 0x18]
movzx ecx, byte [rax]
mov eax, 1
mov byte [rsi + 4], cl
inc qword [r11 + 0x18]
jmp 0x180016ef6
mov byte [rdi], 1
mov word [rdi + 2], 8
cmp dword [r10 + 0x18], ebx
je 0x1800162f6
mov eax, dword [r10 + 0x24]
mov ecx, 0x2000000
or dword [r10 + 4], ecx
and eax, 4
mov r8d, 0x30
lea ecx, [rdx + rax*2]
mov edx, 0x3c
lea eax, [rcx - 4]
cmp eax, 3
cmova edx, r8d
add dl, cl
mov byte [rdi + 1], dl
movzx eax, dl
jmp 0x18001637e
add dl, 0x30
mov byte [rdi + 1], dl
movzx eax, dl
jmp 0x18001637e
mov ecx, dword [rsp + 0x98]
test ecx, ecx
je 0x180016393
sub ecx, 1
je 0x18001634e
cmp ecx, 1
jne 0x180016389
mov eax, dword [r10 + 0x24]
mov ecx, 0x2000000
or dword [r10 + 4], ecx
and eax, 4
mov byte [rdi], 1
mov word [rdi + 2], 0x40
lea ecx, [rdx + rax*2]
mov eax, dword [r14 + rcx*4 + 0x5325a0]
mov byte [rdi + 1], cl
or dword [rsi + 0x1c], eax
mov eax, 1
jmp 0x180016ef6
mov r8d, dword [r10 + 0x24]
and r8d, 4
je 0x18001635b
add edx, 8
test r8d, r8d
mov ecx, 0x2000000
mov eax, 0x2000
cmove ecx, eax
or dword [r10 + 4], ecx
mov byte [rdi], 1
lea eax, [rdx + 0x10]
mov word [rdi + 2], 0x20
mov byte [rdi + 1], al
mov eax, dword [r14 + rax*4 + 0x5325a0]
or dword [rsi + 0x1c], eax
mov eax, 1
jmp 0x180016ef6
mov r8d, dword [r10 + 4]
mov eax, 0x2000
or r8d, eax
test byte [r10 + 0x24], 4
mov dword [r10 + 4], r8d
je case.0x1800160b2.7
mov ecx, 0x2000000
or r8d, ecx
mov dword [r10 + 4], r8d
add edx, 8
lea eax, [rdx + 0x20]
mov byte [rdi], 1
mov word [rdi + 2], 0x10
jmp 0x18001637b
test byte [r10 + 0x24], 4
je 0x18001636f
mov ecx, 0x2000000
or dword [r10 + 4], ecx
add edx, 8
jmp 0x18001636f
mov r8d, dword [r10 + 0x24]
mov ecx, 0x2000000
test r8b, 4
je 0x1800163f2
or dword [r10 + 4], ecx
add edx, 8
cmp dword [r11 + 0x24], 2
jne 0x18001640d
and r9d, 0x3000000
cmp r9d, 0x1000000
je 0x180016ad6
mov byte [rdi], 1
test r8b, 8
je 0x180016372
or dword [r10 + 4], ecx
jmp 0x180016ad9
and r8d, 7
test byte [r10 + 0x24], 1
je 0x18001643b
mov ecx, 0x2000000
or dword [r10 + 4], ecx
add r8d, 8
mov eax, dword [r11 + 0x24]
mov byte [rdi], 1
cmp eax, 2
je 0x18001646c
lea eax, [r8 + 0x10]
jmp 0x180016375
lea eax, [rdx + 0x53]
mov byte [rdi], 1
mov word [rdi + 2], 0x40
jmp 0x18001637b
and r8d, 7
mov byte [rdi], 1
add r8d, 0x53
mov eax, dword [r14 + r8*4 + 0x5325a0]
mov byte [rdi + 1], r8b
mov word [rdi + 2], 0x40
or dword [rsi + 0x1c], eax
mov eax, 1
jmp 0x180016ef6
mov dword [rdi], 0x805b01
mov eax, 1
or dword [rsi + 0x1c], 0x400
jmp 0x180016ef6
test byte [r10 + 0x24], 4
je 0x1800164b5
mov ecx, 0x2000000
or dword [r10 + 4], ecx
add edx, 8
lea eax, [rdx + 0x5b]
mov byte [rdi], 1
mov word [rdi + 2], 0x80
jmp 0x18001637b
and r8d, 7
test byte [r10 + 0x24], 1
je 0x1800164de
mov ecx, 0x2000000
or dword [r10 + 4], ecx
add r8d, 8
lea eax, [r8 + 0x5b]
mov byte [rdi], 1
mov word [rdi + 2], 0x80
jmp 0x18001637b
test byte [r10 + 0x24], 4
je 0x180016509
mov ecx, 0x2000000
or dword [r10 + 4], ecx
lea rcx, [r11 + 0x24]
add edx, 8
jmp 0x180016524
add r11, 0x24
mov rcx, r11
cmp dword [r11], 1
jne 0x180016524
test byte [r10], 0x10
je 0x180016524
add edx, 8
or dword [r10 + 4], 0x10
cmp edx, 8
ja case.default.0x1800160b2
mov eax, 0x11d
bt eax, edx
jae case.default.0x1800160b2
mov byte [rdi], 1
mov eax, 0x40
cmp dword [rcx], 2
mov ebx, 0x20
cmovne ax, bx
add dl, 0x7b
mov word [rdi + 2], ax
movzx eax, dl
jmp 0x18001637b
lea eax, [rdx - 4]
cmp eax, 1
jbe case.default.0x1800160b2
test byte [r10 + 0x24], 4
jne case.default.0x1800160b2
mov byte [rdi], 1
mov eax, 0x40
cmp dword [rcx + 0x24], 2
mov ebx, 0x20
cmovne ax, bx
sub dl, 0x7c
mov word [rdi + 2], ax
movzx eax, dl
jmp 0x18001637b
lea rax, [rsi + 0x22]
cmp rax, rdi
jne 0x1800165ab
cmp edx, 1
je case.default.0x1800160b2
cmp edx, 5
ja case.default.0x1800160b2
lea eax, [rdx + 0x44]
mov byte [rdi], 1
mov word [rdi + 2], 0x10
jmp 0x18001637b
mov eax, 0x2000
mov byte [rdi], 1
or dword [r10 + 4], eax
and r9d, 0x1f80
mov word [rdi + 2], 0x10
cmp r9d, 0x400
ja 0x18001663a
je 0x18001662d
mov ebx, 0x80
cmp r9d, ebx
je 0x180016620
mov ecx, 0x100
cmp r9d, ecx
je 0x180016613
cmp r9d, 0x200
jne 0x18001665d
mov byte [rdi + 1], 0x47
movzx eax, byte [rdi + 1]
jmp 0x18001637e
mov byte [rdi + 1], 0x46
movzx eax, byte [rdi + 1]
jmp 0x18001637e
mov byte [rdi + 1], 0x45
movzx eax, byte [rdi + 1]
jmp 0x18001637e
mov byte [rdi + 1], 0x44
movzx eax, byte [rdi + 1]
jmp 0x18001637e
cmp r9d, 0x800
je 0x180016659
cmp r9d, 0x1000
jne 0x18001665d
mov byte [rdi + 1], 0x49
movzx eax, byte [rdi + 1]
jmp 0x18001637e
mov byte [rdi + 1], 0x48
movzx eax, byte [rdi + 1]
jmp 0x18001637e
mov dword [rdi], 0x83001
mov eax, 1
or dword [rsi + 0x1c], 1
jmp 0x180016ef6
mov eax, dword [rsp + 0x98]
test eax, eax
jne 0x1800166a2
mov eax, 0x2000
or dword [r10 + 4], eax
mov dword [rdi], 0x102001
mov eax, 1
or dword [rsi + 0x1c], 1
jmp 0x180016ef6
cmp eax, 1
je 0x1800166d0
cmp ebp, 0xe
je 0x1800166d0
bt r9d, 0x18
jb 0x1800166bc
mov ecx, 0x2000000
or dword [r10 + 4], ecx
mov dword [rdi], 0x400001
mov eax, 1
or dword [rsi + 0x1c], 1
jmp 0x180016ef6
mov eax, 0x2000
mov dword [rdi], 0x201001
or dword [r10 + 4], eax
mov eax, 1
or dword [rsi + 0x1c], 1
jmp 0x180016ef6
mov ecx, dword [rcx + 0x20]
mov eax, 0x2000
or dword [r10 + 4], eax
cmp dword [rsp + 0x98], ebx
jne 0x18001673e
lea eax, [rcx - 4]
mov dword [r11 + 0x20], eax
test eax, eax
js case.default.0x1800160b2
mov byte [rdi], 9
mov word [rdi + 2], 0x10
mov rax, qword [r11 + 0x18]
movzx ecx, word [rax]
mov dword [rsi + 4], ecx
mov rax, qword [r11 + 0x18]
movzx ecx, word [rax + 2]
mov eax, 1
mov word [rsi], cx
add qword [r11 + 0x18], 4
jmp 0x180016ef6
lea eax, [rcx - 6]
mov dword [r11 + 0x20], eax
test eax, eax
js case.default.0x1800160b2
mov byte [rdi], 9
mov word [rdi + 2], 0x20
mov rax, qword [r11 + 0x18]
mov ecx, dword [rax]
mov dword [rsi + 4], ecx
mov rax, qword [r11 + 0x18]
movzx ecx, word [rax + 4]
mov eax, 1
mov word [rsi], cx
add qword [r11 + 0x18], 6
jmp 0x180016ef6
cmp ebp, 0xf
jne 0x1800167a2
mov byte [rdi], 8
mov word [rdi + 2], 8
sub dword [rcx + 0x20], 1
js case.default.0x1800160b2
mov rax, qword [rcx + 0x18]
movsx rcx, byte [rax]
mov qword [rsi], rcx
inc qword [r11 + 0x18]
jmp 0x1800167f8
mov eax, 0x2000
or dword [r10 + 4], eax
mov byte [rdi], 8
cmp dword [rsp + 0x98], ebx
jne 0x1800167d9
mov word [rdi + 2], 0x10
sub dword [rcx + 0x20], 2
js case.default.0x1800160b2
mov rax, qword [rcx + 0x18]
movsx rcx, word [rax]
mov qword [rsi], rcx
add qword [r11 + 0x18], 2
jmp 0x1800167f8
mov word [rdi + 2], 0x20
sub dword [rcx + 0x20], 4
js case.default.0x1800160b2
mov rax, qword [rcx + 0x18]
movsxd rcx, dword [rax]
mov qword [rsi], rcx
add qword [r11 + 0x18], 4
movzx eax, word [r15 + 2]
mov ecx, 0x86
sub ax, cx
cmp ax, 0x44
ja 0x180016389
mov eax, dword [r10]
test al, al
jns 0x18001682e
mov ebx, 0x80
mov eax, 1
or dword [r10 + 4], ebx
or word [rsi + 0x18], 0x10
jmp 0x180016ef6
bt eax, 9
jae 0x180016389
or dword [r10 + 4], 0x200
mov eax, 1
or word [rsi + 0x18], 8
jmp 0x180016ef6
mov word [rdi + 2], 8
mov byte [rdi], 5
cmp word [rdi + 2], bx
jne 0x180016889
mov ecx, dword [rsp + 0x98]
test ecx, ecx
je 0x180016883
sub ecx, 1
je 0x18001687b
cmp ecx, 1
jne 0x180016889
mov word [rdi + 2], 0x40
jmp 0x180016889
mov word [rdi + 2], 0x20
jmp 0x180016889
mov word [rdi + 2], 0x10
mov r8d, dword [r11 + 0x24]
mov r9, rsi
mov rdx, r10
mov ecx, 0x200
call fcn.1800175d0
mov eax, dword [rsp + 0xa0]
test eax, eax
jne 0x1800168d9
or dword [r10 + 4], 0x4000
mov byte [rsi + 0x37], 0x10
sub dword [r11 + 0x20], 2
js case.default.0x1800160b2
mov rax, qword [r11 + 0x18]
movzx ecx, word [rax]
mov eax, 1
mov word [rsi + 8], cx
add qword [r11 + 0x18], 2
jmp 0x180016ef6
cmp eax, 1
jne 0x18001690d
or dword [r10 + 4], 0x4000
mov byte [rsi + 0x37], 0x20
sub dword [r11 + 0x20], 4
js case.default.0x1800160b2
mov rax, qword [r11 + 0x18]
mov ecx, dword [rax]
mov eax, 1
mov dword [rsi + 8], ecx
add qword [r11 + 0x18], 4
jmp 0x180016ef6
mov byte [rsi + 0x37], 0x40
sub dword [r11 + 0x20], 8
js case.default.0x1800160b2
mov rax, qword [r11 + 0x18]
mov rcx, qword [rax]
mov eax, 1
mov qword [rsi + 8], rcx
add qword [r11 + 0x18], 8
jmp 0x180016ef6
mov byte [rdi], 2
mov eax, 1
mov word [rdi + 2], 8
mov byte [rsi], 1
jmp 0x180016ef6
mov dword [rdi], 0x83101
mov eax, 1
or dword [rsi + 0x1c], 2
jmp 0x180016ef6
mov rax, qword [rcx + 0x18]
movzx ecx, byte [rax - 1]
and ecx, 7
mov byte [rdi], 1
add ecx, 0x4b
mov word [rdi + 2], 0x20
mov byte [rdi + 1], cl
mov eax, dword [r14 + rcx*4 + 0x5325a0]
or dword [rsi + 0x1c], eax
mov eax, 1
jmp 0x180016ef6
mov dword [rdi], 0x204b01
mov ecx, 0x100
or dword [rsi + 0x1c], ecx
mov ebx, 0x20
mov rax, qword [r11 + 0x18]
movzx ecx, byte [rax - 1]
and ecx, 7
mov byte [rdi + 4], 1
add ecx, 0x4b
mov word [rdi + 6], bx
mov byte [rdi + 5], cl
mov eax, dword [r14 + rcx*4 + 0x5325a0]
or dword [rsi + 0x1c], eax
mov eax, 1
inc byte [rsi + 0x32]
jmp 0x180016ef6
mov rax, qword [rcx + 0x18]
mov ebx, 0x20
movzx ecx, byte [rax - 1]
and ecx, 7
mov byte [rdi], 1
add ecx, 0x4b
mov word [rdi + 2], bx
mov byte [rdi + 1], cl
mov eax, dword [r14 + rcx*4 + 0x5325a0]
mov ecx, 0x100
or dword [rsi + 0x1c], eax
mov eax, 1
mov dword [rdi + 4], 0x204b01
or dword [rsi + 0x1c], ecx
inc byte [rsi + 0x32]
jmp 0x180016ef6
mov byte [rdi], 1
mov word [rdi + 2], 8
mov rax, qword [rcx + 0x18]
movzx edx, byte [rax - 1]
and edx, 7
test byte [r10 + 0x24], 1
je 0x180016a49
mov ecx, 0x2000000
or dword [r10 + 4], ecx
add edx, 0x38
mov byte [rdi + 1], dl
movzx eax, dl
jmp 0x18001637e
cmp dword [r10 + 0x18], 1
jne 0x1800162f6
mov ecx, 0x2000000
or dword [r10 + 4], ecx
cmp edx, 4
jb 0x180016a70
add edx, 0x3c
mov byte [rdi + 1], dl
movzx eax, dl
jmp 0x18001637e
add edx, 0x30
mov byte [rdi + 1], dl
movzx eax, dl
jmp 0x18001637e
mov rax, qword [rcx + 0x18]
mov ecx, dword [rsp + 0x98]
movzx edx, byte [rax - 1]
and edx, 7
test ecx, ecx
je 0x180016b04
sub ecx, 1
je 0x180016af7
cmp ecx, 1
jne 0x180016389
mov eax, dword [r10 + 0x24]
and r9d, 0x3000000
and eax, ecx
cmp r9d, 0x1000000
jne 0x180016aca
test eax, eax
je 0x180016ad6
mov ecx, 0x2000000
or dword [r10 + 4], ecx
add edx, 8
jmp 0x180016ad6
mov ecx, 0x2000000
lea edx, [rdx + rax*8]
or dword [r10 + 4], ecx
mov byte [rdi], 1
mov eax, dword [r14 + rdx*4 + 0x5325a0]
mov byte [rdi + 1], dl
mov word [rdi + 2], 0x40
or dword [rsi + 0x1c], eax
mov eax, 1
jmp 0x180016ef6
mov r8d, dword [r10 + 0x24]
and r8d, 1
jmp 0x180016356
mov r8d, dword [r10 + 4]
mov eax, 0x2000
or r8d, eax
test byte [r10 + 0x24], 1
jmp 0x1800163a4
mov edx, dword [r10 + 4]
bts edx, 0xe
mov byte [rdi], 6
mov dword [r10 + 4], edx
test r9b, 4
je 0x180016b74
mov eax, 0x2000
or edx, eax
mov eax, dword [rsp + 0x98]
mov dword [r10 + 4], edx
test eax, eax
jne 0x180016b4d
mov word [rdi + 2], 0x10
jmp 0x180016b7a
cmp eax, 2
jne 0x180016b6c
bt r9d, 0x18
jae 0x180016b6c
mov ecx, 0x2000000
mov word [rdi + 2], 0x40
or edx, ecx
mov dword [r10 + 4], edx
jmp 0x180016b7a
mov word [rdi + 2], 0x20
jmp 0x180016b7a
mov word [rdi + 2], 8
mov byte [rsi + 0x34], 0xff
mov r9, rsi
mov r8d, dword [r11 + 0x24]
mov rdx, r10
mov ecx, 0x200
call fcn.1800175d0
mov ecx, dword [rsp + 0xa0]
test ecx, ecx
jne 0x180016baf
mov byte [rdi + 1], 0x26
mov eax, 1
or dword [rsi + 0x1c], 0x40
jmp 0x180016ef6
cmp ecx, 1
mov eax, 6
mov edx, 0x16
cmove eax, edx
mov byte [rdi + 1], al
mov eax, 1
or dword [rsi + 0x1c], 0x40
jmp 0x180016ef6
mov edx, dword [r10 + 4]
bts edx, 0xe
mov byte [rdi], 6
mov dword [r10 + 4], edx
test r9b, 4
je 0x180016c2a
mov eax, 0x2000
or edx, eax
mov eax, dword [rsp + 0x98]
mov dword [r10 + 4], edx
test eax, eax
jne 0x180016c03
mov word [rdi + 2], 0x10
jmp 0x180016c30
cmp eax, 2
jne 0x180016c22
bt r9d, 0x18
jae 0x180016c22
mov ecx, 0x2000000
mov word [rdi + 2], 0x40
or edx, ecx
mov dword [r10 + 4], edx
jmp 0x180016c30
mov word [rdi + 2], 0x20
jmp 0x180016c30
mov word [rdi + 2], 8
cmp byte [rsi + 0x34], 0xff
jne 0x180016c41
cmp dword [r11 + 0x24], 2
je 0x180016c41
mov byte [rsi + 0x34], 0xc4
mov ecx, dword [rsp + 0xa0]
test ecx, ecx
jne 0x180016c62
mov ebx, 0x80
mov byte [rdi + 1], 0x27
or dword [rsi + 0x1c], ebx
mov eax, 1
jmp 0x180016ef6
cmp ecx, 1
mov eax, 7
mov edx, 0x17
mov ebx, 0x80
cmove eax, edx
mov byte [rdi + 1], al
mov eax, 1
or dword [rsi + 0x1c], ebx
jmp 0x180016ef6
mov dword [rdi], 0x102201
mov eax, 1
or dword [rsi + 0x1c], 4
jmp 0x180016ef6
mov dword [rdi], 0x201101
mov eax, 1
or dword [rsi + 0x1c], 2
jmp 0x180016ef6
mov r8d, dword [rcx + 0x24]
mov r9, rsi
or dword [r10 + 4], 0x4000
mov ecx, 0x200
mov rdx, r10
call fcn.1800175d0
mov eax, dword [rsp + 0xa0]
mov dword [rdi], 0x83007
mov edx, dword [rsi + 0x1c]
or edx, 1
test eax, eax
jne 0x180016cfc
mov rax, qword [0x18053262c]
or eax, edx
mov byte [rsi + 0x35], 0x23
mov dword [rsi + 0x1c], eax
mov eax, 1
jmp 0x180016ef6
cmp eax, 1
jne 0x180016d1a
mov eax, dword [0x1805325ec]
or eax, edx
mov byte [rsi + 0x35], 0x13
mov dword [rsi + 0x1c], eax
mov eax, 1
jmp 0x180016ef6
mov eax, dword [0x1805325ac]
mov ecx, 0x2000000
or dword [r10 + 4], ecx
or eax, edx
mov byte [rsi + 0x35], 3
mov dword [rsi + 0x1c], eax
mov eax, 1
jmp 0x180016ef6
mov eax, dword [rsp + 0xa0]
mov byte [rdi], 6
cmp eax, 2
jne 0x180016d62
mov byte [rdi + 1], bl
mov eax, 1
mov word [rdi + 2], 0x40
or dword [rsi + 0x1c], 1
jmp 0x180016ef6
or dword [r10 + 4], 0x4000
cmp eax, 1
jne 0x180016d81
mov byte [rdi + 1], 0x10
mov word [rdi + 2], 0x20
or dword [rsi + 0x1c], eax
jmp 0x180016ef6
mov byte [rdi + 1], 0x20
mov eax, 1
mov word [rdi + 2], 0x10
or dword [rsi + 0x1c], 1
jmp 0x180016ef6
mov eax, dword [r10 + 0x20]
add eax, 0x5b
mov byte [rdi], 1
mov word [rdi + 2], 0x80
jmp 0x18001637b
sub dword [rcx + 0x20], 1
js case.default.0x1800160b2
mov rax, qword [rcx + 0x18]
movzx ecx, byte [rax]
shr ecx, 4
mov eax, ecx
and eax, 7
cmp dword [r11 + 0x24], 1
mov byte [rdi], 1
cmove ecx, eax
mov word [rdi + 2], 0x80
lea eax, [rcx + 0x5b]
mov byte [rdi + 1], al
mov eax, dword [r14 + rax*4 + 0x5325a0]
or dword [rsi + 0x1c], eax
mov eax, 1
inc qword [r11 + 0x18]
jmp 0x180016ef6
mov eax, dword [r10 + 0x24]
test al, 4
je 0x180016e02
add edx, 8
mov byte [rdi], 1
test al, 0x10
je 0x180016e17
lea eax, [rdx + 0x6b]
mov word [rdi + 2], 0x100
jmp 0x18001637b
lea eax, [rdx + 0x5b]
mov word [rdi + 2], 0x80
jmp 0x18001637b
sub dword [rcx + 0x20], 1
js case.default.0x1800160b2
mov rax, qword [rcx + 0x18]
movzx ecx, byte [rax]
shr ecx, 4
mov eax, ecx
and eax, 7
cmp dword [r11 + 0x24], 1
cmove ecx, eax
mov eax, dword [r10 + 0x24]
mov byte [rdi], 1
test al, 0x10
je 0x180016e5c
lea eax, [rcx + 0x6b]
mov word [rdi + 2], 0x100
jmp 0x180016e65
lea eax, [rcx + 0x5b]
mov word [rdi + 2], 0x80
mov byte [rdi + 1], al
mov eax, dword [r14 + rax*4 + 0x5325a0]
or dword [rsi + 0x1c], eax
mov eax, 1
inc qword [r11 + 0x18]
jmp 0x180016ef6
test byte [r10 + 0x24], 4
je 0x180016e88
add edx, 8
lea eax, [rdx + 0x6b]
mov byte [rdi], 1
mov word [rdi + 2], 0x100
jmp 0x18001637b
mov eax, dword [r10 + 0x20]
add eax, 0x6b
mov byte [rdi], 1
mov word [rdi + 2], 0x100
jmp 0x18001637b
mov eax, dword [r10 + 0x24]
mov byte [rdi], 1
mov ecx, dword [r10 + 0x20]
test al, 0x10
je 0x180016ecb
lea eax, [rcx + 0x6b]
mov word [rdi + 2], 0x100
jmp 0x18001637b
lea eax, [rcx + 0x5b]
mov word [rdi + 2], 0x80
jmp 0x18001637b
mov eax, dword [r10 + 0x24]
test al, 4
je 0x180016ee4
add edx, 8
mov byte [rdi], 1
test al, 8
je 0x180016372
jmp 0x180016ad9
xor eax, eax
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
add rsp, 0x40
pop r15
pop r14
pop rdi
ret