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

Disassembly:
push rbx
push rsi
push rdi
push r12
push r14
push r15
push r13
sub rsp, 0x100
mov qword [rsp + 0x140], rcx
mov qword [rsp + 0x148], rdx
mov qword [rsp + 0x150], r8
mov rax, qword [rsp + 0x140]
mov rax, qword [rax + 0x10]
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0x140]
mov edx, dword [rax + 0x58]
mov rax, qword [rsp + 0x140]
mov eax, dword [rax + 0x48]
mov dword [rsp + 0xd4], eax
mov rax, qword [rsp + 0x140]
mov eax, dword [rax + 0x4c]
mov dword [rsp + 0xe4], eax
mov rax, qword [rsp + 0x140]
mov eax, dword [rax + 0x50]
mov dword [rsp + 0xe8], eax
mov rax, qword [rsp + 0x140]
mov eax, dword [rax + 0x54]
mov dword [rsp + 0xec], eax
mov rax, qword [rsp + 0x140]
movzx ecx, byte [rax + 2]
mov eax, 1
shl eax, cl
sub eax, 1
mov dword [rsp + 0xf8], eax
mov rax, qword [rsp + 0x140]
movzx eax, byte [rax]
mov dword [rsp + 0xf4], eax
mov eax, 0x100
mov ecx, dword [rsp + 0xf4]
mov r8d, eax
shr r8d, cl
mov rax, qword [rsp + 0x140]
movzx ecx, byte [rax + 1]
mov eax, 0x100
shl eax, cl
sub eax, r8d
mov dword [rsp + 0xfc], eax
mov rax, qword [rsp + 0x140]
mov rax, qword [rax + 0x18]
mov qword [rsp + 0xc8], rax
mov rax, qword [rsp + 0x140]
mov rax, qword [rax + 0x20]
mov qword [rsp + 0xd8], rax
mov rax, qword [rsp + 0x140]
mov r8, qword [rax + 0x28]
mov rax, qword [rsp + 0x140]
mov eax, dword [rax + 0x40]
mov dword [rsp + 0xac], eax
mov rax, qword [rsp + 0x140]
mov eax, dword [rax + 0x44]
mov dword [rsp + 0xf0], eax
mov rax, qword [rsp + 0x140]
mov r9, qword [rax + 0x30]
mov rax, qword [rsp + 0x140]
mov r11d, dword [rax + 0x38]
mov rax, qword [rsp + 0x140]
mov ebx, dword [rax + 0x3c]
xor esi, esi
mov eax, dword [rsp + 0xac]
and eax, dword [rsp + 0xf8]
shl eax, 4
mov dword [rsp + 0xe0], eax
add eax, edx
mov eax, eax
mov rcx, qword [rsp + 0x88]
lea rdi, [rcx + rax*2 - 0x200]
movzx r12d, word [rdi]
cmp r11d, 0x1000000
jae 0x1400087bb
shl r11d, 8
add r9, 1
mov eax, ebx
shl eax, 8
movzx ecx, byte [r9 - 1]
mov ebx, eax
or ebx, ecx
mov eax, r11d
shr eax, 0xb
mov r14d, eax
imul r14d, r12d
cmp ebx, r14d
jae 0x140009465
mov r11d, r14d
mov eax, r12d
neg eax
add eax, 0x800
shr eax, 5
add eax, r12d
mov word [rdi], ax
mov rax, qword [rsp + 0x88]
lea rdi, [rax + 0x280]
cmp dword [rsp + 0xac], 0
jne 0x14000880a
cmp dword [rsp + 0xf0], 0
je 0x14000884f
test r8, r8
cmovne rax, r8
cmove rax, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0xc8]
movzx eax, byte [rcx + rax - 1]
mov ecx, dword [rsp + 0xac]
shl ecx, 8
add ecx, eax
mov eax, ecx
and eax, dword [rsp + 0xfc]
mov ecx, dword [rsp + 0xf4]
shl eax, cl
lea eax, [eax + eax*2]
mov eax, eax
lea rdi, [rdi + rax*2]
add dword [rsp + 0xac], 1
cmp edx, 7
jae 0x140008f59
mov eax, 3
cmp edx, 4
cmovb eax, edx
sub edx, eax
movzx r12d, word [rdi + 2]
cmp r11d, 0x1000000
jae 0x140008891
shl r11d, 8
add r9, 1
mov eax, ebx
shl eax, 8
movzx ecx, byte [r9 - 1]
mov ebx, eax
or ebx, ecx
mov eax, r11d
shr eax, 0xb
mov r14d, eax
imul r14d, r12d
cmp ebx, r14d
jae 0x1400088c1
mov eax, r12d
neg eax
add eax, 0x800
shr eax, 5
add eax, r12d
mov word [rdi + 2], ax
mov eax, r14d
mov ecx, 2
jmp 0x1400088e5
sub r11d, r14d
sub ebx, r14d
mov r10d, r12d
shr r10d, 5
neg r10d
add r10d, r12d
mov r10w, r10w
mov word [rdi + 2], r10w
mov eax, r11d
mov ecx, 3
mov r11d, eax
mov eax, ecx
movzx r12d, word [rdi + rax*2]
cmp r11d, 0x1000000
jae 0x14000890f
shl r11d, 8
add r9, 1
mov eax, ebx
shl eax, 8
movzx r10d, byte [r9 - 1]
mov ebx, eax
or ebx, r10d
mov eax, r11d
shr eax, 0xb
mov r14d, eax
imul r14d, r12d
cmp ebx, r14d
jae 0x140008945
mov eax, r12d
neg eax
add eax, 0x800
shr eax, 5
add eax, r12d
mov r10d, ecx
mov word [rdi + r10*2], ax
add ecx, ecx
mov dword [rsp + 0xc4], r14d
jmp 0x14000896b
sub r11d, r14d
sub ebx, r14d
mov eax, r12d
shr eax, 5
neg eax
add eax, r12d
mov r10d, ecx
mov word [rdi + r10*2], ax
lea ecx, [ecx + ecx + 1]
mov dword [rsp + 0xc4], r11d
mov eax, dword [rsp + 0xc4]
mov r11d, eax
mov eax, ecx
movzx r12d, word [rdi + rax*2]
cmp r11d, 0x1000000
jae 0x14000899c
shl r11d, 8
add r9, 1
mov eax, ebx
shl eax, 8
movzx r10d, byte [r9 - 1]
mov ebx, eax
or ebx, r10d
mov eax, r11d
shr eax, 0xb
mov r14d, eax
imul r14d, r12d
cmp ebx, r14d
jae 0x1400089d2
mov eax, r12d
neg eax
add eax, 0x800
shr eax, 5
add eax, r12d
mov r10d, ecx
mov word [rdi + r10*2], ax
add ecx, ecx
mov dword [rsp + 0xc0], r14d
jmp 0x1400089f8
sub r11d, r14d
sub ebx, r14d
mov eax, r12d
shr eax, 5
neg eax
add eax, r12d
mov r10d, ecx
mov word [rdi + r10*2], ax
lea ecx, [ecx + ecx + 1]
mov dword [rsp + 0xc0], r11d
mov eax, dword [rsp + 0xc0]
mov r11d, eax
mov eax, ecx
movzx r12d, word [rdi + rax*2]
cmp r11d, 0x1000000
jae 0x140008a29
shl r11d, 8
add r9, 1
mov eax, ebx
shl eax, 8
movzx r10d, byte [r9 - 1]
mov ebx, eax
or ebx, r10d
mov eax, r11d
shr eax, 0xb
mov r14d, eax
imul r14d, r12d
cmp ebx, r14d
jae 0x140008a5f
mov eax, r12d
neg eax
add eax, 0x800
shr eax, 5
add eax, r12d
mov r10d, ecx
mov word [rdi + r10*2], ax
add ecx, ecx
mov dword [rsp + 0xbc], r14d
jmp 0x140008a85
sub r11d, r14d
sub ebx, r14d
mov eax, r12d
shr eax, 5
neg eax
add eax, r12d
mov r10d, ecx
mov word [rdi + r10*2], ax
lea ecx, [ecx + ecx + 1]
mov dword [rsp + 0xbc], r11d
mov eax, dword [rsp + 0xbc]
mov r11d, eax
mov eax, ecx
movzx r12d, word [rdi + rax*2]
cmp r11d, 0x1000000
jae 0x140008ab6
shl r11d, 8
add r9, 1
mov eax, ebx
shl eax, 8
movzx r10d, byte [r9 - 1]
mov ebx, eax
or ebx, r10d
mov eax, r11d
shr eax, 0xb
mov r14d, eax
imul r14d, r12d
cmp ebx, r14d
jae 0x140008aec
mov eax, r12d
neg eax
add eax, 0x800
shr eax, 5
add eax, r12d
mov r10d, ecx
mov word [rdi + r10*2], ax
add ecx, ecx
mov dword [rsp + 0xb8], r14d
jmp 0x140008b12
sub r11d, r14d
sub ebx, r14d
mov eax, r12d
shr eax, 5
neg eax
add eax, r12d
mov r10d, ecx
mov word [rdi + r10*2], ax
lea ecx, [ecx + ecx + 1]
mov dword [rsp + 0xb8], r11d
mov eax, dword [rsp + 0xb8]
mov r11d, eax
mov eax, ecx
movzx r12d, word [rdi + rax*2]
cmp r11d, 0x1000000
jae 0x140008b43
shl r11d, 8
add r9, 1
mov eax, ebx
shl eax, 8
movzx r10d, byte [r9 - 1]
mov ebx, eax
or ebx, r10d
mov eax, r11d
shr eax, 0xb
mov r14d, eax
imul r14d, r12d
cmp ebx, r14d
jae 0x140008b79
mov eax, r12d
neg eax
add eax, 0x800
shr eax, 5
add eax, r12d
mov r10d, ecx
mov word [rdi + r10*2], ax
add ecx, ecx
mov dword [rsp + 0xb4], r14d
jmp 0x140008b9f
sub r11d, r14d
sub ebx, r14d
mov eax, r12d
shr eax, 5
neg eax
add eax, r12d
mov r10d, ecx
mov word [rdi + r10*2], ax
lea ecx, [ecx + ecx + 1]
mov dword [rsp + 0xb4], r11d
mov eax, dword [rsp + 0xb4]
mov r11d, eax
mov eax, ecx
movzx r12d, word [rdi + rax*2]
cmp r11d, 0x1000000
jae 0x140008bd0
shl r11d, 8
add r9, 1
mov eax, ebx
shl eax, 8
movzx r10d, byte [r9 - 1]
mov ebx, eax
or ebx, r10d
mov eax, r11d
shr eax, 0xb
mov r14d, eax
imul r14d, r12d
cmp ebx, r14d
jae 0x140008c06
mov eax, r12d
neg eax
add eax, 0x800
shr eax, 5
add eax, r12d
mov r10d, ecx
mov word [rdi + r10*2], ax
add ecx, ecx
mov dword [rsp + 0xb0], r14d
jmp 0x140008c2c
sub r11d, r14d
sub ebx, r14d
mov eax, r12d
shr eax, 5
neg eax
add eax, r12d
mov r10d, ecx
mov word [rdi + r10*2], ax
lea ecx, [ecx + ecx + 1]
mov dword [rsp + 0xb0], r11d
mov eax, dword [rsp + 0xb0]
mov r11d, eax
mov eax, ecx
movzx r12d, word [rdi + rax*2]
cmp r11d, 0x1000000
jae 0x140008c5d
shl r11d, 8
add r9, 1
mov eax, ebx
shl eax, 8
movzx r10d, byte [r9 - 1]
mov ebx, eax
or ebx, r10d
mov eax, r11d
shr eax, 0xb
mov r14d, eax
imul r14d, r12d
cmp ebx, r14d
jae 0x140008cbb
mov eax, r12d
neg eax
add eax, 0x800
shr eax, 5
add eax, r12d
mov r10d, ecx
mov word [rdi + r10*2], ax
add ecx, ecx
mov dword [rsp + 0xa8], r14d
jmp 0x140008cf8
mov eax, r11d
shr eax, 0xb
mov r14d, eax
imul r14d, r12d
cmp ebx, r14d
jae 0x140008cd6
mov eax, r12d
neg eax
add eax, 0x800
shr eax, 5
add eax, r12d
mov word [r15], ax
jmp 0x140008c87
sub r11d, r14d
sub ebx, r14d
mov eax, r12d
shr eax, 5
neg eax
add eax, r12d
mov r10d, ecx
mov word [rdi + r10*2], ax
jmp 0x140008ceb
sub r11d, r14d
sub ebx, r14d
mov eax, r12d
shr eax, 5
neg eax
add eax, r12d
mov word [r15], ax
lea ecx, [ecx + ecx + 1]
mov dword [rsp + 0xa8], r11d
mov eax, dword [rsp + 0xa8]
mov r11d, eax
add r8, 1
mov rax, qword [rsp + 0xc8]
mov r10b, cl
mov byte [rax + r8 - 1], r10b
jmp 0x140008dea
mov eax, dword [rsp + 0xa4]
mov dword [rsp + 0xa0], eax
mov dword [rsp + 0x9c], eax
mov eax, dword [rsp + 0xd4]
mov qword [rsp + 0x90], rax
xor eax, eax
cmp r8, qword [rsp + 0x90]
cmovb rax, qword [rsp + 0xd8]
mov r10, r8
sub r10, qword [rsp + 0x90]
add r10, rax
mov qword [rsp + 0x60], r10
mov eax, dword [rsp + 0x9c]
add dword [rsp + 0xac], eax
sub esi, dword [rsp + 0x9c]
mov eax, dword [rsp + 0x9c]
mov r10, qword [rsp + 0xd8]
sub r10, qword [rsp + 0x60]
cmp rax, r10
ja 0x14000a4e0
mov rax, qword [rsp + 0xc8]
add rax, r8
mov r10, qword [rsp + 0x60]
sub r10, r8
mov qword [rsp + 0x80], r10
mov r10d, dword [rsp + 0x9c]
lea r13, [rax + r10]
mov qword [rsp + 0x78], r13
add r8, r10
nop
nop word [rax + rax]
mov r10, qword [rsp + 0x80]
mov r10b, byte [rax + r10]
mov byte [rax], r10b
add rax, 1
cmp rax, qword [rsp + 0x78]
jne 0x140008dd0
mov dword [rsp + 0x6c], r11d
jmp 0x140008e6a
mov eax, r12d
neg eax
add eax, 0x800
shr eax, 5
add eax, r12d
mov word [rdi], ax
mov eax, dword [rsp + 0xd4]
mov qword [rsp + 0x70], 0
mov r13, r8
sub r13, rax
cmp r8, rax
cmovb rax, qword [rsp + 0xd8]
cmovae rax, qword [rsp + 0x70]
add r13, rax
mov rax, qword [rsp + 0xc8]
mov al, byte [rax + r13]
mov r10, qword [rsp + 0xc8]
mov byte [r10 + r8], al
add r8, 1
add dword [rsp + 0xac], 1
cmp edx, 7
mov edx, 9
mov r10d, 0xb
cmovae edx, r10d
mov dword [rsp + 0x6c], r14d
mov eax, dword [rsp + 0x6c]
mov r11d, eax
cmp r8, qword [rsp + 0x148]
jae 0x140008e89
cmp r9, qword [rsp + 0x150]
jb 0x14000876c
cmp r11d, 0x1000000
jae 0x140008ea9
shl r11d, 8
add r9, 1
mov eax, ebx
shl eax, 8
movzx r10d, byte [r9 - 1]
mov ebx, eax
or ebx, r10d
mov rax, qword [rsp + 0x140]
mov qword [rax + 0x30], r9
mov rax, qword [rsp + 0x140]
mov dword [rax + 0x38], r11d
mov rax, qword [rsp + 0x140]
mov dword [rax + 0x3c], ebx
mov rax, qword [rsp + 0x140]
mov dword [rax + 0x5c], esi
mov rax, qword [rsp + 0x140]
mov qword [rax + 0x28], r8
mov rax, qword [rsp + 0x140]
mov r10d, dword [rsp + 0xac]
mov dword [rax + 0x40], r10d
mov rax, qword [rsp + 0x140]
mov r10d, dword [rsp + 0xd4]
mov dword [rax + 0x48], r10d
mov rax, qword [rsp + 0x140]
mov r10d, dword [rsp + 0xe4]
mov dword [rax + 0x4c], r10d
mov rax, qword [rsp + 0x140]
mov r10d, dword [rsp + 0xe8]
mov dword [rax + 0x50], r10d
mov rax, qword [rsp + 0x140]
mov r10d, dword [rsp + 0xec]
mov dword [rax + 0x54], r10d
mov rax, qword [rsp + 0x140]
mov dword [rax + 0x58], edx
xor eax, eax
jmp 0x14000a534
cmp edx, 0xa
mov eax, 3
mov r10d, 6
cmovae eax, r10d
sub edx, eax
mov eax, dword [rsp + 0xd4]
xor r10, r10
mov r13, r8
sub r13, rax
cmp r8, rax
cmovb rax, qword [rsp + 0xd8]
cmovae rax, r10
add r13, rax
mov rax, qword [rsp + 0xc8]
movzx eax, byte [rax + r13]
add eax, eax
mov dword [rsp + 0x5c], eax
and eax, 0x100
lea r10d, [eax + 0x101]
mov r10d, r10d
lea r15, [rdi + r10*2]
movzx r12d, word [r15]
cmp r11d, 0x1000000
jae 0x140008fde
shl r11d, 8
add r9, 1
mov r10d, ebx
shl r10d, 8
movzx r13d, byte [r9 - 1]
mov ebx, r10d
or ebx, r13d
mov r10d, r11d
shr r10d, 0xb
mov r14d, r10d
imul r14d, r12d
cmp ebx, r14d
jae 0x14000901c
mov r10d, r12d
neg r10d
add r10d, 0x800
shr r10d, 5
add r10d, r12d
mov r10w, r10w
mov word [r15], r10w
xor eax, 0x100
mov r10d, r14d
mov ecx, 2
jmp 0x14000903f
sub r11d, r14d
sub ebx, r14d
mov r13d, r12d
shr r13d, 5
neg r13d
add r13d, r12d
mov r13w, r13w
mov word [r15], r13w
mov r10d, r11d
mov ecx, 3
mov r11d, r10d
shl dword [rsp + 0x5c], 1
mov dword [rsp + 0x58], eax
and eax, dword [rsp + 0x5c]
mov r10d, eax
add r10d, dword [rsp + 0x58]
add r10d, ecx
mov r10d, r10d
lea r15, [rdi + r10*2]
movzx r12d, word [r15]
cmp r11d, 0x1000000
jae 0x140009087
shl r11d, 8
add r9, 1
mov r10d, ebx
shl r10d, 8
movzx r13d, byte [r9 - 1]
mov ebx, r10d
or ebx, r13d
mov r10d, r11d
shr r10d, 0xb
mov r14d, r10d
imul r14d, r12d
cmp ebx, r14d
jae 0x1400090c1
mov r10d, r12d
neg r10d
add r10d, 0x800
shr r10d, 5
add r10d, r12d
mov r10w, r10w
mov word [r15], r10w
add ecx, ecx
xor eax, dword [rsp + 0x58]
mov r10d, r14d
jmp 0x1400090e4
sub r11d, r14d
sub ebx, r14d
mov r13d, r12d
shr r13d, 5
neg r13d
add r13d, r12d
mov r13w, r13w
mov word [r15], r13w
lea ecx, [ecx + ecx + 1]
mov r10d, r11d
mov r11d, r10d
shl dword [rsp + 0x5c], 1
mov dword [rsp + 0x58], eax
and eax, dword [rsp + 0x5c]
mov r10d, eax
add r10d, dword [rsp + 0x58]
add r10d, ecx
mov r10d, r10d
lea r15, [rdi + r10*2]
movzx r12d, word [r15]
cmp r11d, 0x1000000
jae 0x14000912c
shl r11d, 8
add r9, 1
mov r10d, ebx
shl r10d, 8
movzx r13d, byte [r9 - 1]
mov ebx, r10d
or ebx, r13d
mov r10d, r11d
shr r10d, 0xb
mov r14d, r10d
imul r14d, r12d
cmp ebx, r14d
jae 0x140009166
mov r10d, r12d
neg r10d
add r10d, 0x800
shr r10d, 5
add r10d, r12d
mov r10w, r10w
mov word [r15], r10w
add ecx, ecx
xor eax, dword [rsp + 0x58]
mov r10d, r14d
jmp 0x140009189
sub r11d, r14d
sub ebx, r14d
mov r13d, r12d
shr r13d, 5
neg r13d
add r13d, r12d
mov r13w, r13w
mov word [r15], r13w
lea ecx, [ecx + ecx + 1]
mov r10d, r11d
mov r11d, r10d
shl dword [rsp + 0x5c], 1
mov dword [rsp + 0x58], eax
and eax, dword [rsp + 0x5c]
mov r10d, eax
add r10d, dword [rsp + 0x58]
add r10d, ecx
mov r10d, r10d
lea r15, [rdi + r10*2]
movzx r12d, word [r15]
cmp r11d, 0x1000000
jae 0x1400091d1
shl r11d, 8
add r9, 1
mov r10d, ebx
shl r10d, 8
movzx r13d, byte [r9 - 1]
mov ebx, r10d
or ebx, r13d
mov r10d, r11d
shr r10d, 0xb
mov r14d, r10d
imul r14d, r12d
cmp ebx, r14d
jae 0x14000920b
mov r10d, r12d
neg r10d
add r10d, 0x800
shr r10d, 5
add r10d, r12d
mov r10w, r10w
mov word [r15], r10w
add ecx, ecx
xor eax, dword [rsp + 0x58]
mov r10d, r14d
jmp 0x14000922e
sub r11d, r14d
sub ebx, r14d
mov r13d, r12d
shr r13d, 5
neg r13d
add r13d, r12d
mov r13w, r13w
mov word [r15], r13w
lea ecx, [ecx + ecx + 1]
mov r10d, r11d
mov r11d, r10d
shl dword [rsp + 0x5c], 1
mov dword [rsp + 0x58], eax
and eax, dword [rsp + 0x5c]
mov r10d, eax
add r10d, dword [rsp + 0x58]
add r10d, ecx
mov r10d, r10d
lea r15, [rdi + r10*2]
movzx r12d, word [r15]
cmp r11d, 0x1000000
jae 0x140009276
shl r11d, 8
add r9, 1
mov r10d, ebx
shl r10d, 8
movzx r13d, byte [r9 - 1]
mov ebx, r10d
or ebx, r13d
mov r10d, r11d
shr r10d, 0xb
mov r14d, r10d
imul r14d, r12d
cmp ebx, r14d
jae 0x1400092b0
mov r10d, r12d
neg r10d
add r10d, 0x800
shr r10d, 5
add r10d, r12d
mov r10w, r10w
mov word [r15], r10w
add ecx, ecx
xor eax, dword [rsp + 0x58]
mov r10d, r14d
jmp 0x1400092d3
sub r11d, r14d
sub ebx, r14d
mov r13d, r12d
shr r13d, 5
neg r13d
add r13d, r12d
mov r13w, r13w
mov word [r15], r13w
lea ecx, [ecx + ecx + 1]
mov r10d, r11d
mov r11d, r10d
shl dword [rsp + 0x5c], 1
mov dword [rsp + 0x58], eax
and eax, dword [rsp + 0x5c]
mov r10d, eax
add r10d, dword [rsp + 0x58]
add r10d, ecx
mov r10d, r10d
lea r15, [rdi + r10*2]
movzx r12d, word [r15]
cmp r11d, 0x1000000
jae 0x14000931b
shl r11d, 8
add r9, 1
mov r10d, ebx
shl r10d, 8
movzx r13d, byte [r9 - 1]
mov ebx, r10d
or ebx, r13d
mov r10d, r11d
shr r10d, 0xb
mov r14d, r10d
imul r14d, r12d
cmp ebx, r14d
jae 0x140009355
mov r10d, r12d
neg r10d
add r10d, 0x800
shr r10d, 5
add r10d, r12d
mov r10w, r10w
mov word [r15], r10w
add ecx, ecx
xor eax, dword [rsp + 0x58]
mov r10d, r14d
jmp 0x140009378
sub r11d, r14d
sub ebx, r14d
mov r13d, r12d
shr r13d, 5
neg r13d
add r13d, r12d
mov r13w, r13w
mov word [r15], r13w
lea ecx, [ecx + ecx + 1]
mov r10d, r11d
mov r11d, r10d
shl dword [rsp + 0x5c], 1
mov dword [rsp + 0x58], eax
and eax, dword [rsp + 0x5c]
mov r10d, eax
add r10d, dword [rsp + 0x58]
add r10d, ecx
mov r10d, r10d
lea r15, [rdi + r10*2]
movzx r12d, word [r15]
cmp r11d, 0x1000000
jae 0x1400093c0
shl r11d, 8
add r9, 1
mov r10d, ebx
shl r10d, 8
movzx r13d, byte [r9 - 1]
mov ebx, r10d
or ebx, r13d
mov r10d, r11d
shr r10d, 0xb
mov r14d, r10d
imul r14d, r12d
cmp ebx, r14d
jae 0x1400093fa
mov r10d, r12d
neg r10d
add r10d, 0x800
shr r10d, 5
add r10d, r12d
mov r10w, r10w
mov word [r15], r10w
add ecx, ecx
xor eax, dword [rsp + 0x58]
mov r10d, r14d
jmp 0x14000941d
sub r11d, r14d
sub ebx, r14d
mov r13d, r12d
shr r13d, 5
neg r13d
add r13d, r12d
mov r13w, r13w
mov word [r15], r13w
lea ecx, [ecx + ecx + 1]
mov r10d, r11d
mov r11d, r10d
mov r10d, dword [rsp + 0x5c]
add r10d, r10d
and r10d, eax
add r10d, eax
add r10d, ecx
mov eax, r10d
lea r15, [rdi + rax*2]
movzx r12d, word [r15]
cmp r11d, 0x1000000
jae 0x140008c93
shl r11d, 8
add r9, 1
mov eax, ebx
shl eax, 8
movzx r10d, byte [r9 - 1]
mov ebx, eax
or ebx, r10d
jmp 0x140008c93
sub r11d, r14d
sub ebx, r14d
mov eax, r12d
shr eax, 5
neg eax
add eax, r12d
mov word [rdi], ax
mov rax, qword [rsp + 0x88]
mov ecx, edx
lea rdi, [rax + rcx*2 + 0x20]
movzx r12d, word [rdi]
cmp r11d, 0x1000000
jae 0x1400094ab
shl r11d, 8
add r9, 1
mov eax, ebx
shl eax, 8
movzx ecx, byte [r9 - 1]
mov ebx, eax
or ebx, ecx
mov eax, r11d
shr eax, 0xb
mov r14d, eax
imul r14d, r12d
cmp ebx, r14d
jae 0x140009dfb
mov eax, r12d
neg eax
add eax, 0x800
shr eax, 5
add eax, r12d
mov word [rdi], ax
add edx, 0xc
mov rax, qword [rsp + 0x88]
lea rdi, [rax - 0x600]
mov eax, r14d
jmp 0x140009525
mov ecx, dword [rsp + 0x44]
mov dword [rsp + 0xe4], ecx
mov ecx, dword [rsp + 0x2c]
mov dword [rsp + 0xd4], ecx
cmp edx, 7
mov edx, 8
mov r10d, 0xb
cmovae edx, r10d
mov rcx, qword [rsp + 0x88]
lea rdi, [rcx - 0xa00]
mov eax, r11d
mov r11d, eax
mov rax, rdi
movzx r12d, word [rax]
cmp r11d, 0x1000000
jae 0x14000954f
shl r11d, 8
add r9, 1
mov ecx, ebx
shl ecx, 8
movzx r10d, byte [r9 - 1]
mov ebx, ecx
or ebx, r10d
mov ecx, r11d
shr ecx, 0xb
mov r14d, ecx
imul r14d, r12d
cmp ebx, r14d
jae 0x14000a127
mov r11d, r14d
mov ecx, r12d
neg ecx
add ecx, 0x800
shr ecx, 5
add ecx, r12d
mov word [rax], cx
mov ecx, dword [rsp + 0xe0]
lea rax, [rdi + rcx*2]
movzx r12d, word [rax + 2]
cmp r11d, 0x1000000
jae 0x1400095ac
shl r11d, 8
add r9, 1
mov ecx, ebx
shl ecx, 8
movzx r10d, byte [r9 - 1]
mov ebx, ecx
or ebx, r10d
mov ecx, r11d
shr ecx, 0xb
mov r14d, ecx
imul r14d, r12d
cmp ebx, r14d
jae 0x1400095dd
mov ecx, r12d
neg ecx
add ecx, 0x800
shr ecx, 5
add ecx, r12d
mov word [rax + 2], cx
mov ecx, r14d
mov esi, 2
jmp 0x140009601
sub r11d, r14d
sub ebx, r14d
mov r10d, r12d
shr r10d, 5
neg r10d
add r10d, r12d
mov r10w, r10w
mov word [rax + 2], r10w
mov ecx, r11d
mov esi, 3
mov r11d, ecx
mov ecx, esi
movzx r12d, word [rax + rcx*2]
cmp r11d, 0x1000000
jae 0x14000962b
shl r11d, 8
add r9, 1
mov ecx, ebx
shl ecx, 8
movzx r10d, byte [r9 - 1]
mov ebx, ecx
or ebx, r10d
mov ecx, r11d
shr ecx, 0xb
mov r14d, ecx
imul r14d, r12d
cmp ebx, r14d
jae 0x14000965f
mov ecx, r12d
neg ecx
add ecx, 0x800
shr ecx, 5
add ecx, r12d
mov r10d, esi
mov word [rax + r10*2], cx
add esi, esi
mov dword [rsp + 0x54], r14d
jmp 0x140009682
sub r11d, r14d
sub ebx, r14d
mov ecx, r12d
shr ecx, 5
neg ecx
add ecx, r12d
mov r10d, esi
mov word [rax + r10*2], cx
lea esi, [esi + esi + 1]
mov dword [rsp + 0x54], r11d
mov ecx, dword [rsp + 0x54]
mov r11d, ecx
mov ecx, esi
movzx r12d, word [rax + rcx*2]
cmp r11d, 0x1000000
jae 0x1400096b0
shl r11d, 8
add r9, 1
mov ecx, ebx
shl ecx, 8
movzx r10d, byte [r9 - 1]
mov ebx, ecx
or ebx, r10d
mov ecx, r11d
shr ecx, 0xb
mov r14d, ecx
imul r14d, r12d
cmp ebx, r14d
jae 0x1400096e4
mov ecx, r12d
neg ecx
add ecx, 0x800
shr ecx, 5
add ecx, r12d
mov r10d, esi
mov word [rax + r10*2], cx
add esi, esi
mov dword [rsp + 0x50], r14d
jmp 0x140009707
sub r11d, r14d
sub ebx, r14d
mov ecx, r12d
shr ecx, 5
neg ecx
add ecx, r12d
mov r10d, esi
mov word [rax + r10*2], cx
lea esi, [esi + esi + 1]
mov dword [rsp + 0x50], r11d
mov ecx, dword [rsp + 0x50]
mov r11d, ecx
sub esi, 8
jmp 0x140009731
sub r11d, r14d
sub ebx, r14d
mov ecx, r12d
shr ecx, 5
neg ecx
add ecx, r12d
mov r10d, esi
mov word [rax + r10*2], cx
lea esi, [esi + esi + 1]
mov dword [rsp + 0x4c], r11d
jmp 0x1400098d3
mov ecx, r11d
shr ecx, 0xb
mov r14d, ecx
imul r14d, r12d
cmp ebx, r14d
jae 0x14000a176
mov r11d, r14d
mov ecx, r12d
neg ecx
add ecx, 0x800
shr ecx, 5
add ecx, r12d
mov word [rax], cx
mov ecx, dword [rsp + 0xe0]
lea rax, [rdi + rcx*2 + 0x10]
movzx r12d, word [rax + 2]
cmp r11d, 0x1000000
jae 0x140009799
shl r11d, 8
add r9, 1
mov ecx, ebx
shl ecx, 8
movzx r10d, byte [r9 - 1]
mov ebx, ecx
or ebx, r10d
mov ecx, r11d
shr ecx, 0xb
mov r14d, ecx
imul r14d, r12d
cmp ebx, r14d
jae 0x1400097ca
mov ecx, r12d
neg ecx
add ecx, 0x800
shr ecx, 5
add ecx, r12d
mov word [rax + 2], cx
mov ecx, r14d
mov esi, 2
jmp 0x1400097ee
sub r11d, r14d
sub ebx, r14d
mov r10d, r12d
shr r10d, 5
neg r10d
add r10d, r12d
mov r10w, r10w
mov word [rax + 2], r10w
mov ecx, r11d
mov esi, 3
mov r11d, ecx
mov ecx, esi
movzx r12d, word [rax + rcx*2]
cmp r11d, 0x1000000
jae 0x140009818
shl r11d, 8
add r9, 1
mov ecx, ebx
shl ecx, 8
movzx r10d, byte [r9 - 1]
mov ebx, ecx
or ebx, r10d
mov ecx, r11d
shr ecx, 0xb
mov r14d, ecx
imul r14d, r12d
cmp ebx, r14d
jae 0x14000984c
mov ecx, r12d
neg ecx
add ecx, 0x800
shr ecx, 5
add ecx, r12d
mov r10d, esi
mov word [rax + r10*2], cx
add esi, esi
mov dword [rsp + 0x48], r14d
jmp 0x14000986f
sub r11d, r14d
sub ebx, r14d
mov ecx, r12d
shr ecx, 5
neg ecx
add ecx, r12d
mov r10d, esi
mov word [rax + r10*2], cx
lea esi, [esi + esi + 1]
mov dword [rsp + 0x48], r11d
mov ecx, dword [rsp + 0x48]
mov r11d, ecx
mov ecx, esi
movzx r12d, word [rax + rcx*2]
cmp r11d, 0x1000000
jae 0x14000989d
shl r11d, 8
add r9, 1
mov ecx, ebx
shl ecx, 8
movzx r10d, byte [r9 - 1]
mov ebx, ecx
or ebx, r10d
mov ecx, r11d
shr ecx, 0xb
mov r14d, ecx
imul r14d, r12d
cmp ebx, r14d
jae 0x140009713
mov ecx, r12d
neg ecx
add ecx, 0x800
shr ecx, 5
add ecx, r12d
mov r10d, esi
mov word [rax + r10*2], cx
add esi, esi
mov dword [rsp + 0x4c], r14d
mov ecx, dword [rsp + 0x4c]
mov r11d, ecx
cmp edx, 0xc
jb 0x140009db5
mov rcx, qword [rsp + 0x88]
mov r10d, 3
cmp esi, 4
cmovb r15d, esi
cmovae r15d, r10d
mov r10d, r15d
shl r10d, 6
lea rdi, [rcx + r10*2 + 0x80]
movzx r12d, word [rdi + 2]
cmp r11d, 0x1000000
jae 0x140009930
shl r11d, 8
add r9, 1
mov ecx, ebx
shl ecx, 8
movzx r10d, byte [r9 - 1]
mov ebx, ecx
or ebx, r10d
mov ecx, r11d
shr ecx, 0xb
mov r14d, ecx
imul r14d, r12d
cmp ebx, r14d
jae 0x140009962
mov ecx, r12d
neg ecx
add ecx, 0x800
shr ecx, 5
add ecx, r12d
mov word [rdi + 2], cx
mov ecx, r14d
mov r15d, 2
jmp 0x140009987
sub r11d, r14d
sub ebx, r14d
mov r10d, r12d
shr r10d, 5
neg r10d
add r10d, r12d
mov r10w, r10w
mov word [rdi + 2], r10w
mov ecx, r11d
mov r15d, 3
mov r11d, ecx
mov ecx, r15d
movzx r12d, word [rdi + rcx*2]
cmp r11d, 0x1000000
jae 0x1400099b2
shl r11d, 8
add r9, 1
mov ecx, ebx
shl ecx, 8
movzx r10d, byte [r9 - 1]
mov ebx, ecx
or ebx, r10d
mov ecx, r11d
shr ecx, 0xb
mov r14d, ecx
imul r14d, r12d
cmp ebx, r14d
jae 0x1400099e9
mov ecx, r12d
neg ecx
add ecx, 0x800
shr ecx, 5
add ecx, r12d
mov r10d, r15d
mov word [rdi + r10*2], cx
add r15d, r15d
mov ecx, r14d
mov dword [rsp + 0x40], ecx
jmp 0x140009a0d
sub r11d, r14d
sub ebx, r14d
mov ecx, r12d
shr ecx, 5
neg ecx
add ecx, r12d
mov r10d, r15d
mov word [rdi + r10*2], cx
lea r15d, [r15d + r15d + 1]
mov dword [rsp + 0x40], r11d
mov ecx, dword [rsp + 0x40]
mov r11d, ecx
mov ecx, r15d
movzx r12d, word [rdi + rcx*2]
cmp r11d, 0x1000000
jae 0x140009a3c
shl r11d, 8
add r9, 1
mov ecx, ebx
shl ecx, 8
movzx r10d, byte [r9 - 1]
mov ebx, ecx
or ebx, r10d
mov ecx, r11d
shr ecx, 0xb
mov r14d, ecx
imul r14d, r12d
cmp ebx, r14d
jae 0x140009a73
mov ecx, r12d
neg ecx
add ecx, 0x800
shr ecx, 5
add ecx, r12d
mov r10d, r15d
mov word [rdi + r10*2], cx
add r15d, r15d
mov ecx, r14d
mov dword [rsp + 0x3c], ecx
jmp 0x140009a97
sub r11d, r14d
sub ebx, r14d
mov ecx, r12d
shr ecx, 5
neg ecx
add ecx, r12d
mov r10d, r15d
mov word [rdi + r10*2], cx
lea r15d, [r15d + r15d + 1]
mov dword [rsp + 0x3c], r11d
mov ecx, dword [rsp + 0x3c]
mov r11d, ecx
mov ecx, r15d
movzx r12d, word [rdi + rcx*2]
cmp r11d, 0x1000000
jae 0x140009ac6
shl r11d, 8
add r9, 1
mov ecx, ebx
shl ecx, 8
movzx r10d, byte [r9 - 1]
mov ebx, ecx
or ebx, r10d
mov ecx, r11d
shr ecx, 0xb
mov r14d, ecx
imul r14d, r12d
cmp ebx, r14d
jae 0x140009afd
mov ecx, r12d
neg ecx
add ecx, 0x800
shr ecx, 5
add ecx, r12d
mov r10d, r15d
mov word [rdi + r10*2], cx
add r15d, r15d
mov ecx, r14d
mov dword [rsp + 0x38], ecx
jmp 0x140009b21
sub r11d, r14d
sub ebx, r14d
mov ecx, r12d
shr ecx, 5
neg ecx
add ecx, r12d
mov r10d, r15d
mov word [rdi + r10*2], cx
lea r15d, [r15d + r15d + 1]
mov dword [rsp + 0x38], r11d
mov ecx, dword [rsp + 0x38]
mov r11d, ecx
mov ecx, r15d
movzx r12d, word [rdi + rcx*2]
cmp r11d, 0x1000000
jae 0x140009b50
shl r11d, 8
add r9, 1
mov ecx, ebx
shl ecx, 8
movzx r10d, byte [r9 - 1]
mov ebx, ecx
or ebx, r10d
mov ecx, r11d
shr ecx, 0xb
mov r14d, ecx
imul r14d, r12d
cmp ebx, r14d
jae 0x140009b87
mov ecx, r12d
neg ecx
add ecx, 0x800
shr ecx, 5
add ecx, r12d
mov r10d, r15d
mov word [rdi + r10*2], cx
add r15d, r15d
mov ecx, r14d
mov dword [rsp + 0x34], ecx
jmp 0x140009bab
sub r11d, r14d
sub ebx, r14d
mov ecx, r12d
shr ecx, 5
neg ecx
add ecx, r12d
mov r10d, r15d
mov word [rdi + r10*2], cx
lea r15d, [r15d + r15d + 1]
mov dword [rsp + 0x34], r11d
mov ecx, dword [rsp + 0x34]
mov r11d, ecx
mov ecx, r15d
movzx r12d, word [rdi + rcx*2]
cmp r11d, 0x1000000
jae 0x140009bda
shl r11d, 8
add r9, 1
mov ecx, ebx
shl ecx, 8
movzx r10d, byte [r9 - 1]
mov ebx, ecx
or ebx, r10d
mov ecx, r11d
shr ecx, 0xb
mov r14d, ecx
imul r14d, r12d
cmp ebx, r14d
jae 0x140009c11
mov ecx, r12d
neg ecx
add ecx, 0x800
shr ecx, 5
add ecx, r12d
mov r10d, r15d
mov word [rdi + r10*2], cx
add r15d, r15d
mov ecx, r14d
mov dword [rsp + 0x30], ecx
jmp 0x140009c35
sub r11d, r14d
sub ebx, r14d
mov ecx, r12d
shr ecx, 5
neg ecx
add ecx, r12d
mov r10d, r15d
mov word [rdi + r10*2], cx
lea r15d, [r15d + r15d + 1]
mov dword [rsp + 0x30], r11d
mov ecx, dword [rsp + 0x30]
mov r11d, ecx
sub r15d, 0x40
cmp r15d, 4
jb 0x140009d43
mov r10d, r15d
mov ecx, r15d
shr ecx, 1
sub ecx, 1
mov r13d, r15d
and r13d, 1
mov r15d, r13d
or r15d, 2
cmp r10d, 0xe
jae 0x14000a24f
mov r10, qword [rsp + 0x88]
lea rdi, [r10 - 0xd00]
mov r10d, r15d
shl r10d, cl
lea r15d, [r10d + 1]
mov dword [rsp + 0x28], 1
mov r10d, r15d
movzx r12d, word [rdi + r10*2]
cmp r11d, 0x1000000
jae 0x140009cba
shl r11d, 8
add r9, 1
mov r10d, ebx
shl r10d, 8
movzx r13d, byte [r9 - 1]
mov ebx, r10d
or ebx, r13d
mov r10d, r11d
shr r10d, 0xb
mov r14d, r10d
imul r14d, r12d
cmp ebx, r14d
jae 0x140009d00
mov r10d, r12d
neg r10d
add r10d, 0x800
shr r10d, 5
add r10d, r12d
mov r10w, r10w
mov r13d, r15d
mov word [rdi + r13*2], r10w
add r15d, dword [rsp + 0x28]
shl dword [rsp + 0x28], 1
mov r10d, r14d
mov dword [rsp + 0x24], r10d
jmp 0x140009d2d
sub r11d, r14d
sub ebx, r14d
mov r10d, r12d
shr r10d, 5
neg r10d
add r10d, r12d
mov r10w, r10w
mov r13d, r15d
mov word [rdi + r13*2], r10w
shl dword [rsp + 0x28], 1
add r15d, dword [rsp + 0x28]
mov dword [rsp + 0x24], r11d
mov r10d, dword [rsp + 0x24]
mov r11d, r10d
sub ecx, 1
jne 0x140009c8f
sub r15d, dword [rsp + 0x28]
mov r10d, dword [rsp + 0xe8]
mov dword [rsp + 0xec], r10d
mov r10d, dword [rsp + 0xe4]
mov dword [rsp + 0xe8], r10d
mov r10d, dword [rsp + 0xd4]
mov dword [rsp + 0xe4], r10d
lea r10d, [r15d + 1]
mov dword [rsp + 0xd4], r10d
cmp edx, 0x13
mov edx, 7
mov r10d, 0xa
cmovae edx, r10d
cmp dword [rsp + 0xf0], 0
cmovne r13d, dword [rsp + 0xf0]
cmove r13d, dword [rsp + 0xac]
cmp r15d, r13d
jae 0x14000a4c3
add esi, 2
mov r10, qword [rsp + 0x148]
sub r10, r8
mov r13, r10
test r10, r10
je 0x14000a4c3
mov r10d, esi
cmp r13, r10
jae 0x140009def
mov r10d, r13d
mov dword [rsp + 0xa0], r10d
mov dword [rsp + 0xa4], r10d
jmp 0x140008d1b
mov dword [rsp + 0xa4], esi
jmp 0x140008d1b
sub r11d, r14d
sub ebx, r14d
mov r10d, r12d
shr r10d, 5
neg r10d
add r10d, r12d
mov r10w, r10w
mov word [rdi], r10w
mov r10, qword [rsp + 0x88]
mov r13d, edx
lea rdi, [r10 + r13*2 + 0x38]
movzx r12d, word [rdi]
cmp r11d, 0x1000000
jae 0x140009e4d
shl r11d, 8
add r9, 1
mov r10d, ebx
shl r10d, 8
movzx r13d, byte [r9 - 1]
mov ebx, r10d
or ebx, r13d
mov r10d, r11d
shr r10d, 0xb
mov r14d, r10d
imul r14d, r12d
cmp ebx, r14d
jae 0x140009f54
mov r11d, r14d
mov r10d, r12d
neg r10d
add r10d, 0x800
shr r10d, 5
add r10d, r12d
mov r10w, r10w
mov word [rdi], r10w
mov r10d, dword [rsp + 0xe0]
add r10d, edx
mov r10d, r10d
mov r13, qword [rsp + 0x88]
lea rdi, [r13 + r10*2 - 0xc00]
movzx r12d, word [rdi]
cmp r11d, 0x1000000
jae 0x140009ec8
shl r11d, 8
add r9, 1
mov r10d, ebx
shl r10d, 8
movzx r13d, byte [r9 - 1]
mov ebx, r10d
or ebx, r13d
mov r10d, r11d
shr r10d, 0xb
mov r14d, r10d
imul r14d, r12d
cmp ebx, r14d
jb 0x140008df1
sub r11d, r14d
sub ebx, r14d
mov r10d, r12d
shr r10d, 5
neg r10d
add r10d, r12d
mov r10w, r10w
mov word [rdi], r10w
mov r10d, dword [rsp + 0xd4]
mov dword [rsp + 0x2c], r10d
mov r10d, dword [rsp + 0xe4]
mov dword [rsp + 0x44], r10d
jmp 0x1400094eb
mov r10d, dword [rsp + 0x20]
mov dword [rsp + 0x14], r10d
mov r10d, dword [rsp + 0x1c]
mov r11d, r10d
mov r10d, dword [rsp + 0x18]
mov dword [rsp + 0xe8], r10d
mov r10d, dword [rsp + 0x14]
mov dword [rsp + 0x2c], r10d
mov r10d, dword [rsp + 0xd4]
mov dword [rsp + 0x44], r10d
jmp 0x1400094eb
sub r11d, r14d
sub ebx, r14d
mov r10d, r12d
shr r10d, 5
neg r10d
add r10d, r12d
mov r10w, r10w
mov word [rdi], r10w
mov r10, qword [rsp + 0x88]
mov r13d, edx
lea rdi, [r10 + r13*2 + 0x50]
movzx r12d, word [rdi]
cmp r11d, 0x1000000
jae 0x140009fa6
shl r11d, 8
add r9, 1
mov r10d, ebx
shl r10d, 8
movzx r13d, byte [r9 - 1]
mov ebx, r10d
or ebx, r13d
mov r10d, r11d
shr r10d, 0xb
mov r14d, r10d
imul r14d, r12d
cmp ebx, r14d
jae 0x14000a040
mov r10d, r12d
neg r10d
add r10d, 0x800
shr r10d, 5
add r10d, r12d
mov r10w, r10w
mov word [rdi], r10w
mov r10d, dword [rsp + 0xe8]
mov dword [rsp + 0x18], r10d
mov r10d, r14d
mov dword [rsp + 0x1c], r10d
mov r10d, dword [rsp + 0xe4]
mov dword [rsp + 0x20], r10d
jmp 0x140009f19
mov r10d, dword [rsp + 0x10]
mov dword [rsp + 0x14], r10d
mov r10d, dword [rsp + 0xc]
mov r11d, r10d
mov r10d, dword [rsp + 8]
mov dword [rsp + 0xec], r10d
mov r10d, dword [rsp + 0xe4]
mov dword [rsp + 0x18], r10d
mov dword [rsp + 0x1c], r11d
mov r10d, dword [rsp + 0x14]
mov dword [rsp + 0x20], r10d
jmp 0x140009f19
sub r11d, r14d
sub ebx, r14d
mov r10d, r12d
shr r10d, 5
neg r10d
add r10d, r12d
mov r10w, r10w
mov word [rdi], r10w
mov r10, qword [rsp + 0x88]
mov r13d, edx
lea rdi, [r10 + r13*2 + 0x68]
movzx r12d, word [rdi]
cmp r11d, 0x1000000
jae 0x14000a092
shl r11d, 8
add r9, 1
mov r10d, ebx
shl r10d, 8
movzx r13d, byte [r9 - 1]
mov ebx, r10d
or ebx, r13d
mov r10d, r11d
shr r10d, 0xb
mov r14d, r10d
imul r14d, r12d
cmp ebx, r14d
jae 0x14000a0e8
mov r10d, r12d
neg r10d
add r10d, 0x800
shr r10d, 5
add r10d, r12d
mov r10w, r10w
mov word [rdi], r10w
mov r10d, dword [rsp + 0xec]
mov dword [rsp + 8], r10d
mov r10d, r14d
mov dword [rsp + 0xc], r10d
mov r10d, dword [rsp + 0xe8]
mov dword [rsp + 0x10], r10d
jmp 0x14000a000
sub r11d, r14d
sub ebx, r14d
mov r10d, r12d
shr r10d, 5
neg r10d
add r10d, r12d
mov r10w, r10w
mov word [rdi], r10w
mov r10d, dword [rsp + 0xe8]
mov dword [rsp + 8], r10d
mov dword [rsp + 0xc], r11d
mov r10d, dword [rsp + 0xec]
mov dword [rsp + 0x10], r10d
jmp 0x14000a000
sub r11d, r14d
sub ebx, r14d
mov r10d, r12d
shr r10d, 5
neg r10d
add r10d, r12d
mov r10w, r10w
mov word [rax], r10w
lea rax, [rdi + 0x10]
movzx r12d, word [rax]
cmp r11d, 0x1000000
jae 0x14000973b
shl r11d, 8
add r9, 1
mov r10d, ebx
shl r10d, 8
movzx r13d, byte [r9 - 1]
mov ebx, r10d
or ebx, r13d
jmp 0x14000973b
sub r11d, r14d
sub ebx, r14d
mov r10d, r12d
shr r10d, 5
neg r10d
add r10d, r12d
mov r10w, r10w
mov word [rax], r10w
lea rax, [rdi + 0x200]
mov esi, 1
mov r10d, esi
movzx r12d, word [rax + r10*2]
cmp r11d, 0x1000000
jae 0x14000a1c8
shl r11d, 8
add r9, 1
mov r10d, ebx
shl r10d, 8
movzx r13d, byte [r9 - 1]
mov ebx, r10d
or ebx, r13d
mov r10d, r11d
shr r10d, 0xb
mov r14d, r10d
imul r14d, r12d
cmp ebx, r14d
jae 0x14000a207
mov r10d, r12d
neg r10d
add r10d, 0x800
shr r10d, 5
add r10d, r12d
mov r10w, r10w
mov r13d, esi
mov word [rax + r13*2], r10w
add esi, esi
mov r10d, r14d
mov dword [rsp + 4], r10d
jmp 0x14000a230
sub r11d, r14d
sub ebx, r14d
mov r10d, r12d
shr r10d, 5
neg r10d
add r10d, r12d
mov r10w, r10w
mov r13d, esi
mov word [rax + r13*2], r10w
lea esi, [esi + esi + 1]
mov dword [rsp + 4], r11d
mov r10d, dword [rsp + 4]
mov r11d, r10d
cmp esi, 0x100
jb 0x14000a19d
add esi, 0xffffff10
jmp 0x140009731
sub ecx, 4
nop dword [rax + rax]
nop word [rax + rax]
cmp r11d, 0x1000000
jae 0x14000a280
shl r11d, 8
add r9, 1
mov eax, ebx
shl eax, 8
movzx r10d, byte [r9 - 1]
mov ebx, eax
or ebx, r10d
shr r11d, 1
sub ebx, r11d
mov eax, ebx
shr eax, 0x1f
neg eax
lea r15d, [eax + r15d*2 + 1]
and eax, r11d
add ebx, eax
sub ecx, 1
jne 0x14000a260
mov rax, qword [rsp + 0x88]
mov rdi, rax
movzx r12d, word [rdi + 2]
cmp r11d, 0x1000000
jae 0x14000a2cc
shl r11d, 8
add r9, 1
mov eax, ebx
shl eax, 8
movzx ecx, byte [r9 - 1]
mov ebx, eax
or ebx, ecx
mov eax, r11d
shr eax, 0xb
mov r14d, eax
imul r14d, r12d
cmp ebx, r14d
jae 0x14000a2fc
mov eax, r12d
neg eax
add eax, 0x800
shr eax, 5
add eax, r12d
mov word [rdi + 2], ax
mov eax, r14d
mov ecx, 2
jmp 0x14000a320
sub r11d, r14d
sub ebx, r14d
mov r10d, r12d
shr r10d, 5
neg r10d
add r10d, r12d
mov r10w, r10w
mov word [rdi + 2], r10w
mov eax, r11d
mov ecx, 3
mov r11d, eax
mov eax, ecx
movzx r12d, word [rdi + rax*2]
cmp r11d, 0x1000000
jae 0x14000a34a
shl r11d, 8
add r9, 1
mov eax, ebx
shl eax, 8
movzx r10d, byte [r9 - 1]
mov ebx, eax
or ebx, r10d
mov eax, r11d
shr eax, 0xb
mov r14d, eax
imul r14d, r12d
cmp ebx, r14d
jae 0x14000a37c
mov eax, r12d
neg eax
add eax, 0x800
shr eax, 5
add eax, r12d
mov r10d, ecx
mov word [rdi + r10*2], ax
add ecx, 2
mov eax, r14d
jmp 0x14000a3a1
sub r11d, r14d
sub ebx, r14d
mov r10d, r12d
shr r10d, 5
neg r10d
add r10d, r12d
mov r10w, r10w
mov r13d, ecx
mov word [rdi + r13*2], r10w
add ecx, 4
mov eax, r11d
mov r11d, eax
mov eax, ecx
movzx r12d, word [rdi + rax*2]
cmp r11d, 0x1000000
jae 0x14000a3cb
shl r11d, 8
add r9, 1
mov eax, ebx
shl eax, 8
movzx r10d, byte [r9 - 1]
mov ebx, eax
or ebx, r10d
mov eax, r11d
shr eax, 0xb
mov r14d, eax
imul r14d, r12d
cmp ebx, r14d
jae 0x14000a3fd
mov eax, r12d
neg eax
add eax, 0x800
shr eax, 5
add eax, r12d
mov r10d, ecx
mov word [rdi + r10*2], ax
add ecx, 4
mov eax, r14d
jmp 0x14000a422
sub r11d, r14d
sub ebx, r14d
mov r10d, r12d
shr r10d, 5
neg r10d
add r10d, r12d
mov r10w, r10w
mov r13d, ecx
mov word [rdi + r13*2], r10w
add ecx, 8
mov eax, r11d
mov r11d, eax
mov eax, ecx
movzx r12d, word [rdi + rax*2]
cmp r11d, 0x1000000
jae 0x14000a44c
shl r11d, 8
add r9, 1
mov eax, ebx
shl eax, 8
movzx r10d, byte [r9 - 1]
mov ebx, eax
or ebx, r10d
mov eax, r11d
shr eax, 0xb
mov r14d, eax
imul r14d, r12d
cmp ebx, r14d
jae 0x14000a47e
mov eax, r12d
neg eax
add eax, 0x800
shr eax, 5
add eax, r12d
mov r10d, ecx
mov word [rdi + r10*2], ax
sub ecx, 8
mov eax, r14d
jmp 0x14000a49d
sub r11d, r14d
sub ebx, r14d
mov r10d, r12d
shr r10d, 5
sub r12d, r10d
mov r10w, r12w
mov r12d, ecx
mov word [rdi + r12*2], r10w
mov eax, r11d
mov r11d, eax
mov eax, r15d
shl eax, 4
mov r15d, eax
or r15d, ecx
cmp r15d, 0xffffffff
jne 0x140009d43
sub edx, 0xc
mov esi, 0x112
jmp 0x140008e89
mov rax, qword [rsp + 0x140]
mov qword [rax + 0x28], r8
mov eax, 1
jmp 0x14000a534
add r8, 1
mov rax, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0x60]
mov al, byte [rax + rcx]
mov rcx, qword [rsp + 0xc8]
mov byte [rcx + r8 - 1], al
mov rax, qword [rsp + 0x60]
add rax, 1
xor ecx, ecx
cmp rax, qword [rsp + 0xd8]
cmove rax, rcx
mov qword [rsp + 0x60], rax
sub dword [rsp + 0x9c], 1
cmp dword [rsp + 0x9c], 0
jne 0x14000a4e0
jmp 0x140008dea
add rsp, 0x100
pop r13
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
ret