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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x98
mov qword [rsp + 0x90], r8
mov r13d, dword [rcx + 0x40]
mov eax, dword [rcx + 0x44]
mov dword [rsp + 0x44], eax
test eax, eax
je 0x140006665
mov qword [rsp + 0x48], rdx
mov rsi, qword [rcx + 0x28]
jmp 0x140006685
mov eax, dword [rcx + 4]
sub eax, r13d
mov rsi, qword [rcx + 0x28]
mov r8, rdx
sub r8, rsi
lea r9, [rsi + rax]
cmp r8, rax
cmova rdx, r9
mov qword [rsp + 0x48], rdx
mov r14, qword [rcx + 0x10]
mov r12d, dword [rcx + 0x58]
mov eax, dword [rcx + 0x48]
mov dword [rsp + 4], eax
mov eax, dword [rcx + 0x4c]
mov dword [rsp + 8], eax
mov eax, dword [rcx + 0x50]
mov dword [rsp + 0xc], eax
mov eax, dword [rcx + 0x54]
mov dword [rsp + 0x2c], eax
mov rdx, rcx
movzx r10d, byte [rcx + 1]
movzx ecx, byte [rcx + 2]
mov eax, 0xffffffff
shl eax, cl
not eax
mov dword [rsp + 0x5c], eax
movzx r8d, byte [rdx]
mov eax, 0x100
mov r9d, 0x100
mov ecx, r10d
shl r9d, cl
mov dword [rsp + 0x58], r8d
mov ecx, r8d
shr eax, cl
sub r9d, eax
mov dword [rsp + 0x54], r9d
mov rcx, qword [rdx + 0x18]
mov qword [rsp + 0x10], rcx
mov rax, qword [rdx + 0x20]
mov qword [rsp + 0x38], rax
mov r10, qword [rdx + 0x30]
mov eax, dword [rdx + 0x38]
mov qword [rsp + 0x78], rdx
mov ebx, dword [rdx + 0x3c]
lea rdx, [r14 - 0xa00]
mov qword [rsp + 0x80], rdx
lea rdx, [r14 - 0x600]
mov qword [rsp + 0x88], rdx
lea rdx, [r14 + 0x80]
mov qword [rsp + 0x60], rdx
lea rdx, [r14 + 0x280]
mov qword [rsp + 0x68], rdx
add rcx, 0x10
mov qword [rsp + 0x70], rcx
xor r9d, r9d
mov qword [rsp + 0x20], r14
nop word cs:[rax + rax]
mov ecx, r13d
and ecx, dword [rsp + 0x5c]
shl ecx, 4
lea r8d, [r12 + rcx]
cmp eax, 0xffffff
ja 0x140006786
shl eax, 8
shl ebx, 8
movzx edx, byte [r10]
inc r10
or edx, ebx
mov ebx, edx
movzx edx, word [r14 + r8*2 - 0x200]
mov r15d, eax
shr r15d, 0xb
imul r15d, edx
mov ebp, ebx
sub ebp, r15d
jae 0x140006870
mov eax, 0x800
sub eax, edx
shr eax, 5
add eax, edx
mov word [r14 + r8*2 - 0x200], ax
mov eax, r13d
or eax, dword [rsp + 0x44]
mov rcx, qword [rsp + 0x68]
mov r8, qword [rsp + 0x38]
je 0x1400067ff
mov eax, r13d
shl eax, 8
test rsi, rsi
mov rcx, rsi
cmove rcx, r8
mov rdx, qword [rsp + 0x10]
movzx edx, byte [rcx + rdx - 1]
or edx, eax
and edx, dword [rsp + 0x54]
mov ecx, dword [rsp + 0x58]
shl edx, cl
lea eax, [rdx + rdx*2]
mov rcx, qword [rsp + 0x68]
lea rcx, [rcx + rax*2]
cmp r12d, 6
ja 0x1400068f0
sub r12d, 3
mov eax, 0
cmovb r12d, eax
cmp r15d, 0xffffff
ja 0x140006831
shl r15d, 8
shl ebx, 8
movzx eax, byte [r10]
inc r10
or eax, ebx
mov ebx, eax
movzx r8d, word [rcx + 2]
mov edx, r15d
shr edx, 0xb
imul edx, r8d
mov edi, ebx
sub edi, edx
jae 0x140006a6a
mov r11d, 0x800
sub r11d, r8d
shr r11d, 5
add r11d, r8d
mov eax, 2
jmp 0x140006a83
sub eax, r15d
mov r11d, edx
shr r11d, 5
sub edx, r11d
mov word [r14 + r8*2 - 0x200], dx
cmp eax, 0xffffff
ja 0x14000689c
shl eax, 8
shl ebp, 8
movzx edx, byte [r10]
inc r10
or ebp, edx
mov edx, r12d
movzx r11d, word [r14 + rdx*2 + 0x20]
mov r15d, eax
shr r15d, 0xb
imul r15d, r11d
mov ebx, ebp
sub ebx, r15d
jae 0x140006980
mov eax, 0x800
sub eax, r11d
shr eax, 5
add eax, r11d
mov word [r14 + rdx*2 + 0x20], ax
add r12d, 0xc
mov rdx, qword [rsp + 0x88]
mov ebx, dword [rsp + 0xc]
mov r14d, dword [rsp + 8]
jmp 0x140007266
mov eax, dword [rsp + 4]
mov rdx, rsi
sub rdx, rax
mov eax, 0
cmovb rax, r8
add rax, rdx
mov rdx, qword [rsp + 0x10]
movzx ebp, byte [rdx + rax]
cmp r12d, 0xa
setb byte [rsp + 0x1c]
lea r8d, [rbp + rbp]
and r8d, 0x100
cmp r15d, 0xffffff
ja 0x14000693f
shl r15d, 8
shl ebx, 8
movzx eax, byte [r10]
inc r10
or eax, ebx
mov ebx, eax
movzx r11d, word [rcx + r8*2 + 0x202]
mov eax, r15d
shr eax, 0xb
imul eax, r11d
mov r14d, ebx
sub r14d, eax
jae 0x140006ad9
mov edi, 0x800
sub edi, r11d
shr edi, 5
add edi, r11d
mov r11d, r8d
xor r11d, 0x100
mov edx, 2
jmp 0x140006af6
sub eax, r15d
mov edi, r11d
shr edi, 5
sub r11d, edi
mov word [r14 + rdx*2 + 0x20], r11w
cmp eax, 0xffffff
ja 0x1400069ac
shl eax, 8
shl ebx, 8
movzx r11d, byte [r10]
inc r10
or r11d, ebx
mov ebx, r11d
movzx r11d, word [r14 + rdx*2 + 0x38]
mov r15d, eax
shr r15d, 0xb
imul r15d, r11d
mov ebp, ebx
sub ebp, r15d
jae 0x140006b6c
mov eax, 0x800
sub eax, r11d
shr eax, 5
add eax, r11d
mov word [r14 + rdx*2 + 0x38], ax
cmp r15d, 0xffffff
ja 0x1400069f7
shl r15d, 8
shl ebx, 8
movzx eax, byte [r10]
inc r10
or eax, ebx
mov ebx, eax
movzx edx, word [r14 + r8*2 - 0xc00]
mov eax, r15d
shr eax, 0xb
imul eax, edx
mov ebp, ebx
sub ebp, eax
jae 0x140007192
mov ecx, 0x800
sub ecx, edx
shr ecx, 5
add ecx, edx
mov word [r14 + r8*2 - 0xc00], cx
mov ecx, dword [rsp + 4]
mov rdx, rsi
sub rdx, rcx
mov ecx, 0
cmovb rcx, qword [rsp + 0x38]
add rcx, rdx
mov rdx, qword [rsp + 0x10]
movzx ecx, byte [rdx + rcx]
mov byte [rdx + rsi], cl
inc rsi
xor ecx, ecx
cmp r12d, 7
setae cl
lea r12d, [rcx + rcx]
add r12d, 9
mov ecx, 1
jmp 0x140007d48
sub r15d, edx
mov eax, r8d
shr eax, 5
sub r8d, eax
mov eax, 3
mov r11d, r8d
mov edx, r15d
mov ebx, edi
mov r15, qword [rsp + 0x10]
mov word [rcx + 2], r11w
cmp edx, 0xffffff
ja 0x140006aa8
shl edx, 8
shl ebx, 8
movzx r8d, byte [r10]
inc r10
or r8d, ebx
mov ebx, r8d
mov r8d, eax
movzx edi, word [rcx + r8*2]
mov eax, edx
shr eax, 0xb
imul eax, edi
lea r11d, [r8 + r8]
mov r14d, ebx
sub r14d, eax
jae 0x140006bda
mov ebp, 0x800
sub ebp, edi
shr ebp, 5
add ebp, edi
jmp 0x140006bee
sub r15d, eax
mov eax, r11d
shr eax, 5
sub r11d, eax
mov edx, 3
mov edi, r11d
mov eax, r15d
mov ebx, r14d
mov r11d, r8d
mov word [rcx + r8*2 + 0x202], di
lea r8d, [rbp*4]
mov edi, r11d
and r8d, r11d
mov r15d, edx
add r15, rdi
add r15, r8
cmp eax, 0xffffff
mov dword [rsp + 0x40], r13d
mov qword [rsp + 0x30], r12
ja 0x140006b38
shl eax, 8
shl ebx, 8
movzx edi, byte [r10]
inc r10
or edi, ebx
mov ebx, edi
movzx r13d, word [rcx + r15*2]
mov edi, eax
shr edi, 0xb
imul edi, r13d
add edx, edx
mov r12d, ebx
sub r12d, edi
jae 0x140006c3f
mov r14d, 0x800
sub r14d, r13d
shr r14d, 5
add r14d, r13d
xor r8d, r11d
jmp 0x140006c56
sub eax, r15d
mov r8d, r11d
shr r8d, 5
sub r11d, r8d
mov word [r14 + rdx*2 + 0x38], r11w
cmp eax, 0xffffff
ja 0x140006b96
shl eax, 8
shl ebp, 8
movzx r8d, byte [r10]
inc r10
or ebp, r8d
mov ebx, dword [rsp + 0xc]
movzx r9d, word [r14 + rdx*2 + 0x50]
mov r15d, eax
shr r15d, 0xb
imul r15d, r9d
mov r8d, ebp
sub r8d, r15d
jae 0x1400071b8
mov eax, 0x800
sub eax, r9d
shr eax, 5
add eax, r9d
mov word [r14 + rdx*2 + 0x50], ax
mov r14d, dword [rsp + 4]
mov r8d, dword [rsp + 8]
jmp 0x140007248
sub edx, eax
mov eax, edi
shr eax, 5
sub edi, eax
or r11d, 1
mov ebp, edi
mov eax, edx
mov ebx, r14d
mov word [rcx + r8*2], bp
mov r8d, r11d
movzx r11d, word [rcx + r8*2]
cmp eax, 0xffffff
ja 0x140006c13
shl eax, 8
shl ebx, 8
movzx edx, byte [r10]
inc r10
or edx, ebx
mov ebx, edx
mov edx, eax
shr edx, 0xb
imul edx, r11d
lea edi, [r8 + r8]
mov r14d, ebx
sub r14d, edx
jae 0x140006cb8
mov ebp, 0x800
sub ebp, r11d
shr ebp, 5
add ebp, r11d
jmp 0x140006cce
sub eax, edi
mov r11d, r13d
shr r11d, 5
sub r13d, r11d
or edx, 1
mov r14d, r13d
mov edi, eax
mov ebx, r12d
mov word [rcx + r15*2], r14w
lea r15d, [rbp*8]
mov eax, r8d
and r15d, r8d
mov r11d, edx
add r11, rax
add r11, r15
movzx r14d, word [rcx + r11*2]
cmp edi, 0xffffff
ja 0x140006c90
shl edi, 8
shl ebx, 8
movzx eax, byte [r10]
inc r10
or eax, ebx
mov ebx, eax
mov eax, edi
shr eax, 0xb
imul eax, r14d
add edx, edx
mov r12d, ebx
sub r12d, eax
jae 0x140006d20
mov r13d, 0x800
sub r13d, r14d
shr r13d, 5
add r13d, r14d
xor r15d, r8d
jmp 0x140006d36
sub eax, edx
mov edx, r11d
shr edx, 5
sub r11d, edx
or edi, 1
mov ebp, r11d
mov edx, eax
mov ebx, r14d
mov word [rcx + r8*2], bp
mov r8d, edi
movzx r11d, word [rcx + r8*2]
cmp edx, 0xffffff
ja 0x140006cf4
shl edx, 8
shl ebx, 8
movzx eax, byte [r10]
inc r10
or eax, ebx
mov ebx, eax
mov eax, edx
shr eax, 0xb
imul eax, r11d
lea edi, [r8 + r8]
mov r14d, ebx
sub r14d, eax
jae 0x140006d96
mov ebp, 0x800
sub ebp, r11d
shr ebp, 5
add ebp, r11d
jmp 0x140006dac
sub edi, eax
mov eax, r14d
shr eax, 5
sub r14d, eax
or edx, 1
mov r13d, r14d
mov eax, edi
mov ebx, r12d
mov word [rcx + r11*2], r13w
mov r8d, ebp
shl r8d, 4
mov edi, r15d
and r8d, r15d
mov r11d, edx
add r11, rdi
add r11, r8
movzx r14d, word [rcx + r11*2]
cmp eax, 0xffffff
ja 0x140006d6e
shl eax, 8
shl ebx, 8
movzx edi, byte [r10]
inc r10
or edi, ebx
mov ebx, edi
mov edi, eax
shr edi, 0xb
imul edi, r14d
add edx, edx
mov r12d, ebx
sub r12d, edi
jae 0x140006dfd
mov r13d, 0x800
sub r13d, r14d
shr r13d, 5
add r13d, r14d
xor r8d, r15d
jmp 0x140006e13
sub edx, eax
mov eax, r11d
shr eax, 5
sub r11d, eax
or edi, 1
mov ebp, r11d
mov eax, edx
mov ebx, r14d
mov word [rcx + r8*2], bp
mov r8d, edi
movzx r11d, word [rcx + r8*2]
cmp eax, 0xffffff
ja 0x140006dd1
shl eax, 8
shl ebx, 8
movzx edx, byte [r10]
inc r10
or edx, ebx
mov ebx, edx
mov edx, eax
shr edx, 0xb
imul edx, r11d
lea edi, [r8 + r8]
mov r14d, ebx
sub r14d, edx
jae 0x140006e74
mov ebp, 0x800
sub ebp, r11d
shr ebp, 5
add ebp, r11d
jmp 0x140006e8a
sub eax, edi
mov edi, r14d
shr edi, 5
sub r14d, edi
or edx, 1
mov r13d, r14d
mov edi, eax
mov ebx, r12d
mov word [rcx + r11*2], r13w
mov r15d, ebp
shl r15d, 5
mov eax, r8d
and r15d, r8d
mov r11d, edx
add r11, rax
add r11, r15
movzx r14d, word [rcx + r11*2]
cmp edi, 0xffffff
ja 0x140006e4c
shl edi, 8
shl ebx, 8
movzx eax, byte [r10]
inc r10
or eax, ebx
mov ebx, eax
mov eax, edi
shr eax, 0xb
imul eax, r14d
add edx, edx
mov r12d, ebx
sub r12d, eax
jae 0x140006edc
mov r13d, 0x800
sub r13d, r14d
shr r13d, 5
add r13d, r14d
xor r15d, r8d
jmp 0x140006ef2
sub eax, edx
mov edx, r11d
shr edx, 5
sub r11d, edx
or edi, 1
mov ebp, r11d
mov edx, eax
mov ebx, r14d
mov word [rcx + r8*2], bp
mov r8d, edi
movzx r11d, word [rcx + r8*2]
cmp edx, 0xffffff
ja 0x140006eb0
shl edx, 8
shl ebx, 8
movzx eax, byte [r10]
inc r10
or eax, ebx
mov ebx, eax
mov eax, edx
shr eax, 0xb
imul eax, r11d
lea edi, [r8 + r8]
mov r14d, ebx
sub r14d, eax
jae 0x140006f52
mov ebp, 0x800
sub ebp, r11d
shr ebp, 5
add ebp, r11d
jmp 0x140006f68
sub edi, eax
mov eax, r14d
shr eax, 5
sub r14d, eax
or edx, 1
mov r13d, r14d
mov eax, edi
mov ebx, r12d
mov word [rcx + r11*2], r13w
mov r8d, ebp
shl r8d, 6
mov edi, r15d
and r8d, r15d
mov r11d, edx
add r11, rdi
add r11, r8
movzx r14d, word [rcx + r11*2]
cmp eax, 0xffffff
ja 0x140006f2a
shl eax, 8
shl ebx, 8
movzx edi, byte [r10]
inc r10
or edi, ebx
mov ebx, edi
mov edi, eax
shr edi, 0xb
imul edi, r14d
add edx, edx
mov r12d, ebx
sub r12d, edi
jae 0x140006fbb
mov r13d, 0x800
sub r13d, r14d
shr r13d, 5
add r13d, r14d
xor r8d, r15d
jmp 0x140006fd1
sub edx, eax
mov eax, r11d
shr eax, 5
sub r11d, eax
or edi, 1
mov ebp, r11d
mov eax, edx
mov ebx, r14d
mov word [rcx + r8*2], bp
mov edx, edi
movzx r11d, word [rcx + rdx*2]
cmp eax, 0xffffff
ja 0x140006f8e
shl eax, 8
shl ebx, 8
movzx r8d, byte [r10]
inc r10
or r8d, ebx
mov ebx, r8d
mov r8d, eax
shr r8d, 0xb
imul r8d, r11d
lea edi, [rdx + rdx]
mov r14d, ebx
sub r14d, r8d
jae 0x14000703b
mov ebp, 0x800
sub ebp, r11d
shr ebp, 5
add ebp, r11d
jmp 0x140007054
sub eax, edi
mov edi, r14d
shr edi, 5
sub r14d, edi
or edx, 1
mov r13d, r14d
mov edi, eax
mov ebx, r12d
mov word [rcx + r11*2], r13w
mov eax, ebp
shl eax, 7
mov r14d, r8d
and eax, r8d
mov r11d, edx
add r11, r14
add r11, rax
movzx r14d, word [rcx + r11*2]
cmp edi, 0xffffff
ja 0x14000700a
shl edi, 8
shl ebx, 8
movzx r15d, byte [r10]
inc r10
or r15d, ebx
mov ebx, r15d
mov r15d, edi
shr r15d, 0xb
imul r15d, r14d
add edx, edx
mov r12d, ebx
sub r12d, r15d
jae 0x1400070b1
mov r13d, 0x800
sub r13d, r14d
shr r13d, 5
add r13d, r14d
xor eax, r8d
jmp 0x1400070ca
sub eax, r8d
mov r8d, r11d
shr r8d, 5
sub r11d, r8d
or edi, 1
mov ebp, r11d
mov r8d, eax
mov ebx, r14d
mov r14, qword [rsp + 0x20]
mov word [rcx + rdx*2], bp
mov r11d, edi
movzx edi, word [rcx + r11*2]
cmp r8d, 0xffffff
ja 0x140007080
shl r8d, 8
shl ebx, 8
movzx eax, byte [r10]
inc r10
or eax, ebx
mov ebx, eax
mov eax, r8d
shr eax, 0xb
imul eax, edi
lea edx, [r11 + r11]
mov ebp, ebx
sub ebp, eax
jae 0x14000714a
mov r8d, 0x800
sub r8d, edi
shr r8d, 5
add r8d, edi
mov word [rcx + r11*2], r8w
jmp 0x140007181
sub edi, r15d
mov r8d, r14d
shr r8d, 5
sub r14d, r8d
or edx, 1
mov r13d, r14d
mov r15d, edi
mov ebx, r12d
mov r12, qword [rsp + 0x30]
mov word [rcx + r11*2], r13w
shl ebp, 8
mov r11d, eax
and ebp, eax
mov r8d, edx
add r8, r11
add r8, rbp
movzx r11d, word [rcx + r8*2]
cmp r15d, 0xffffff
mov r14, qword [rsp + 0x20]
ja 0x14000710a
shl r15d, 8
shl ebx, 8
movzx eax, byte [r10]
inc r10
or eax, ebx
mov ebx, eax
mov r13d, dword [rsp + 0x40]
xor eax, eax
movzx edi, byte [rsp + 0x1c]
mov al, dil
lea eax, [rax + rax*2]
add r12d, eax
add r12d, 0xfffffffa
mov eax, r15d
shr eax, 0xb
imul eax, r11d
add edx, edx
mov edi, ebx
sub edi, eax
jae 0x140007163
mov edi, 0x800
sub edi, r11d
shr edi, 5
add edi, r11d
mov word [rcx + r8*2], di
jmp 0x14000717c
sub r8d, eax
mov eax, edi
shr eax, 5
sub edi, eax
mov word [rcx + r11*2], di
or edx, 1
mov eax, r8d
mov ebx, ebp
jmp 0x140007181
sub r15d, eax
mov eax, r11d
shr eax, 5
sub r11d, eax
mov word [rcx + r8*2], r11w
or edx, 1
mov eax, r15d
mov ebx, edi
mov r15, qword [rsp + 0x10]
mov byte [r15 + rsi], dl
inc rsi
mov ecx, 1
jmp 0x140007d48
sub r15d, eax
mov eax, edx
shr eax, 5
sub edx, eax
mov word [r14 + r8*2 - 0xc00], dx
mov r14d, dword [rsp + 8]
mov r8d, dword [rsp + 4]
mov ebx, dword [rsp + 0xc]
jmp 0x140007248
sub eax, r15d
mov r11d, r9d
shr r11d, 5
sub r9d, r11d
mov word [r14 + rdx*2 + 0x50], r9w
cmp eax, 0xffffff
ja 0x1400071e3
shl eax, 8
shl r8d, 8
movzx r9d, byte [r10]
inc r10
or r8d, r9d
movzx r11d, word [r14 + rdx*2 + 0x68]
mov r15d, eax
shr r15d, 0xb
imul r15d, r11d
mov edi, r8d
sub edi, r15d
jae 0x14000720e
mov r9d, 0x800
sub r9d, r11d
shr r9d, 5
add r9d, r11d
jmp 0x14000722e
sub eax, r15d
mov r8d, r11d
shr r8d, 5
sub r11d, r8d
mov r9d, r11d
mov r15d, eax
mov r8d, edi
mov eax, ebx
mov ebx, dword [rsp + 0x2c]
mov dword [rsp + 0x2c], eax
mov r11d, dword [rsp + 4]
mov eax, ebx
mov word [r14 + rdx*2 + 0x68], r9w
mov r14d, r11d
mov ebp, r8d
mov r8d, ebx
mov ebx, dword [rsp + 8]
xor eax, eax
cmp r12d, 7
setae al
lea r12d, [rax + rax*2]
or r12d, 8
mov rdx, qword [rsp + 0x80]
mov dword [rsp + 4], r8d
movzx r9d, word [rdx]
cmp r15d, 0xffffff
ja 0x140007283
shl r15d, 8
shl ebp, 8
movzx eax, byte [r10]
inc r10
or ebp, eax
mov r8d, r15d
shr r8d, 0xb
imul r8d, r9d
mov eax, ebp
sub eax, r8d
mov dword [rsp + 0x30], ebx
jae 0x140007300
mov eax, 0x800
sub eax, r9d
shr eax, 5
add eax, r9d
mov word [rdx], ax
cmp r8d, 0xffffff
ja 0x1400072c3
shl r8d, 8
shl ebp, 8
movzx eax, byte [r10]
inc r10
or ebp, eax
mov r15, qword [rsp + 0x10]
mov ecx, ecx
movzx r11d, word [rdx + rcx*2 + 2]
mov eax, r8d
shr eax, 0xb
imul eax, r11d
mov ebx, ebp
sub ebx, eax
jae 0x1400073b1
mov edi, 0x800
sub edi, r11d
shr edi, 5
add edi, r11d
mov r9d, 2
jmp 0x1400073cb
sub r15d, r8d
mov r8d, r9d
shr r8d, 5
sub r9d, r8d
mov word [rdx], r9w
cmp r15d, 0xffffff
ja 0x14000732b
shl r15d, 8
shl eax, 8
movzx r8d, byte [r10]
inc r10
or eax, r8d
movzx r8d, word [rdx + 0x10]
mov r9d, r15d
shr r9d, 0xb
imul r9d, r8d
mov ebx, eax
sub ebx, r9d
jae 0x14000741b
add rdx, 0x10
mov r11d, 0x800
sub r11d, r8d
shr r11d, 5
add r11d, r8d
mov word [rdx], r11w
cmp r9d, 0xffffff
ja 0x140007378
shl r9d, 8
shl eax, 8
movzx r8d, byte [r10]
inc r10
or eax, r8d
mov r15, qword [rsp + 0x10]
mov ecx, ecx
movzx edi, word [rdx + rcx*2 + 2]
mov r8d, r9d
shr r8d, 0xb
imul r8d, edi
mov ebp, eax
sub ebp, r8d
jae 0x140007881
mov ebx, 0x800
sub ebx, edi
shr ebx, 5
add ebx, edi
mov r11d, 2
jmp 0x140007898
sub r8d, eax
mov eax, r11d
shr eax, 5
sub r11d, eax
mov r9d, 3
mov edi, r11d
mov eax, r8d
mov ebp, ebx
lea rcx, [rdx + rcx*2]
mov word [rcx + 2], di
cmp eax, 0xffffff
ja 0x1400073e9
shl eax, 8
shl ebp, 8
movzx edx, byte [r10]
inc r10
or ebp, edx
mov r8d, r9d
movzx r11d, word [rcx + r8*2]
mov edx, eax
shr edx, 0xb
imul edx, r11d
lea r9d, [r8 + r8]
mov ebx, ebp
sub ebx, edx
jae 0x1400074b3
mov edi, 0x800
sub edi, r11d
shr edi, 5
add edi, r11d
jmp 0x1400074c9
sub r15d, r9d
mov eax, r8d
shr eax, 5
sub r8d, eax
mov word [rdx + 0x10], r8w
mov r9d, 1
mov eax, r15d
mov r15, qword [rsp + 0x10]
jmp 0x14000746d
sub r8d, eax
mov eax, r11d
shr eax, 5
sub r11d, eax
or r9d, 1
mov edi, r11d
mov eax, r8d
mov ebx, ebp
mov word [rdx + rcx*2 + 0x200], di
cmp r9d, 0x100
jae 0x140007510
cmp eax, 0xffffff
ja 0x140007483
shl eax, 8
shl ebx, 8
movzx ecx, byte [r10]
inc r10
or ebx, ecx
mov r8d, eax
mov ecx, r9d
movzx r11d, word [rdx + rcx*2 + 0x200]
shr eax, 0xb
imul eax, r11d
lea r9d, [rcx + rcx]
mov ebp, ebx
sub ebp, eax
jae 0x140007440
mov edi, 0x800
sub edi, r11d
shr edi, 5
add edi, r11d
jmp 0x140007458
sub eax, edx
mov edx, r11d
shr edx, 5
sub r11d, edx
or r9d, 1
mov edi, r11d
mov edx, eax
mov ebp, ebx
mov word [rcx + r8*2], di
mov r8d, r9d
movzx r11d, word [rcx + r8*2]
cmp edx, 0xffffff
ja 0x1400074ed
shl edx, 8
shl ebp, 8
movzx eax, byte [r10]
inc r10
or ebp, eax
mov eax, edx
shr eax, 0xb
imul eax, r11d
lea r9d, [r8 + r8]
mov ebx, ebp
sub ebx, eax
jae 0x140007519
mov edi, 0x800
sub edi, r11d
shr edi, 5
add edi, r11d
jmp 0x14000752f
add r9d, 0xffffff10
jmp 0x14000753a
sub edx, eax
mov eax, r11d
shr eax, 5
sub r11d, eax
or r9d, 1
mov edi, r11d
mov eax, edx
mov ebp, ebx
mov word [rcx + r8*2], di
add r9d, 0xfffffff8
mov ebx, ebp
cmp r12d, 0xc
jb 0x1400075a0
cmp r9d, 3
mov ecx, 3
cmovb ecx, r9d
shl ecx, 6
cmp eax, 0xffffff
ja 0x140007568
shl eax, 8
shl ebx, 8
movzx edx, byte [r10]
inc r10
or edx, ebx
mov ebx, edx
mov rdx, qword [rsp + 0x60]
movzx r11d, word [rdx + rcx*2 + 2]
mov edx, eax
shr edx, 0xb
imul edx, r11d
mov ebp, ebx
sub ebp, edx
jae 0x1400075b7
mov edi, 0x800
sub edi, r11d
shr edi, 5
add edi, r11d
mov r8d, 2
jmp 0x1400075cf
mov ecx, dword [rsp + 0x30]
mov dword [rsp + 0xc], ecx
mov dword [rsp + 8], r14d
mov r8d, dword [rsp + 4]
jmp 0x140007b91
sub eax, edx
mov edx, r11d
shr edx, 5
sub r11d, edx
mov r8d, 3
mov edi, r11d
mov edx, eax
mov ebx, ebp
mov rax, qword [rsp + 0x60]
lea rcx, [rax + rcx*2]
mov word [rcx + 2], di
cmp edx, 0xffffff
mov dword [rsp + 0x1c], r14d
ja 0x1400075fa
shl edx, 8
shl ebx, 8
movzx eax, byte [r10]
inc r10
or eax, ebx
mov ebx, eax
mov r8d, r8d
movzx edi, word [rcx + r8*2]
mov eax, edx
shr eax, 0xb
imul eax, edi
lea r11d, [r8 + r8]
mov r14d, ebx
sub r14d, eax
jae 0x140007624
mov ebp, 0x800
sub ebp, edi
shr ebp, 5
add ebp, edi
jmp 0x140007638
sub edx, eax
mov eax, edi
shr eax, 5
sub edi, eax
or r11d, 1
mov ebp, edi
mov eax, edx
mov ebx, r14d
mov word [rcx + r8*2], bp
mov r8d, r11d
movzx r11d, word [rcx + r8*2]
cmp eax, 0xffffff
ja 0x14000765d
shl eax, 8
shl ebx, 8
movzx edx, byte [r10]
inc r10
or edx, ebx
mov ebx, edx
mov edx, eax
shr edx, 0xb
imul edx, r11d
lea edi, [r8 + r8]
mov r14d, ebx
sub r14d, edx
jae 0x140007682
mov ebp, 0x800
sub ebp, r11d
shr ebp, 5
add ebp, r11d
jmp 0x140007698
sub eax, edx
mov edx, r11d
shr edx, 5
sub r11d, edx
or edi, 1
mov ebp, r11d
mov edx, eax
mov ebx, r14d
mov word [rcx + r8*2], bp
mov r8d, edi
movzx r11d, word [rcx + r8*2]
cmp edx, 0xffffff
ja 0x1400076be
shl edx, 8
shl ebx, 8
movzx eax, byte [r10]
inc r10
or eax, ebx
mov ebx, eax
mov eax, edx
shr eax, 0xb
imul eax, r11d
lea edi, [r8 + r8]
mov r14d, ebx
sub r14d, eax
jae 0x1400076e3
mov ebp, 0x800
sub ebp, r11d
shr ebp, 5
add ebp, r11d
jmp 0x1400076f9
sub edx, eax
mov eax, r11d
shr eax, 5
sub r11d, eax
or edi, 1
mov ebp, r11d
mov eax, edx
mov ebx, r14d
mov word [rcx + r8*2], bp
mov r8d, edi
movzx r11d, word [rcx + r8*2]
cmp eax, 0xffffff
ja 0x14000771e
shl eax, 8
shl ebx, 8
movzx edx, byte [r10]
inc r10
or edx, ebx
mov ebx, edx
mov edx, eax
shr edx, 0xb
imul edx, r11d
lea edi, [r8 + r8]
mov r14d, ebx
sub r14d, edx
jae 0x140007743
mov ebp, 0x800
sub ebp, r11d
shr ebp, 5
add ebp, r11d
jmp 0x140007759
sub eax, edx
mov edx, r11d
shr edx, 5
sub r11d, edx
or edi, 1
mov ebp, r11d
mov edx, eax
mov ebx, r14d
mov word [rcx + r8*2], bp
mov r11d, edi
movzx edi, word [rcx + r11*2]
cmp edx, 0xffffff
ja 0x14000777f
shl edx, 8
shl ebx, 8
movzx eax, byte [r10]
inc r10
or eax, ebx
mov ebx, eax
mov eax, edx
shr eax, 0xb
imul eax, edi
lea r8d, [r11 + r11]
mov r14d, ebx
sub r14d, eax
jae 0x1400077a1
mov ebp, 0x800
sub ebp, edi
shr ebp, 5
add ebp, edi
jmp 0x1400077b5
sub edx, eax
mov eax, edi
shr eax, 5
sub edi, eax
or r8d, 1
mov ebp, edi
mov eax, edx
mov ebx, r14d
mov r14, qword [rsp + 0x20]
mov word [rcx + r11*2], bp
lea r11d, [r8 - 0x40]
cmp r11d, 4
jb 0x140007b52
mov ecx, r11d
shr ecx, 1
and r8d, 1
or r8d, 2
cmp r11d, 0xd
ja 0x1400078e2
dec ecx
shl r8d, cl
inc r8d
mov edx, 1
jmp 0x140007838
sub edi, eax
mov eax, ebp
shr eax, 5
sub ebp, eax
mov r14d, ebp
mov eax, edi
mov ebx, r15d
mov edx, r11d
mov r15, qword [rsp + 0x10]
mov rdi, qword [rsp + 0x20]
mov word [rdi + r8*2 - 0xd00], r14w
mov r14, rdi
add r8d, edx
mov edx, r11d
dec ecx
je 0x14000792e
cmp eax, 0xffffff
ja 0x14000784f
shl eax, 8
shl ebx, 8
movzx r11d, byte [r10]
inc r10
or ebx, r11d
mov edi, eax
mov r8d, r8d
movzx ebp, word [r14 + r8*2 - 0xd00]
shr eax, 0xb
imul eax, ebp
lea r11d, [rdx + rdx]
mov r15d, ebx
sub r15d, eax
jae 0x140007800
mov r14d, 0x800
sub r14d, ebp
shr r14d, 5
add r14d, ebp
jmp 0x140007814
sub r9d, r8d
mov eax, edi
shr eax, 5
sub edi, eax
mov r11d, 3
mov ebx, edi
mov r8d, r9d
mov eax, ebp
lea rcx, [rdx + rcx*2]
mov word [rcx + 2], bx
cmp r8d, 0xffffff
ja 0x1400078b9
shl r8d, 8
shl eax, 8
movzx edx, byte [r10]
inc r10
or eax, edx
mov r9d, r11d
movzx edi, word [rcx + r9*2]
mov edx, r8d
shr edx, 0xb
imul edx, edi
lea r11d, [r9 + r9]
mov ebp, eax
sub ebp, edx
jae 0x140007939
mov ebx, 0x800
sub ebx, edi
shr ebx, 5
add ebx, edi
jmp 0x14000794e
add ecx, 0xfffffffb
jmp 0x140007923
shl eax, 8
shl ebx, 8
movzx r11d, byte [r10]
inc r10
or r11d, ebx
mov edx, eax
mov ebx, r11d
shr eax, 1
mov r11d, ebx
sub r11d, eax
mov ebx, r11d
sar ebx, 0x1f
lea r8d, [rbx + r8*2]
inc r8d
and ebx, eax
add ebx, r11d
dec ecx
je 0x140007974
cmp eax, 0xffffff
jbe 0x1400078f0
mov edx, eax
jmp 0x140007905
sub r8d, r11d
mov r11d, r8d
jmp 0x140007b52
sub r8d, edx
mov eax, edi
shr eax, 5
sub edi, eax
or r11d, 1
mov ebx, edi
mov edx, r8d
mov eax, ebp
mov word [rcx + r9*2], bx
mov r8d, r11d
movzx r11d, word [rcx + r8*2]
cmp edx, 0xffffff
ja 0x1400079b6
shl edx, 8
shl eax, 8
movzx ebx, byte [r10]
inc r10
or ebx, eax
jmp 0x1400079b8
cmp edx, 0x1ffffff
ja 0x14000798d
shl eax, 8
shl ebx, 8
movzx ecx, byte [r10]
inc r10
or ecx, ebx
mov ebx, ecx
movzx r11d, word [r14 + 2]
mov ecx, eax
shr ecx, 0xb
imul ecx, r11d
mov ebp, ebx
sub ebp, ecx
jae 0x140007a00
mov edi, 0x800
sub edi, r11d
shr edi, 5
add edi, r11d
mov edx, 2
jmp 0x140007a17
mov ebx, eax
mov eax, edx
shr eax, 0xb
imul eax, r11d
lea r9d, [r8 + r8]
mov edi, ebx
sub edi, eax
jae 0x1400079e3
mov edx, 0x800
sub edx, r11d
shr edx, 5
add edx, r11d
mov word [rcx + r8*2], dx
jmp 0x14000753a
sub edx, eax
mov eax, r11d
shr eax, 5
sub r11d, eax
mov word [rcx + r8*2], r11w
or r9d, 1
mov eax, edx
mov ebx, edi
jmp 0x14000753a
sub eax, ecx
mov ecx, r11d
shr ecx, 5
sub r11d, ecx
mov edx, 3
mov edi, r11d
mov ecx, eax
mov ebx, ebp
mov word [r14 + 2], di
cmp ecx, 0xffffff
ja 0x140007a35
shl ecx, 8
shl ebx, 8
movzx eax, byte [r10]
inc r10
or eax, ebx
mov ebx, eax
mov edx, edx
movzx r11d, word [r14 + rdx*2]
mov eax, ecx
shr eax, 0xb
imul eax, r11d
mov ebp, ebx
sub ebp, eax
jae 0x140007a5f
mov edi, 0x800
sub edi, r11d
shr edi, 5
add edi, r11d
lea r14d, [rdx + 2]
jmp 0x140007a75
sub ecx, eax
mov eax, r11d
shr eax, 5
sub r11d, eax
lea r14d, [rdx + 4]
mov edi, r11d
mov eax, ecx
mov ebx, ebp
mov rcx, qword [rsp + 0x20]
mov word [rcx + rdx*2], di
mov r11d, r14d
movzx edx, word [rcx + r11*2]
cmp eax, 0xffffff
ja 0x140007a9e
shl eax, 8
shl ebx, 8
movzx ecx, byte [r10]
inc r10
or ecx, ebx
mov ebx, ecx
mov ecx, eax
shr ecx, 0xb
imul ecx, edx
mov ebp, ebx
sub ebp, ecx
jae 0x140007ac0
mov edi, 0x800
sub edi, edx
shr edi, 5
add edi, edx
mov r14d, 4
jmp 0x140007ad5
sub eax, ecx
mov ecx, edx
shr ecx, 5
sub edx, ecx
mov r14d, 8
mov edi, edx
mov ecx, eax
mov ebx, ebp
lea edx, [r11 + r14]
mov r14, qword [rsp + 0x20]
mov word [r14 + r11*2], di
movzx r11d, word [r14 + rdx*2]
cmp ecx, 0xffffff
ja 0x140007b01
shl ecx, 8
shl ebx, 8
movzx eax, byte [r10]
inc r10
or eax, ebx
mov ebx, eax
shl r8d, 4
mov eax, ecx
shr eax, 0xb
imul eax, r11d
mov ebp, ebx
sub ebp, eax
jae 0x140007b2b
mov edi, 0x800
sub edi, r11d
shr edi, 5
add edi, r11d
mov r11d, edx
add r11d, 0xfffffff8
jmp 0x140007b40
sub ecx, eax
mov eax, r11d
shr eax, 5
sub r11d, eax
mov edi, r11d
mov eax, ecx
mov ebx, ebp
mov r11d, edx
or r11d, r8d
mov word [r14 + rdx*2], di
cmp r11d, 0xffffffff
je 0x140007e12
mov edi, dword [rsp + 0x1c]
mov ebp, dword [rsp + 4]
lea r8d, [r11 + 1]
xor ecx, ecx
cmp r12d, 0x13
setae cl
mov edx, dword [rsp + 0x44]
test edx, edx
lea r12d, [rcx + rcx*2 + 7]
mov ecx, edx
cmove ecx, r13d
cmp r11d, ecx
jae 0x140007d70
mov ecx, dword [rsp + 0x30]
mov dword [rsp + 0x2c], ecx
mov dword [rsp + 0xc], edi
mov dword [rsp + 8], ebp
add r9d, 2
mov rcx, qword [rsp + 0x48]
sub rcx, rsi
mov dword [rsp + 4], r8d
je 0x140007d62
mov edx, r9d
cmp rcx, rdx
cmovae ecx, r9d
mov r11d, r8d
mov rdx, rsi
sub rdx, r11
mov r14d, 0
mov r8, qword [rsp + 0x38]
cmovb r14, r8
add rdx, r14
sub r9d, ecx
sub r8, rdx
cmp r8, rcx
jae 0x140007bf0
test cl, 1
jne 0x140007c33
mov r8d, ecx
jmp 0x140007c55
lea r8, [r15 + rsi]
sub rdx, rsi
mov rdi, r8
cmp ecx, 8
jb 0x140007d21
add r14, r15
add r14, rsi
sub r11, r14
add r11, r15
add r11, rsi
mov rdi, r8
cmp r11, 0x20
jb 0x140007d21
cmp ecx, 0x20
jae 0x140007ca6
mov rbp, r12
xor r11d, r11d
jmp 0x140007ce7
movzx r8d, byte [r15 + rdx]
mov byte [r15 + rsi], r8b
inc rsi
inc rdx
cmp rdx, qword [rsp + 0x38]
mov r8d, 0
cmove rdx, r8
lea r8d, [rcx - 1]
mov r14, qword [rsp + 0x20]
cmp ecx, 1
mov rdi, qword [rsp + 0x38]
mov ebp, 0
je 0x140007d48
nop dword [rax]
movzx r11d, byte [r15 + rdx]
mov byte [r15 + rsi], r11b
inc rdx
cmp rdx, rdi
cmove rdx, rbp
movzx r11d, byte [r15 + rdx]
mov byte [r15 + rsi + 1], r11b
add rsi, 2
inc rdx
cmp rdx, rdi
cmove rdx, rbp
add r8d, 0xfffffffe
jne 0x140007c70
jmp 0x140007d48
mov r11d, ecx
and r11d, 0xffffffe0
mov rdi, qword [rsp + 0x70]
add rdi, rsi
mov r14, r11
nop dword [rax + rax]
movups xmm0, xmmword [rdi + rdx - 0x10]
movups xmm1, xmmword [rdi + rdx]
movups xmmword [rdi - 0x10], xmm0
movups xmmword [rdi], xmm1
add rdi, 0x20
add r14, 0xffffffffffffffe0
jne 0x140007cc0
cmp r11, rcx
je 0x140007d40
test cl, 0x18
je 0x140007d1b
mov rbp, r12
mov r14d, ecx
and r14d, 0xfffffff8
lea rdi, [r8 + r14]
lea r15, [rsi + r11]
add r15, qword [rsp + 0x10]
sub r11, r14
nop
mov r12, qword [r15 + rdx]
mov qword [r15], r12
add r15, 8
add r11, 8
jne 0x140007d00
cmp r14, rcx
mov r12, rbp
jne 0x140007d21
jmp 0x140007d40
add r11, r8
mov rdi, r11
add r8, rcx
nop word cs:[rax + rax]
movzx r11d, byte [rdi + rdx]
mov byte [rdi], r11b
inc rdi
cmp rdi, r8
jne 0x140007d30
add rsi, rcx
mov r14, qword [rsp + 0x20]
add r13d, ecx
cmp rsi, qword [rsp + 0x48]
jae 0x140007d8c
cmp r10, qword [rsp + 0x90]
jb 0x140006760
jmp 0x140007d8c
mov rsi, qword [rsp + 0x48]
cmp eax, 0xffffff
jbe 0x140007d93
jmp 0x140007da4
mov dword [rsp + 4], r8d
add r9d, 0x202
mov dword [rsp + 8], ebp
mov dword [rsp + 0xc], edi
mov ecx, dword [rsp + 0x30]
mov dword [rsp + 0x2c], ecx
cmp eax, 0xffffff
ja 0x140007da4
shl eax, 8
shl ebx, 8
movzx ecx, byte [r10]
inc r10
or ecx, ebx
mov ebx, ecx
mov edx, dword [rsp + 4]
mov r8d, dword [rsp + 8]
mov rcx, qword [rsp + 0x78]
mov qword [rcx + 0x30], r10
mov dword [rcx + 0x38], eax
mov dword [rcx + 0x3c], ebx
mov dword [rcx + 0x5c], r9d
mov qword [rcx + 0x28], rsi
mov dword [rcx + 0x40], r13d
mov dword [rcx + 0x48], edx
mov dword [rcx + 0x4c], r8d
mov eax, dword [rsp + 0xc]
mov dword [rcx + 0x50], eax
mov eax, dword [rsp + 0x2c]
mov dword [rcx + 0x54], eax
mov dword [rcx + 0x58], r12d
cmp dword [rcx + 0x44], 0
jne 0x140007df2
mov eax, dword [rcx + 4]
cmp r13d, eax
jb 0x140007df2
mov dword [rcx + 0x44], eax
xor eax, eax
cmp r9d, 0x200
setae al
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
add r12d, 0xfffffff4
mov r9d, 0x112
mov ecx, dword [rsp + 0x1c]
mov dword [rsp + 8], ecx
mov ecx, dword [rsp + 0x30]
mov dword [rsp + 0xc], ecx
cmp eax, 0xffffff
jbe 0x140007d93
jmp 0x140007da4