Function at 0x18012ce20
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 rdi, qword [rsp + 0xa8]
mov r10d, r9d
mov r9d, dword [rsp + 0x80]
xor ebx, ebx
mov r11, r8
mov rsi, rdx
mov rbp, rcx
lea eax, [r9 - 0x36]
cmp eax, 0xd
ja 0x18012cfbf
mov r15d, dword [rsp + 0x88]
mov r8d, r15d
shr r8d, 6
and r8d, 3
cmp r8d, 3
jne 0x18012ce8e
cmp r9d, 0x3e
jne case.default.0x18012d44a
lea eax, [rbx + 1]
jmp 0x18012e464
mov r11, qword [rsp + 0x90]
lea r14, [0x180000000]
cdqe
mov ecx, dword [r14 + rax*4 + 0x12e480]
add rcx, r14
jmp rcx
cmp dword [rsp + 0x98], 2
jne case.0x18012ceaa.1
mov edx, 0x2000000
or dword [r11 + 4], edx
mov ebx, 0x40
jmp case.0x18012ceaa.0
mov ebx, 0x20
jmp case.0x18012ceaa.0
mov qword [rsp + 0x38], rdi
and r15d, 7
mov dword [rsp + 0x30], r10d
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], r8d
mov r9d, dword [rsp + 0xa0]
mov r8, rsi
mov rdx, r11
mov rcx, rbp
call fcn.18012e660
movzx ecx, byte [rdi]
sub cl, 6
mov word [rdi + 2], bx
cmp cl, 1
ja 0x18012e464
movzx ecx, byte [rdi + 1]
mov ecx, dword [r14 + rcx*4 + 0xdb6030]
or dword [rsi + 0x1c], ecx
jmp 0x18012e464
mov r8d, dword [rsp + 0x88]
lea eax, [r9 - 0x44]
cmp eax, 0x18
ja 0x18012d420
mov r15d, r8d
cdqe
shr r15d, 6
lea r14, [0x180000000]
and r15d, 3
cmp r15d, 3
je case.default.0x18012d005
mov ecx, dword [r14 + rax*4 + 0x12e4b8]
mov r11, qword [rsp + 0x90]
add rcx, r14
jmp rcx
mov ebx, 0x20
jmp 0x18012d115
mov r9d, 0x2000
or dword [r11 + 4], r9d
mov ebx, 0x10
jmp 0x18012d115
mov ebx, 8
jmp 0x18012d115
mov qword [rsp + 0x38], rdi
and r8d, 7
mov dword [rsp + 0x30], r10d
mov dword [rsp + 0x28], r8d
mov dword [rsp + 0x20], r15d
jmp 0x18012cf82
mov eax, dword [r14 + rax*4 + 0x12e51c]
and r8d, 7
add rax, r14
jmp rax
mov ecx, dword [rsp + 0x98]
test ecx, ecx
je 0x18012d1ec
sub ecx, 1
je 0x18012d198
cmp ecx, 1
jne 0x18012d1cc
mov rax, qword [rsp + 0x90]
mov edx, 0x2000000
cmp r9d, 0x47
jne 0x18012d172
or dword [rax + 4], edx
test edx, r10d
je 0x18012d17a
or dword [rax + 4], edx
bt r10d, 0x18
jb 0x18012d184
or dword [rax + 4], edx
test byte [rax + 0x24], 1
je 0x18012d191
or dword [rax + 4], edx
add r8d, 8
mov ebx, 0x40
jmp 0x18012d1cc
mov rcx, qword [rsp + 0x90]
mov r9d, 0x2000
mov eax, dword [rcx + 4]
or eax, r9d
test byte [rcx + 0x24], 1
mov dword [rcx + 4], eax
je 0x18012d1c3
mov edx, 0x2000000
or eax, edx
mov dword [rcx + 4], eax
add r8d, 8
mov ebx, 0x20
add r8d, 0x10
mov word [rdi + 2], bx
mov byte [rdi + 1], r8b
mov byte [rdi], 1
mov eax, dword [r14 + r8*4 + 0xdb6030]
or dword [rsi + 0x1c], eax
mov eax, 1
jmp 0x18012e464
mov rcx, qword [rsp + 0x90]
mov r9d, 0x2000
mov eax, dword [rcx + 4]
or eax, r9d
test byte [rcx + 0x24], 1
mov dword [rcx + 4], eax
je 0x18012d217
mov edx, 0x2000000
or eax, edx
mov dword [rcx + 4], eax
add r8d, 8
mov ebx, 0x10
add r8d, 0x20
jmp 0x18012d1cc
mov rax, qword [rsp + 0x90]
test byte [rax + 0x24], 1
je 0x18012d2c3
mov edx, 0x2000000
or dword [rax + 4], edx
add r8d, 8
add r8d, 0x20
mov ebx, 0x10
jmp 0x18012d1cc
mov rax, qword [rsp + 0x90]
cmp dword [rax + 0x18], 1
jne 0x18012d311
mov edx, 0x2000000
or dword [rax + 4], edx
mov edx, 0x30
mov eax, dword [rax + 0x24]
and eax, 1
lea ebx, [rdx - 0x28]
lea ecx, [r8 + rax*8]
mov r8d, 0x3c
lea eax, [rcx - 4]
cmp eax, 3
cmova r8d, edx
add r8d, ecx
jmp 0x18012d1cc
add r8d, 0x30
mov ebx, 8
jmp 0x18012d1cc
mov rax, qword [rsp + 0x90]
test byte [rax + 0x24], 1
je 0x18012d1c3
mov edx, 0x2000000
or dword [rax + 4], edx
jmp 0x18012d1bf
mov ecx, r8d
lea eax, [r9 - 1]
shr ecx, 3
and ecx, 7
cmp eax, 0x34
ja case.default.0x18012d44a
cdqe
lea r14, [0x180000000]
mov eax, dword [r14 + rax*4 + 0x12e580]
add rax, r14
jmp rax
mov byte [rdi], 2
mov ebx, 8
mov word [rdi + 2], bx
sub dword [rbp + 0x20], 1
js case.default.0x18012d44a
mov rax, qword [rbp + 0x18]
movzx ecx, byte [rax]
lea eax, [rbx - 7]
mov byte [rdx], cl
inc qword [rbp + 0x18]
jmp 0x18012e464
mov eax, dword [rsp + 0x98]
test eax, eax
jne 0x18012d4c1
mov rax, qword [rsp + 0x90]
mov r9d, 0x2000
or dword [rax + 4], r9d
mov byte [rdi], 2
mov ebx, 0x10
mov word [rdi + 2], bx
add dword [rbp + 0x20], 0xfffffffe
js case.default.0x18012d44a
mov rax, qword [rbp + 0x18]
movzx ecx, word [rax]
lea eax, [rbx - 0xf]
mov word [rdx], cx
add qword [rbp + 0x18], 2
jmp 0x18012e464
cmp eax, 2
jne 0x18012d513
and r10d, 0x3000000
cmp r10d, 0x3000000
jne 0x18012d513
mov rax, qword [rsp + 0x90]
mov edx, 0x2000000
mov ebx, 0x40
or dword [rax + 4], edx
mov byte [rdi], 2
mov word [rdi + 2], bx
add dword [rbp + 0x20], 0xfffffff8
js case.default.0x18012d44a
mov rax, qword [rbp + 0x18]
mov rcx, qword [rax]
lea eax, [rbx - 0x3f]
mov qword [rsi], rcx
add qword [rbp + 0x18], 8
jmp 0x18012e464
mov rax, qword [rsp + 0x90]
mov r9d, 0x2000
or dword [rax + 4], r9d
mov byte [rdi], 2
mov ebx, 0x20
mov eax, dword [rbp + 0x24]
mov word [rdi + 2], bx
cmp eax, 2
jne 0x18012d55e
or word [rdx + 0x18], bx
add dword [rbp + 0x20], 0xfffffffc
js case.default.0x18012d44a
mov rax, qword [rbp + 0x18]
movsxd rcx, dword [rax]
lea eax, [rbx - 0x1f]
mov qword [rdx], rcx
add qword [rbp + 0x18], 4
jmp 0x18012e464
add dword [rbp + 0x20], 0xfffffffc
js case.default.0x18012d44a
mov rax, qword [rbp + 0x18]
mov ecx, dword [rax]
mov eax, 1
mov dword [rdx], ecx
add qword [rbp + 0x18], 4
jmp 0x18012e464
mov r9d, 0x2000
mov byte [rdi], 2
test r9d, r10d
je 0x18012d5bd
mov rax, qword [rsp + 0x90]
test dword [rax], r9d
je 0x18012d5bd
or dword [rax + 4], r9d
mov ecx, dword [rbp + 0x24]
test ecx, ecx
je 0x18012d5b6
sub ecx, 1
je 0x18012d5af
cmp ecx, 1
jne 0x18012d5c6
mov ebx, 0x10
jmp 0x18012d5c2
mov ebx, 0x20
jmp 0x18012d5c2
mov ebx, 8
mov word [rdi + 2], bx
or word [rdx + 0x18], 0x20
sub dword [rbp + 0x20], 1
js case.default.0x18012d44a
mov rax, qword [rbp + 0x18]
movsx rcx, byte [rax]
mov eax, 1
mov qword [rdx], rcx
inc qword [rbp + 0x18]
jmp 0x18012e464
mov byte [rdi], 3
jmp 0x18012d497
mov byte [rdi], 3
jmp 0x18012d44f
mov ebx, 8
mov byte [rdi], 4
mov word [rdi + 2], bx
sub dword [rbp + 0x20], 1
js case.default.0x18012d44a
mov rax, qword [rbp + 0x18]
movzx ecx, byte [rax]
lea eax, [rbx - 7]
mov byte [rdx + 4], cl
inc qword [rbp + 0x18]
jmp 0x18012e464
mov rax, qword [rsp + 0x90]
mov ebx, 8
mov byte [rdi], 1
mov word [rdi + 2], bx
cmp dword [rax + 0x18], 0
je 0x18012d67a
mov edx, 0x2000000
mov r8d, 0x3c
or dword [rax + 4], edx
mov edx, 0x30
mov eax, dword [rax + 0x24]
and eax, 4
lea ecx, [rcx + rax*2]
lea eax, [rcx - 4]
cmp eax, 3
cmova r8d, edx
add r8b, cl
mov byte [rdi + 1], r8b
movzx eax, r8b
jmp 0x18012d748
lea r8d, [rcx + 0x30]
mov byte [rdi + 1], r8b
movzx eax, r8b
jmp 0x18012d748
lea eax, [rcx + 0x20]
mov byte [rdi], 1
mov ebx, 0x10
mov byte [rdi + 1], al
mov word [rdi + 2], bx
mov eax, dword [r14 + rax*4 + 0xdb6030]
or dword [rdx + 0x1c], eax
mov eax, 1
jmp 0x18012e464
mov edx, dword [rsp + 0x98]
test edx, edx
je 0x18012d75d
sub edx, 1
je 0x18012d70c
cmp edx, 1
jne 0x18012d753
mov rax, qword [rsp + 0x90]
mov edx, 0x2000000
or dword [rax + 4], edx
mov eax, dword [rax + 0x24]
and eax, 4
lea ecx, [rcx + rax*2]
mov byte [rdi], 1
mov ebx, 0x40
mov word [rdi + 2], bx
mov byte [rdi + 1], cl
mov eax, dword [r14 + rcx*4 + 0xdb6030]
or dword [rsi + 0x1c], eax
mov eax, 1
jmp 0x18012e464
mov rax, qword [rsp + 0x90]
mov r8d, dword [rax + 0x24]
and r8d, 4
je 0x18012d721
add ecx, 8
test r8d, r8d
mov edx, 0x2000000
mov r9d, 0x2000
cmove edx, r9d
or dword [rax + 4], edx
mov byte [rdi], 1
lea eax, [rcx + 0x10]
mov ebx, 0x20
mov word [rdi + 2], bx
mov byte [rdi + 1], al
mov eax, dword [r14 + rax*4 + 0xdb6030]
or dword [rsi + 0x1c], eax
mov eax, 1
jmp 0x18012e464
mov r8, qword [rsp + 0x90]
mov r9d, 0x2000
mov eax, dword [r8 + 4]
or eax, r9d
test byte [r8 + 0x24], 4
mov dword [r8 + 4], eax
je 0x18012d78b
mov edx, 0x2000000
or eax, edx
mov dword [r8 + 4], eax
add ecx, 8
lea eax, [rcx + 0x20]
mov byte [rdi], 1
mov ebx, 0x10
jmp 0x18012d741
mov rax, qword [rsp + 0x90]
test byte [rax + 0x24], 4
je 0x18012d736
mov edx, 0x2000000
or dword [rax + 4], edx
add ecx, 8
jmp 0x18012d736
mov rax, qword [rsp + 0x90]
mov edx, 0x2000000
mov r8d, dword [rax + 0x24]
test r8b, 4
je 0x18012d7d0
or dword [rax + 4], edx
add ecx, 8
cmp dword [rbp + 0x24], 2
jne 0x18012d7ea
and r10d, 0x3000000
cmp r10d, 0x1000000
je 0x18012d6e8
test r8b, 8
je 0x18012d736
or dword [rax + 4], edx
jmp 0x18012d6e8
mov rax, qword [rsp + 0x90]
and r8d, 7
test byte [rax + 0x24], 1
je 0x18012d81a
mov edx, 0x2000000
or dword [rax + 4], edx
add r8d, 8
mov eax, dword [rbp + 0x24]
mov byte [rdi], 1
cmp eax, 2
je 0x18012df5c
lea eax, [r8 + 0x10]
jmp 0x18012d73c
lea eax, [rcx + 0x53]
mov byte [rdi], 1
mov byte [rdi + 1], al
mov ebx, 0x40
mov word [rdi + 2], bx
mov eax, dword [r14 + rax*4 + 0xdb6030]
or dword [rdx + 0x1c], eax
lea eax, [rbx - 0x3f]
jmp 0x18012e464
and r8d, 7
mov byte [rdi], 1
add r8d, 0x53
mov ebx, 0x40
mov byte [rdi + 1], r8b
mov word [rdi + 2], bx
mov eax, dword [r14 + r8*4 + 0xdb6030]
or dword [rdx + 0x1c], eax
lea eax, [rbx - 0x3f]
jmp 0x18012e464
mov dword [rdi], 0x805b01
mov eax, dword [0x180db619c]
or dword [rdx + 0x1c], eax
mov eax, 1
jmp 0x18012e464
mov rax, qword [rsp + 0x90]
test byte [rax + 0x24], 4
je 0x18012d8b4
mov edx, 0x2000000
or dword [rax + 4], edx
add ecx, 8
lea eax, [rcx + 0x5b]
mov byte [rdi], 1
mov ebx, 0x80
jmp 0x18012d741
mov rax, qword [rsp + 0x90]
and r8d, 7
test byte [rax + 0x24], 1
je 0x18012d8e2
mov edx, 0x2000000
or dword [rax + 4], edx
add r8d, 8
lea eax, [r8 + 0x5b]
mov byte [rdi], 1
mov ebx, 0x80
jmp 0x18012d741
mov rax, qword [rsp + 0x90]
test byte [rax + 0x24], 4
je 0x18012d90e
mov edx, 0x2000000
or dword [rax + 4], edx
add ecx, 8
jmp 0x18012d920
cmp dword [rbp + 0x24], 1
jne 0x18012d920
test byte [rax], 0x10
je 0x18012d920
add ecx, 8
or dword [rax + 4], 0x10
cmp ecx, 8
ja case.default.0x18012d44a
mov eax, 0x11d
bt eax, ecx
jae case.default.0x18012d44a
mov byte [rdi], 1
mov eax, 0x40
cmp dword [rbp + 0x24], 2
mov ebx, 0x20
cmovne ax, bx
add cl, 0x7b
mov word [rdi + 2], ax
movzx eax, cl
jmp 0x18012d745
lea eax, [rcx - 4]
cmp eax, 1
jbe case.default.0x18012d44a
mov rax, qword [rsp + 0x90]
test byte [rax + 0x24], 4
jne case.default.0x18012d44a
mov byte [rdi], 1
mov eax, 0x40
cmp dword [rbp + 0x24], 2
mov ebx, 0x20
cmovne ax, bx
sub cl, 0x7c
mov word [rdi + 2], ax
movzx eax, cl
mov byte [rdi + 1], al
mov eax, dword [r14 + rax*4 + 0xdb6030]
or dword [rdx + 0x1c], eax
lea eax, [rbx - 0x1f]
jmp 0x18012e464
lea rax, [rdx + 0x22]
cmp rax, rdi
jne 0x18012d9c0
cmp ecx, 1
je case.default.0x18012d44a
cmp ecx, 5
ja case.default.0x18012d44a
lea eax, [rcx + 0x44]
jmp 0x18012d68e
mov rax, qword [rsp + 0x90]
mov ebx, 0x10
mov r9d, 0x2000
mov byte [rdi], 1
mov word [rdi + 2], bx
and r10d, 0x1f80
or dword [rax + 4], r9d
cmp r10d, 0x400
ja 0x18012da52
je 0x18012da45
mov ebx, 0x80
cmp r10d, ebx
je 0x18012da38
mov edx, 0x100
cmp r10d, edx
je 0x18012da2b
cmp r10d, 0x200
jne 0x18012da75
mov byte [rdi + 1], 0x47
movzx eax, byte [rdi + 1]
jmp 0x18012d748
mov byte [rdi + 1], 0x46
movzx eax, byte [rdi + 1]
jmp 0x18012d748
mov byte [rdi + 1], 0x45
movzx eax, byte [rdi + 1]
jmp 0x18012d748
mov byte [rdi + 1], 0x44
movzx eax, byte [rdi + 1]
jmp 0x18012d748
cmp r10d, 0x800
je 0x18012da71
cmp r10d, 0x1000
jne 0x18012da75
mov byte [rdi + 1], 0x49
movzx eax, byte [rdi + 1]
jmp 0x18012d748
mov byte [rdi + 1], 0x48
movzx eax, byte [rdi + 1]
jmp 0x18012d748
mov dword [rdi], 0x83001
mov eax, dword [0x180db60f0]
or dword [rdx + 0x1c], eax
mov eax, 1
jmp 0x18012e464
mov eax, dword [rsp + 0x98]
test eax, eax
jne 0x18012dacd
mov rax, qword [rsp + 0x90]
mov r9d, 0x2000
or dword [rax + 4], r9d
mov dword [rdi], 0x102001
mov eax, dword [0x180db60b0]
or dword [rdx + 0x1c], eax
mov eax, 1
jmp 0x18012e464
cmp eax, 1
je 0x18012db08
cmp r9d, 0xe
je 0x18012db08
bt r10d, 0x18
jb 0x18012daef
mov rax, qword [rsp + 0x90]
mov edx, 0x2000000
or dword [rax + 4], edx
mov dword [rdi], 0x400001
mov eax, dword [0x180db6030]
or dword [rsi + 0x1c], eax
mov eax, 1
jmp 0x18012e464
mov rax, qword [rsp + 0x90]
mov r9d, 0x2000
or dword [rax + 4], r9d
mov dword [rdi], 0x201001
mov eax, dword [0x180db6070]
or dword [rdx + 0x1c], eax
mov eax, 1
jmp 0x18012e464
mov rax, qword [rsp + 0x90]
mov r9d, 0x2000
or dword [rax + 4], r9d
mov eax, dword [rbp + 0x20]
cmp dword [rsp + 0x98], ebx
jne 0x18012db8b
add eax, 0xfffffffc
mov dword [rbp + 0x20], eax
js case.default.0x18012d44a
mov byte [rdi], 9
mov ebx, 0x10
mov word [rdi + 2], bx
mov rax, qword [rbp + 0x18]
movzx ecx, word [rax]
mov dword [rdx + 4], ecx
mov rax, qword [rbp + 0x18]
movzx ecx, word [rax + 2]
lea eax, [rbx - 0xf]
mov word [rdx], cx
add qword [rbp + 0x18], 4
jmp 0x18012e464
add eax, 0xfffffffa
mov dword [rbp + 0x20], eax
js case.default.0x18012d44a
mov byte [rdi], 9
mov ebx, 0x20
mov word [rdi + 2], bx
mov rax, qword [rbp + 0x18]
mov ecx, dword [rax]
mov dword [rdx + 4], ecx
mov rax, qword [rbp + 0x18]
movzx ecx, word [rax + 4]
lea eax, [rbx - 0x1f]
mov word [rdx], cx
add qword [rbp + 0x18], 6
jmp 0x18012e464
mov rdx, qword [rsp + 0x90]
cmp r9d, 0xf
jne 0x18012dbf9
mov ebx, 8
mov byte [rdi], 8
mov word [rdi + 2], bx
sub dword [rbp + 0x20], 1
js case.default.0x18012d44a
mov rax, qword [rbp + 0x18]
movsx rcx, byte [rax]
mov qword [rsi], rcx
inc qword [rbp + 0x18]
jmp 0x18012dc56
mov r9d, 0x2000
or dword [rdx + 4], r9d
mov byte [rdi], 8
cmp dword [rsp + 0x98], ebx
jne 0x18012dc34
mov ebx, 0x10
mov word [rdi + 2], bx
add dword [rbp + 0x20], 0xfffffffe
js case.default.0x18012d44a
mov rax, qword [rbp + 0x18]
movsx rcx, word [rax]
mov qword [rsi], rcx
add qword [rbp + 0x18], 2
jmp 0x18012dc56
mov ebx, 0x20
mov word [rdi + 2], bx
add dword [rbp + 0x20], 0xfffffffc
js case.default.0x18012d44a
mov rax, qword [rbp + 0x18]
movsxd rcx, dword [rax]
mov qword [rsi], rcx
add qword [rbp + 0x18], 4
movzx eax, word [r11 + 2]
mov ecx, 0x86
sub ax, cx
cmp ax, 0x44
ja 0x18012d753
mov eax, dword [rdx]
test al, al
jns 0x18012dc88
mov ebx, 0x80
or dword [rdx + 4], ebx
or word [rsi + 0x18], 0x10
lea eax, [rbx - 0x7f]
jmp 0x18012e464
bt eax, 9
jae 0x18012d753
or dword [rdx + 4], 0x200
mov eax, 1
or word [rsi + 0x18], 8
jmp 0x18012e464
mov ebx, 8
mov word [rdi + 2], bx
cmp word [rdi + 2], 0
mov byte [rdi], 5
jne 0x18012dce5
mov ecx, dword [rsp + 0x98]
test ecx, ecx
je 0x18012dcdc
sub ecx, 1
je 0x18012dcd5
cmp ecx, 1
jne 0x18012dce5
lea ebx, [rcx + 0x3f]
jmp 0x18012dce1
mov ebx, 0x20
jmp 0x18012dce1
mov ebx, 0x10
mov word [rdi + 2], bx
mov rbx, qword [rsp + 0x90]
mov r9, rsi
mov r8d, dword [rbp + 0x24]
mov rdx, rbx
mov ecx, 0x200
call fcn.18012c370
mov eax, dword [rsp + 0xa0]
test eax, eax
jne 0x18012dd3b
or dword [rbx + 4], 0x4000
mov byte [rsi + 0x37], 0x10
add dword [rbp + 0x20], 0xfffffffe
js case.default.0x18012d44a
mov rax, qword [rbp + 0x18]
movzx ecx, word [rax]
mov eax, 1
mov word [rsi + 8], cx
add qword [rbp + 0x18], 2
jmp 0x18012e464
cmp eax, 1
jne 0x18012dd6d
or dword [rbx + 4], 0x4000
mov byte [rsi + 0x37], 0x20
add dword [rbp + 0x20], 0xfffffffc
js case.default.0x18012d44a
mov rax, qword [rbp + 0x18]
mov ecx, dword [rax]
mov eax, 1
mov dword [rsi + 8], ecx
add qword [rbp + 0x18], 4
jmp 0x18012e464
mov byte [rsi + 0x37], 0x40
add dword [rbp + 0x20], 0xfffffff8
js case.default.0x18012d44a
mov rax, qword [rbp + 0x18]
mov rcx, qword [rax]
mov eax, 1
mov qword [rsi + 8], rcx
add qword [rbp + 0x18], 8
jmp 0x18012e464
mov ebx, 8
mov byte [rdi], 2
mov word [rdi + 2], bx
mov byte [rdx], 1
lea eax, [rbx - 7]
jmp 0x18012e464
mov dword [rdi], 0x83101
mov eax, dword [0x180db60f4]
or dword [rdx + 0x1c], eax
mov eax, 1
jmp 0x18012e464
mov rax, qword [rbp + 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 + 0xdb6030]
or dword [rdx + 0x1c], eax
lea eax, [rbx - 0x1f]
jmp 0x18012e464
mov dword [rdi], 0x204b01
mov ebx, 0x20
mov eax, dword [0x180db615c]
or dword [rdx + 0x1c], eax
mov rax, qword [rbp + 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 + 0xdb6030]
or dword [rdx + 0x1c], eax
lea eax, [rbx - 0x1f]
inc byte [rdx + 0x32]
jmp 0x18012e464
mov rax, qword [rbp + 0x18]
mov ebx, 0x20
movzx ecx, byte [rax - 1]
mov byte [rdi], 1
and ecx, 7
mov word [rdi + 2], bx
add ecx, 0x4b
mov byte [rdi + 1], cl
mov eax, dword [r14 + rcx*4 + 0xdb6030]
or dword [rdx + 0x1c], eax
mov dword [rdi + 4], 0x204b01
mov eax, dword [0x180db615c]
or dword [rdx + 0x1c], eax
lea eax, [rbx - 0x1f]
inc byte [rdx + 0x32]
jmp 0x18012e464
mov byte [rdi], 1
mov ebx, 8
mov word [rdi + 2], bx
mov rax, qword [rbp + 0x18]
movzx ecx, byte [rax - 1]
mov rax, qword [rsp + 0x90]
and ecx, 7
test byte [rax + 0x24], 1
je 0x18012deb6
mov edx, 0x2000000
or dword [rax + 4], edx
add ecx, 0x38
mov byte [rdi + 1], cl
movzx eax, cl
jmp 0x18012d748
cmp dword [rax + 0x18], 1
jne 0x18012dee5
mov edx, 0x2000000
or dword [rax + 4], edx
cmp ecx, 4
jb 0x18012ded7
add ecx, 0x3c
mov byte [rdi + 1], cl
movzx eax, cl
jmp 0x18012d748
add ecx, 0x30
mov byte [rdi + 1], cl
movzx eax, cl
jmp 0x18012d748
add cl, 0x30
mov byte [rdi + 1], cl
movzx eax, cl
jmp 0x18012d748
mov rax, qword [rbp + 0x18]
mov ecx, dword [rsp + 0x98]
movzx r8d, byte [rax - 1]
and r8d, 7
test ecx, ecx
je 0x18012dfb3
sub ecx, 1
je 0x18012df7c
cmp ecx, 1
jne 0x18012d753
mov rax, qword [rsp + 0x90]
and r10d, 0x3000000
mov ecx, dword [rax + 0x24]
and ecx, 1
cmp r10d, 0x1000000
jne 0x18012df4d
test ecx, ecx
je 0x18012df59
mov edx, 0x2000000
or dword [rax + 4], edx
add r8d, 8
jmp 0x18012df59
mov edx, 0x2000000
lea r8d, [r8 + rcx*8]
or dword [rax + 4], edx
mov byte [rdi], 1
mov ebx, 0x40
mov byte [rdi + 1], r8b
mov word [rdi + 2], bx
mov eax, dword [r14 + r8*4 + 0xdb6030]
or dword [rsi + 0x1c], eax
lea eax, [rbx - 0x3f]
jmp 0x18012e464
mov rax, qword [rsp + 0x90]
mov edx, 0x2000000
mov r9d, 0x2000
mov ecx, dword [rax + 0x24]
and ecx, 1
cmove edx, r9d
or dword [rax + 4], edx
lea eax, [r8 + 8]
bt ecx, 0
mov byte [rdi], 1
cmovae eax, r8d
add eax, 0x10
jmp 0x18012d73c
mov rcx, qword [rsp + 0x90]
mov r9d, 0x2000
mov eax, dword [rcx + 4]
or eax, r9d
test byte [rcx + 0x24], 1
mov dword [rcx + 4], eax
je 0x18012dfde
mov edx, 0x2000000
or eax, edx
mov dword [rcx + 4], eax
add r8d, 8
lea eax, [r8 + 0x20]
mov byte [rdi], 1
mov ebx, 0x10
jmp 0x18012d741
mov rax, qword [rsp + 0x90]
or dword [rax + 4], 0x4000
mov byte [rdi], 6
test r10b, 4
je 0x18012e04a
mov ecx, dword [rax + 4]
mov r9d, 0x2000
mov edx, dword [rsp + 0x98]
or ecx, r9d
mov dword [rax + 4], ecx
test edx, edx
jne 0x18012e026
lea ebx, [rdx + 0x10]
jmp 0x18012e04f
cmp edx, 2
jne 0x18012e043
bt r10d, 0x18
jae 0x18012e043
mov edx, 0x2000000
mov ebx, 0x40
or ecx, edx
mov dword [rax + 4], ecx
jmp 0x18012e04f
mov ebx, 0x20
jmp 0x18012e04f
mov ebx, 8
mov word [rdi + 2], bx
mov r9, rsi
mov byte [rsi + 0x34], 0xff
mov rdx, rax
mov r8d, dword [rbp + 0x24]
mov ecx, 0x200
call fcn.18012c370
mov ecx, dword [rsp + 0xa0]
test ecx, ecx
jne 0x18012e08b
mov byte [rdi + 1], 0x26
mov eax, dword [0x180db6048]
or dword [rsi + 0x1c], eax
lea eax, [rcx + 1]
jmp 0x18012e464
cmp ecx, 1
mov edx, 0x16
mov eax, 6
cmove eax, edx
mov byte [rdi + 1], al
mov eax, dword [0x180db6048]
or dword [rsi + 0x1c], eax
lea eax, [rdx - 0x15]
jmp 0x18012e464
mov rcx, qword [rsp + 0x90]
or dword [rcx + 4], 0x4000
mov byte [rdi], 6
test r10b, 4
je 0x18012e10a
mov eax, dword [rcx + 4]
mov r9d, 0x2000
mov edx, dword [rsp + 0x98]
or eax, r9d
mov dword [rcx + 4], eax
test edx, edx
jne 0x18012e0e6
lea ebx, [rdx + 0x10]
jmp 0x18012e10f
cmp edx, 2
jne 0x18012e103
bt r10d, 0x18
jae 0x18012e103
mov edx, 0x2000000
mov ebx, 0x40
or eax, edx
mov dword [rcx + 4], eax
jmp 0x18012e10f
mov ebx, 0x20
jmp 0x18012e10f
mov ebx, 8
mov word [rdi + 2], bx
cmp byte [rsi + 0x34], 0xff
jne 0x18012e123
cmp dword [rbp + 0x24], 2
je 0x18012e123
mov byte [rsi + 0x34], 0xc4
mov ecx, dword [rsp + 0xa0]
test ecx, ecx
jne 0x18012e143
mov byte [rdi + 1], 0x27
mov eax, dword [0x180db604c]
or dword [rsi + 0x1c], eax
lea eax, [rcx + 1]
jmp 0x18012e464
cmp ecx, 1
mov edx, 0x17
mov eax, 7
cmove eax, edx
mov byte [rdi + 1], al
mov eax, dword [0x180db604c]
or dword [rsi + 0x1c], eax
lea eax, [rdx - 0x16]
jmp 0x18012e464
mov dword [rdi], 0x102201
mov eax, dword [0x180db60b8]
or dword [rdx + 0x1c], eax
mov eax, 1
jmp 0x18012e464
mov dword [rdi], 0x201101
mov eax, dword [0x180db6074]
or dword [rdx + 0x1c], eax
mov eax, 1
jmp 0x18012e464
mov r14, qword [rsp + 0x90]
mov r9, rsi
mov rdx, r14
mov ecx, 0x200
or dword [r14 + 4], 0x4000
mov r8d, dword [rbp + 0x24]
call fcn.18012c370
mov eax, dword [rsp + 0xa0]
mov dword [rdi], 0x83007
mov ecx, dword [rsi + 0x1c]
or ecx, dword [0x180db60f0]
mov dword [rsi + 0x1c], ecx
test eax, eax
jne 0x18012e1f3
mov byte [rsi + 0x35], 0x23
mov eax, dword [0x180db60bc]
or eax, ecx
mov dword [rsi + 0x1c], eax
mov eax, 1
jmp 0x18012e464
cmp eax, 1
jne 0x18012e211
mov byte [rsi + 0x35], 0x13
mov eax, dword [0x180db607c]
or eax, ecx
mov dword [rsi + 0x1c], eax
mov eax, 1
jmp 0x18012e464
mov edx, 0x2000000
or dword [r14 + 4], edx
mov ecx, dword [rsi + 0x1c]
mov byte [rsi + 0x35], 3
mov eax, dword [0x180db603c]
or eax, ecx
mov dword [rsi + 0x1c], eax
mov eax, 1
jmp 0x18012e464
mov ecx, dword [rsp + 0xa0]
cmp ecx, 2
jne 0x18012e259
mov dword [rdi], 0x400006
mov eax, dword [0x180db6030]
or dword [rdx + 0x1c], eax
lea eax, [rcx - 1]
jmp 0x18012e464
mov rax, qword [rsp + 0x90]
or dword [rax + 4], 0x4000
mov byte [rdi], 6
cmp ecx, 1
jne 0x18012e28d
mov byte [rdi + 1], 0x10
mov ebx, 0x20
mov word [rdi + 2], bx
mov eax, dword [0x180db6070]
or dword [rdx + 0x1c], eax
mov eax, ecx
jmp 0x18012e464
mov ebx, 0x10
mov byte [rdi + 1], 0x20
mov word [rdi + 2], bx
mov eax, dword [0x180db60b0]
or dword [rdx + 0x1c], eax
lea eax, [rbx - 0xf]
jmp 0x18012e464
mov rax, qword [rsp + 0x90]
mov ebx, 0x80
mov ecx, dword [rax + 0x20]
add ecx, 0x5b
mov byte [rdi], 1
mov byte [rdi + 1], cl
mov word [rdi + 2], bx
mov eax, dword [r14 + rcx*4 + 0xdb6030]
or dword [rdx + 0x1c], eax
lea eax, [rbx - 0x7f]
jmp 0x18012e464
sub dword [rbp + 0x20], 1
js case.default.0x18012d44a
mov rax, qword [rbp + 0x18]
mov ebx, 0x80
movzx ecx, byte [rax]
shr ecx, 4
mov eax, ecx
and eax, 7
cmp dword [rbp + 0x24], 1
mov byte [rdi], 1
cmovne eax, ecx
mov word [rdi + 2], bx
add eax, 0x5b
mov byte [rdi + 1], al
mov eax, dword [r14 + rax*4 + 0xdb6030]
or dword [rdx + 0x1c], eax
lea eax, [rbx - 0x7f]
inc qword [rbp + 0x18]
jmp 0x18012e464
mov rax, qword [rsp + 0x90]
mov edx, dword [rax + 0x24]
test dl, 4
je 0x18012e337
add ecx, 8
mov byte [rdi], 1
and edx, 0x10
je 0x18012e350
mov edx, 0x100
lea eax, [rcx + 0x6b]
mov word [rdi + 2], dx
jmp 0x18012d745
lea eax, [rcx + 0x5b]
mov ebx, 0x80
jmp 0x18012d741
sub dword [rbp + 0x20], 1
js case.default.0x18012d44a
mov rax, qword [rbp + 0x18]
movzx ecx, byte [rax]
mov rax, qword [rsp + 0x90]
shr ecx, 4
mov edx, ecx
and edx, 7
cmp dword [rbp + 0x24], 1
cmovne edx, ecx
mov ecx, dword [rax + 0x24]
mov byte [rdi], 1
and ecx, 0x10
je 0x18012e39e
lea eax, [rdx + 0x6b]
mov edx, 0x100
mov word [rdi + 2], dx
jmp 0x18012e3aa
mov ebx, 0x80
lea eax, [rdx + 0x5b]
mov word [rdi + 2], bx
mov byte [rdi + 1], al
mov eax, dword [r14 + rax*4 + 0xdb6030]
or dword [rsi + 0x1c], eax
mov eax, 1
inc qword [rbp + 0x18]
jmp 0x18012e464
mov rax, qword [rsp + 0x90]
test byte [rax + 0x24], 4
je 0x18012e3d7
add ecx, 8
mov edx, 0x100
mov byte [rdi], 1
mov word [rdi + 2], dx
lea eax, [rcx + 0x6b]
jmp 0x18012d745
mov rax, qword [rsp + 0x90]
mov edx, 0x100
mov ecx, dword [rax + 0x20]
add ecx, 0x6b
mov byte [rdi], 1
mov word [rdi + 2], dx
jmp 0x18012d6f4
mov rax, qword [rsp + 0x90]
mov ecx, dword [rax + 0x24]
mov eax, dword [rax + 0x20]
mov byte [rdi], 1
and ecx, 0x10
je 0x18012e431
mov edx, 0x100
add eax, 0x6b
mov word [rdi + 2], dx
jmp 0x18012d745
add eax, 0x5b
mov ebx, 0x80
jmp 0x18012d696
mov rax, qword [rsp + 0x90]
mov edx, dword [rax + 0x24]
test dl, 4
je 0x18012e451
add ecx, 8
mov byte [rdi], 1
and edx, 8
je 0x18012d739
jmp 0x18012d6eb
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