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

Disassembly:
mov qword [rsp + 0x20], r9
mov dword [rsp + 0x18], r8d
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbx
push rbp
push r12
push r13
push r15
sub rsp, 0x120
mov r15, qword [rcx + 0xb0]
mov r13d, edx
mov rbp, qword [rcx + 0x50]
mov rax, r15
sub rbp, r15
shr rax, 0x1e
mov qword [rsp + 0x98], r15
mov rbx, rcx
mov qword [rsp + 0xb8], rbp
cmp rax, 2
jbe 0x1400443af
dec eax
and r15d, 0x3fffffff
and eax, 1
inc eax
shl eax, 0x1e
or r15d, eax
mov qword [rsp + 0x98], r15
mov qword [rsp + 0x108], r14
call fcn.140047a40
mov rcx, rbx
mov qword [rsp + 0xc0], rax
call fcn.140045ee0
test eax, eax
je 0x140045d5f
cmp dword [rbx + 0x14f8], 0
mov eax, dword [rbx + 0x5c]
mov r14, qword [rbx + 0x78]
mov dword [rsp + 0x80], eax
jne 0x140045d5f
test r13d, r13d
je 0x1400443fe
mov dword [rbx + 0x14f8], 1
mov rcx, rbx
call fcn.140045ee0
xor r8d, r8d
test eax, eax
jne 0x140044412
mov eax, r8d
jmp 0x14004441d
mov ecx, dword [rbx + 0xc]
mov eax, 1
shl rax, cl
cmp rbp, rax
ja 0x140045d5f
cmp dword [rbx + 4], 1
mov qword [rsp + 0x110], rdi
jne 0x14004446a
cmp qword [rbx + 0x14b8], r8
jne 0x14004446a
mov edx, 0x80000
lea rcx, [rbx + 0x30]
call fcn.140047a50
mov edx, 0x20000
mov qword [rbx + 0x14b8], rax
lea rcx, [rbx + 0x30]
call fcn.140047a50
mov qword [rbx + 0x14c0], rax
xor r8d, r8d
mov edi, dword [rbx + 4]
mov qword [rsp + 0x118], rsi
cmp edi, 1
jbe 0x140045c07
mov rdx, qword [rbx + 0x90]
mov eax, edi
inc rdx
mov ecx, ebp
shr rcx, 1
add rdx, rcx
mov esi, ebp
cmp rdx, qword [rbx + 0x80]
jbe 0x140044501
mov eax, ebp
shr eax, 2
add eax, 0x10
add rdx, rax
mov qword [rbx + 0x80], rdx
je 0x1400444c3
shl rdx, 4
lea rcx, [rbx + 0x30]
call fcn.140047a50
mov rdi, rax
jmp 0x1400444c6
mov rdi, r8
mov rdx, qword [rbx + 0x88]
test rdx, rdx
je 0x1400444f5
mov r8, qword [rbx + 0x90]
mov rcx, rdi
shl r8, 4
call sub.VCRUNTIME140.dll_memcpy
mov rdx, qword [rbx + 0x88]
lea rcx, [rbx + 0x30]
call fcn.140047a80
mov qword [rbx + 0x88], rdi
mov edi, dword [rbx + 4]
mov eax, edi
mov r12d, dword [rsp + 0x80]
mov qword [rsp + 0x90], r12
mov r13d, r15d
test r15d, r15d
jne 0x14004452c
cmp dword [rsp + 0x158], r15d
je 0x14004452c
lea ebp, [r15 + 1]
xor r10d, r10d
jmp 0x140044534
xor r10d, r10d
mov edi, eax
mov ebp, r10d
cmp qword [rbx + 0x48], 0
lea r9, [0x140000000]
mov r11d, 0x10
jne 0x140044837
cmp edi, 9
jle 0x14004457b
mov dword [rbx + 0x1c], 0xa
mov ecx, dword [rbx + 8]
mov edx, 1
shl rdx, cl
test ebp, ebp
je 0x14004456e
cmp rsi, rdx
cmovb rdx, rsi
lea rdx, [rdx*8 + 0x80038]
jmp 0x1400446ea
mov edx, 0x28
cmp edi, 4
jne 0x1400445a0
cmp qword [rbx + 0x10], 0x100000
jb 0x1400445c2
mov dword [rbx + 0x1c], 0x36
mov edx, 0x400038
jmp case.0x1400445ed.10
cmp edi, 5
jl 0x1400445c2
mov ecx, dword [rbx + 8]
cmp ecx, r11d
jg 0x140044617
cmp edi, 7
jge 0x1400445b6
mov edi, edx
jmp 0x1400445c2
cmp edi, 9
mov eax, r10d
setge al
lea edi, [rax + 0x29]
mov eax, edi
lea rcx, [rbx + 0x1c]
add edi, 0xfffffffe
mov dword [rcx], eax
cmp edi, 0x34
ja case.0x1400445ed.10
movsxd rax, edi
movzx eax, byte [r9 + rax + 0x45d8c]
mov ecx, dword [r9 + rax*4 + 0x45d68]
add rcx, r9
jmp rcx
mov edx, 0x4002c
jmp case.0x1400445ed.10
mov edx, 0x40030
jmp case.0x1400445ed.10
mov edx, 0x80038
jmp case.0x1400445ed.10
mov edx, 0x140430
jmp case.0x1400445ed.10
cmp qword [rbx + 0x10], 0x100000
jb 0x140044688
cmp ecx, 0x13
jl 0x140044688
dec eax
mov dword [rbx + 0x1c], 6
mov dword [rbx + 0x24], eax
mov dword [rbx + 0x20], 0xf
mov dword [rbx + 0x28], 5
mov edx, dword [rbx + 4]
cmp edx, 7
jge 0x14004464f
mov eax, 4
jmp 0x14004465d
cmp edx, 9
mov eax, r11d
mov ecx, 0xa
cmovl eax, ecx
mov dword [rbx + 0x2c], eax
mov ecx, dword [rbx + 0x24]
mov eax, 1
shl rax, cl
mov ecx, dword [rbx + 0x20]
lea rdx, [rax*4 + 2]
mov eax, 1
shl rax, cl
imul rdx, rax
add rdx, 0x50
jmp 0x1400446ea
dec eax
mov dword [rbx + 0x1c], 5
mov dword [rbx + 0x24], eax
mov eax, r10d
cmp dword [rbx + 4], 7
setge al
add eax, 0xe
mov dword [rbx + 0x20], eax
mov edx, dword [rbx + 4]
cmp edx, 7
jge 0x1400446b3
mov eax, 4
jmp 0x1400446c1
cmp edx, 9
mov eax, r11d
mov ecx, 0xa
cmovl eax, ecx
mov dword [rbx + 0x2c], eax
mov ecx, dword [rbx + 0x24]
mov eax, 1
shl rax, cl
mov ecx, dword [rbx + 0x20]
lea rdx, [rax*4 + 2]
mov eax, 1
shl rax, cl
imul rdx, rax
add rdx, 0x40
test rdx, rdx
je 0x140044707
lea rcx, [rbx + 0x30]
call fcn.140047a50
mov rcx, rax
lea r9, [0x140000000]
xor r10d, r10d
jmp 0x14004470a
mov rcx, r10
mov qword [rbx + 0x48], rcx
movups xmm0, xmmword [rbx + 0x1c]
movups xmmword [rcx], xmm0
mov eax, dword [rbx + 0x2c]
mov dword [rcx + 0x10], eax
mov eax, dword [rcx]
add eax, 0xfffffffe
cmp eax, 0x34
ja case.0x14004473f.2
cdqe
movzx eax, byte [r9 + rax + 0x45de0]
mov ecx, dword [r9 + rax*4 + 0x45dc4]
add rcx, r9
jmp rcx
mov rdx, qword [rbx + 0x48]
mov eax, 0x20
sub eax, dword [rdx + 4]
mov dword [rdx + 0x38], eax
mov eax, 1
mov ecx, dword [rdx + 4]
shl rax, cl
mov qword [rdx + 0x28], rax
mov eax, 1
mov ecx, dword [rdx + 8]
shl rax, cl
mov qword [rdx + 0x30], rax
dec eax
mov dword [rdx + 0x3c], eax
jmp case.0x14004473f.2
mov rdx, qword [rbx + 0x48]
mov eax, 0x40
mov ecx, 8
sub eax, dword [rdx + 4]
mov dword [rdx + 0x38], eax
mov rax, 0xffffffffffffffff
sub ecx, dword [rdx + 0xc]
shl ecx, 3
shr rax, cl
mov qword [rdx + 0x40], rax
mov eax, 1
mov ecx, dword [rdx + 4]
shl rax, cl
mov qword [rdx + 0x28], rax
mov eax, 1
mov ecx, dword [rdx + 8]
shl rax, cl
mov qword [rdx + 0x30], rax
dec eax
mov dword [rdx + 0x48], eax
jmp case.0x14004473f.2
mov ecx, dword [rbx + 4]
mov eax, r10d
cmp ecx, 6
setle al
add ecx, 0xfffffffc
add eax, 7
shl eax, cl
mov ecx, eax
mov rax, qword [rbx + 0x48]
mov qword [rax + 0x80030], rcx
jmp case.0x14004473f.2
mov ecx, dword [rbx + 4]
mov eax, r10d
cmp ecx, 6
setle al
add ecx, 0xfffffffc
add eax, 7
shl eax, cl
mov ecx, eax
mov rax, qword [rbx + 0x48]
mov qword [rax + 0x140428], rcx
jmp case.0x14004473f.2
mov ecx, dword [rbx + 8]
mov eax, 1
mov rdx, qword [rbx + 0x48]
shl eax, cl
lea ecx, [rax - 1]
mov eax, ecx
neg ecx
mov dword [rdx + 0x80030], ecx
mov qword [rdx + 0x28], rax
mov rax, qword [rbx + 0x48]
test rax, rax
je 0x140044837
mov dword [rax + 0x14], r10d
mov r15, qword [rbx + 0x48]
movabs r8, 0xbd1e35a7bd000000
movabs r11, 0x35a7bd1e35a7bd00
cmp dword [r15 + 0x14], 0
jne 0x140044a93
mov eax, dword [r15]
add eax, 0xfffffffe
cmp eax, 0x34
ja case.0x14004487f.12
cdqe
movzx eax, byte [r9 + rax + 0x45e44]
mov ecx, dword [r9 + rax*4 + 0x45e18]
add rcx, r9
jmp rcx
test ebp, ebp
je 0x1400448c0
cmp rsi, 0x800
ja 0x1400448c0
mov rcx, r10
test rsi, rsi
je case.0x14004487f.12
nop word [rax + rax]
mov rax, qword [rcx + r14]
xor edx, edx
imul rax, r8
inc rcx
shr rax, 0x30
mov dword [r15 + rax*4 + 0x28], edx
cmp rcx, rsi
jb 0x1400448a0
jmp case.0x14004487f.12
mov r8d, 0x40004
lea rcx, [r15 + 0x28]
xor edx, edx
call sub.VCRUNTIME140.dll_memset
movabs r8, 0xbd1e35a7bd000000
movabs r11, 0x35a7bd1e35a7bd00
jmp case.0x14004487f.12
test ebp, ebp
je 0x140044923
cmp rsi, 0x800
ja 0x140044923
mov rcx, r10
test rsi, rsi
je case.0x14004487f.12
mov rax, qword [rcx + r14]
xor edx, edx
imul rax, r8
inc rcx
shr rax, 0x30
mov qword [r15 + rax*4 + 0x28], rdx
cmp rcx, rsi
jb 0x140044903
jmp case.0x14004487f.12
mov r8d, 0x40008
jmp 0x1400448c6
test ebp, ebp
je 0x140044972
cmp rsi, 0x1000
ja 0x140044972
mov rcx, r10
test rsi, rsi
je case.0x14004487f.12
nop dword [rax]
nop dword [rax + rax]
mov rax, qword [rcx + r14]
xorps xmm0, xmm0
imul rax, r8
inc rcx
shr rax, 0x2f
movups xmmword [r15 + rax*4 + 0x28], xmm0
cmp rcx, rsi
jb 0x140044950
jmp case.0x14004487f.12
mov r8d, 0x80010
jmp 0x1400448c6
test ebp, ebp
je 0x1400449c2
mov rax, qword [r15 + 0x28]
shr rax, 6
cmp rsi, rax
ja 0x1400449c2
mov rdi, r10
test rsi, rsi
je case.0x14004487f.12
nop word [rax + rax]
imul edx, dword [rdi + r14], 0x1e35a7bd
inc rdi
mov ecx, dword [r15 + 0x38]
shr rdx, cl
mov word [r15 + rdx*2 + 0x40], r10w
cmp rdi, rsi
jb 0x1400449a0
jmp case.0x14004487f.12
mov r8, qword [r15 + 0x28]
lea rcx, [r15 + 0x40]
add r8, r8
jmp 0x1400448ca
mov r9, r14
mov r8, rsi
mov edx, ebp
mov rcx, r15
call fcn.140046590
jmp 0x1400448d1
mov r9, r14
mov r8, rsi
mov edx, ebp
mov rcx, r15
call fcn.140046450
jmp 0x1400448d1
mov r9, r14
mov r8, rsi
mov edx, ebp
mov rcx, r15
call fcn.140046450
jmp 0x1400448d1
mov r9, r14
mov r8, rsi
mov edx, ebp
mov rcx, r15
call fcn.1400464f0
jmp 0x1400448d1
test ebp, ebp
je 0x140044a5f
cmp rsi, 0x8000
ja 0x140044a5f
mov rcx, r10
test rsi, rsi
je case.0x14004487f.12
nop dword [rax + rax]
mov rax, qword [rcx + r14]
xorps xmm0, xmm0
imul rax, r11
inc rcx
shr rax, 0x2c
movups xmmword [r15 + rax*4 + 0x28], xmm0
cmp rcx, rsi
jb 0x140044a40
jmp case.0x14004487f.12
mov r8d, 0x400010
jmp 0x1400448c6
mov eax, dword [r15 + 0x80030]
lea rdi, [r15 + 0x30]
mov ecx, 0x20000
rep stosd dword [rdi], eax
test r13, r13
jne 0x140044a8b
xor eax, eax
mov qword [r15 + 0x18], rax
mov qword [r15 + 0x20], rax
mov dword [r15 + 0x14], 1
mov r10, qword [rbx + 0x48]
mov eax, dword [r10]
add eax, 0xfffffffe
cmp eax, 0x34
ja case.0x140044ac1.7
lea rdx, [0x140000000]
cdqe
movzx eax, byte [rdx + rax + 0x45ea4]
mov ecx, dword [rdx + rax*4 + 0x45e7c]
add rcx, rdx
jmp rcx
cmp rsi, 7
jb case.0x140044ac1.7
cmp r13, 3
jb case.0x140044ac1.7
lea rdx, [r13 - 3]
mov rax, rdx
and rax, r12
mov rcx, qword [rax + r14]
imul rcx, r8
shr rcx, 0x30
mov dword [r10 + rcx*4 + 0x28], edx
lea rdx, [r13 - 2]
mov rax, rdx
and rax, r12
mov rcx, qword [rax + r14]
imul rcx, r8
shr rcx, 0x30
mov dword [r10 + rcx*4 + 0x28], edx
lea rdx, [r13 - 1]
mov rax, rdx
and rax, r12
mov rcx, qword [rax + r14]
imul rcx, r8
shr rcx, 0x30
mov dword [r10 + rcx*4 + 0x28], edx
jmp case.0x140044ac1.7
cmp rsi, 7
jb case.0x140044ac1.7
cmp r13, 3
jb case.0x140044ac1.7
lea rdx, [r13 - 3]
mov rax, rdx
and rax, r12
mov rcx, qword [rax + r14]
mov rax, rdx
shr rax, 3
and eax, 1
imul rcx, r8
shr rcx, 0x30
add rcx, rax
mov dword [r10 + rcx*4 + 0x28], edx
lea rdx, [r13 - 2]
mov rax, rdx
and rax, r12
mov rcx, qword [rax + r14]
mov rax, rdx
shr rax, 3
and eax, 1
imul rcx, r8
shr rcx, 0x30
add rcx, rax
mov dword [r10 + rcx*4 + 0x28], edx
lea rdx, [r13 - 1]
mov rax, rdx
and rax, r12
mov rcx, qword [rax + r14]
mov rax, rdx
imul rcx, r8
shr rax, 3
shr rcx, 0x30
and eax, 1
add rcx, rax
mov dword [r10 + rcx*4 + 0x28], edx
jmp case.0x140044ac1.7
cmp rsi, 7
jb case.0x140044ac1.7
cmp r13, 3
jb case.0x140044ac1.7
lea rdx, [r13 - 3]
mov rax, rdx
and rax, r12
mov rcx, qword [rax + r14]
mov rax, rdx
shr rax, 3
imul rcx, r8
and eax, 3
shr rcx, 0x2f
add rcx, rax
mov dword [r10 + rcx*4 + 0x28], edx
lea rdx, [r13 - 2]
mov rax, rdx
and rax, r12
mov rcx, qword [rax + r14]
mov rax, rdx
imul rcx, r8
shr rax, 3
shr rcx, 0x2f
and eax, 3
add rcx, rax
mov dword [r10 + rcx*4 + 0x28], edx
lea rdx, [r13 - 1]
mov rax, rdx
and rax, r12
mov rcx, qword [rax + r14]
imul rcx, r8
shr rcx, 0x2f
mov rax, rdx
shr rax, 3
and eax, 3
add rcx, rax
mov dword [r10 + rcx*4 + 0x28], edx
jmp case.0x140044ac1.7
cmp rsi, 3
jb case.0x140044ac1.7
cmp r13, 3
jb case.0x140044ac1.7
mov ecx, dword [r10 + 0x38]
lea r9, [r13 - 3]
mov edx, dword [r10 + 0x3c]
mov rax, r9
and rax, r12
imul edi, dword [rax + r14], 0x1e35a7bd
shr edi, cl
movzx eax, word [r10 + rdi*2 + 0x40]
mov ecx, dword [r10 + 8]
and rdx, rax
lea r8, [r10 + rdi*2]
shl edi, cl
mov eax, edi
add rdx, rax
mov rax, qword [r10 + 0x28]
lea rcx, [rax + rdx*2]
mov dword [r10 + rcx*2 + 0x40], r9d
lea r9, [r13 - 2]
inc word [r8 + 0x40]
mov rax, r9
mov ecx, dword [r10 + 0x38]
and rax, r12
imul edi, dword [rax + r14], 0x1e35a7bd
mov eax, dword [r10 + 0x3c]
shr edi, cl
movzx edx, word [r10 + rdi*2 + 0x40]
lea r8, [r10 + rdi*2]
mov ecx, dword [r10 + 8]
and rdx, rax
shl edi, cl
mov eax, edi
add rdx, rax
mov rax, qword [r10 + 0x28]
lea rcx, [rax + rdx*2]
mov dword [r10 + rcx*2 + 0x40], r9d
lea r9, [r13 - 1]
inc word [r8 + 0x40]
mov rax, r9
mov ecx, dword [r10 + 0x38]
and rax, r12
imul edi, dword [rax + r14], 0x1e35a7bd
mov eax, dword [r10 + 0x3c]
shr edi, cl
mov ecx, dword [r10 + 8]
lea r8, [r10 + rdi*2]
movzx edx, word [r8 + 0x40]
and rdx, rax
shl edi, cl
mov eax, edi
add rdx, rax
mov rax, qword [r10 + 0x28]
lea rcx, [rax + rdx*2]
mov dword [r10 + rcx*2 + 0x40], r9d
inc word [r8 + 0x40]
jmp case.0x140044ac1.7
cmp rsi, 7
jb case.0x140044ac1.7
cmp r13, 3
jb case.0x140044ac1.7
mov ecx, dword [r10 + 0x38]
lea r9, [r13 - 3]
mov rax, r9
movabs r11, 0x1fe35a7bd3579bd3
and rax, r12
mov r8, qword [rax + r14]
and r8, qword [r10 + 0x40]
imul r8, r11
shr r8, cl
mov ecx, dword [r10 + 8]
mov eax, r8d
movzx edx, word [r10 + rax*2 + 0x50]
lea rdi, [r10 + rax*2]
mov eax, dword [r10 + 0x48]
and rdx, rax
shl r8d, cl
mov eax, r8d
add rdx, rax
mov rax, qword [r10 + 0x28]
lea rcx, [rax + rdx*2]
mov dword [r10 + rcx*2 + 0x50], r9d
lea r9, [r13 - 2]
inc word [rdi + 0x50]
mov rax, r9
mov ecx, dword [r10 + 0x38]
and rax, r12
mov r8, qword [rax + r14]
and r8, qword [r10 + 0x40]
imul r8, r11
shr r8, cl
mov ecx, dword [r10 + 8]
mov eax, r8d
movzx edx, word [r10 + rax*2 + 0x50]
lea rdi, [r10 + rax*2]
mov eax, dword [r10 + 0x48]
and rdx, rax
shl r8d, cl
mov eax, r8d
add rdx, rax
mov rax, qword [r10 + 0x28]
lea rcx, [rax + rdx*2]
mov dword [r10 + rcx*2 + 0x50], r9d
lea r9, [r13 - 1]
inc word [rdi + 0x50]
mov rax, r9
mov ecx, dword [r10 + 0x38]
and rax, r12
mov r8, qword [rax + r14]
and r8, qword [r10 + 0x40]
imul r8, r11
shr r8, cl
mov ecx, dword [r10 + 8]
mov eax, r8d
movzx edx, word [r10 + rax*2 + 0x50]
lea rdi, [r10 + rax*2]
mov eax, dword [r10 + 0x48]
and rdx, rax
shl r8d, cl
mov eax, r8d
add rdx, rax
mov rax, qword [r10 + 0x28]
lea rcx, [rax + rdx*2]
mov dword [r10 + rcx*2 + 0x50], r9d
inc word [rdi + 0x50]
jmp case.0x140044ac1.7
cmp rsi, 3
jb case.0x140044ac1.7
cmp r13, 3
jb case.0x140044ac1.7
movzx edx, word [r10 + 0x80028]
lea r8, [r13 - 3]
mov r11d, 0xffff
mov rax, r8
and rax, r12
mov rcx, r8
imul edi, dword [rax + r14], 0x1e35a7bd
lea eax, [rdx + 1]
mov word [r10 + 0x80028], ax
shr rdi, 0x11
mov eax, dword [r10 + rdi*4 + 0x28]
sub rcx, rax
movzx eax, r8w
cmp rcx, r11
cmova rcx, r11
mov byte [rax + r10 + 0x30028], dil
mov word [r10 + rdx*4 + 0x40028], cx
movzx eax, word [r10 + rdi*2 + 0x20028]
mov word [r10 + rdx*4 + 0x4002a], ax
mov dword [r10 + rdi*4 + 0x28], r8d
lea r8, [r13 - 2]
mov word [r10 + rdi*2 + 0x20028], dx
mov rax, r8
movzx edi, word [r10 + 0x80028]
and rax, r12
mov rcx, r8
imul edx, dword [rax + r14], 0x1e35a7bd
lea eax, [rdi + 1]
mov word [r10 + 0x80028], ax
shr rdx, 0x11
mov eax, dword [r10 + rdx*4 + 0x28]
sub rcx, rax
movzx eax, r8w
cmp rcx, r11
cmova rcx, r11
mov byte [rax + r10 + 0x30028], dl
mov word [r10 + rdi*4 + 0x40028], cx
movzx eax, word [r10 + rdx*2 + 0x20028]
mov word [r10 + rdi*4 + 0x4002a], ax
mov dword [r10 + rdx*4 + 0x28], r8d
lea r8, [r13 - 1]
mov word [r10 + rdx*2 + 0x20028], di
mov rax, r8
movzx edi, word [r10 + 0x80028]
and rax, r12
mov rcx, r8
imul edx, dword [rax + r14], 0x1e35a7bd
lea eax, [rdi + 1]
mov word [r10 + 0x80028], ax
shr rdx, 0x11
mov eax, dword [r10 + rdx*4 + 0x28]
sub rcx, rax
movzx eax, r8w
cmp rcx, r11
cmova rcx, r11
mov byte [rax + r10 + 0x30028], dl
mov word [r10 + rdi*4 + 0x40028], cx
movzx eax, word [r10 + rdx*2 + 0x20028]
mov word [r10 + rdi*4 + 0x4002a], ax
mov dword [r10 + rdx*4 + 0x28], r8d
mov word [r10 + rdx*2 + 0x20028], di
jmp case.0x140044ac1.7
cmp rsi, 3
jb case.0x140044ac1.7
cmp r13, 3
jb case.0x140044ac1.7
lea r9, [r13 - 3]
mov r11d, 0xffff
mov rax, r9
mov rcx, r9
and rax, r12
imul eax, dword [rax + r14], 0x1e35a7bd
mov edi, eax
shr rdi, 0x11
mov r8, rdi
and r8d, 0x1ff
movzx eax, word [r10 + r8*2 + 0x140028]
mov edx, eax
inc ax
mov word [r10 + r8*2 + 0x140028], ax
and edx, 0x1ff
mov eax, dword [r10 + rdi*4 + 0x28]
sub rcx, rax
movzx eax, r9w
cmp rcx, r11
cmova rcx, r11
mov byte [rax + r10 + 0x30028], dil
lea rax, [r8 + 0x80]
shl rax, 9
add rax, rdx
shl r8, 9
add r8, rdx
mov word [r10 + rax*4 + 0x28], cx
movzx eax, word [r10 + rdi*2 + 0x20028]
mov word [r10 + r8*4 + 0x4002a], ax
mov dword [r10 + rdi*4 + 0x28], r9d
lea r9, [r13 - 2]
mov word [r10 + rdi*2 + 0x20028], dx
mov rax, r9
and rax, r12
mov rcx, r9
imul eax, dword [rax + r14], 0x1e35a7bd
mov edx, eax
shr rdx, 0x11
mov r8, rdx
and r8d, 0x1ff
movzx eax, word [r10 + r8*2 + 0x140028]
mov edi, eax
inc ax
mov word [r10 + r8*2 + 0x140028], ax
and edi, 0x1ff
mov eax, dword [r10 + rdx*4 + 0x28]
sub rcx, rax
movzx eax, r9w
cmp rcx, r11
cmova rcx, r11
mov byte [rax + r10 + 0x30028], dl
lea rax, [r8 + 0x80]
shl rax, 9
add rax, rdi
shl r8, 9
add r8, rdi
mov word [r10 + rax*4 + 0x28], cx
movzx eax, word [r10 + rdx*2 + 0x20028]
mov word [r10 + r8*4 + 0x4002a], ax
mov dword [r10 + rdx*4 + 0x28], r9d
lea r9, [r13 - 1]
mov word [r10 + rdx*2 + 0x20028], di
mov rax, r9
and rax, r12
mov rcx, r9
imul eax, dword [rax + r14], 0x1e35a7bd
mov edx, eax
shr rdx, 0x11
mov r8, rdx
and r8d, 0x1ff
movzx eax, word [r10 + r8*2 + 0x140028]
mov edi, eax
inc ax
mov word [r10 + r8*2 + 0x140028], ax
and edi, 0x1ff
mov eax, dword [r10 + rdx*4 + 0x28]
sub rcx, rax
movzx eax, r9w
cmp rcx, r11
cmova rcx, r11
mov byte [rax + r10 + 0x30028], dl
lea rax, [r8 + 0x80]
shl r8, 9
shl rax, 9
add rax, rdi
add r8, rdi
mov word [r10 + rax*4 + 0x28], cx
movzx eax, word [r10 + rdx*2 + 0x20028]
mov word [r10 + r8*4 + 0x4002a], ax
mov dword [r10 + rdx*4 + 0x28], r9d
mov word [r10 + rdx*2 + 0x20028], di
jmp case.0x140044ac1.7
cmp rsi, 7
jb case.0x140044ac1.7
cmp r13, 3
jb case.0x140044ac1.7
lea rdx, [r13 - 3]
mov rax, r12
and rax, rdx
mov rcx, qword [rax + r14]
mov rax, rdx
imul rcx, r11
shr rax, 3
shr rcx, 0x2c
and eax, 3
add rcx, rax
mov rax, r12
mov dword [r10 + rcx*4 + 0x28], edx
lea rdx, [r13 - 2]
and rax, rdx
mov rcx, qword [rax + r14]
mov rax, rdx
imul rcx, r11
shr rax, 3
shr rcx, 0x2c
and eax, 3
add rcx, rax
mov dword [r10 + rcx*4 + 0x28], edx
lea rdx, [r13 - 1]
and r12, rdx
mov rcx, qword [r12 + r14]
imul rcx, r11
shr rcx, 0x2c
jmp 0x140044c38
lea rdi, [r10 + 0x28]
mov qword [rsp + 0xa8], rdi
cmp rsi, 3
jb case.0x140044ac1.7
cmp r13, 0x80
jb case.0x140044ac1.7
lea r10, [r13 - 0x7f]
lea rax, [rsi + r10]
mov qword [rsp + 0xb0], r10
cmp r13, rax
cmovb rax, r13
mov qword [rsp + 0xc8], rax
cmp r10, rax
jae case.0x140044ac1.7
mov rbx, r13
nop dword [rax]
mov r11, qword [rdi]
mov ecx, 0xf
mov rax, rbx
mov r13, r10
sub rax, r10
cmp rax, 0xf
cmovb rax, rcx
xor r9d, r9d
sub r11, rax
mov qword [rsp + 0xd0], r9
mov rax, r12
mov qword [rsp + 0xf8], r11
and rax, r10
mov qword [rsp + 0xe8], r9
mov qword [rsp + 0xd8], rax
mov r8d, r9d
add rax, r14
mov qword [rsp + 0xe0], r9
mov qword [rsp + 0xf0], rax
imul ecx, dword [rax], 0x1e35a7bd
mov rax, r10
and rax, qword [rdi]
shr rcx, 0xf
lea rdx, [rax + rax]
mov eax, 0x40
mov qword [rsp + 0x88], rdx
lea r15, [rdx + 1]
mov qword [rsp + 0xa0], rax
mov ebp, dword [rdi + rcx*4 + 8]
mov dword [rdi + rcx*4 + 8], r10d
sub r13, rbp
je 0x14004554d
nop word [rax + rax]
and r12, rbp
cmp r13, r11
ja 0x140045545
test rax, rax
je 0x140045545
cmp r8, r9
mov rsi, r9
cmovb rsi, r8
cmp rsi, 0x80
jbe 0x140045352
mov r8d, 0x9b
lea rdx, str.C:Userscode0.cargo_registry_srcindex.crates.io_6f17d22bba15001f_brotli_sys_0.3.2_brotlienc._hash_to_binary_tree_inc.h
lea rcx, str.cur_len___MAX_TREE_COMP_LENGTH
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
mov r9, qword [rsp + 0xd8]
lea rax, [rsi + r12]
add rax, r14
add r9, rsi
mov rdi, rax
add r9, r14
sub rdi, rsi
xor edx, edx
sub rdi, 0xffffffffffffff80
lea r10, [rdi - 4]
cmp rax, r10
ja 0x140045397
mov r8, r9
sub r8, rax
mov ecx, dword [rax + r8]
cmp dword [rax], ecx
jne 0x140045397
add rax, 4
add rdx, 4
cmp rax, r10
jbe 0x140045382
cmp rax, rdi
jae 0x1400453b4
nop dword [rax]
movzx ecx, byte [rax]
cmp byte [rdx + r9], cl
jne 0x1400453b4
inc rax
inc rdx
cmp rax, rdi
jb 0x1400453a0
mov rcx, qword [rsp + 0xf0]
lea rdi, [rdx + rsi]
mov r8, rdi
lea rdx, [r12 + r14]
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x1400453ea
mov r8d, 0xa0
lea rdx, str.C:Userscode0.cargo_registry_srcindex.crates.io_6f17d22bba15001f_brotli_sys_0.3.2_brotlienc._hash_to_binary_tree_inc.h
lea rcx, str.0__memcmp_data_cur_ix_masked___data_prev_ix_masked___len_
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
mov r8, qword [rsp + 0xd0]
test r8, r8
je 0x140045423
cmp rdi, qword [0]
jbe 0x140045423
mov qword [0], rdi
mov rax, rdi
shl rax, 5
mov dword [r8 + 4], eax
mov dword [r8], r13d
add r8, 8
mov qword [rsp + 0xd0], r8
cmp rdi, 0x80
jae 0x14004550a
mov rcx, qword [rsp + 0xd8]
lea rax, [rdi + r12]
movzx eax, byte [rax + r14]
add rcx, rdi
cmp byte [rcx + r14], al
jbe 0x140045493
mov rcx, qword [rsp + 0x88]
mov r8, rdi
mov r9, qword [rsp + 0xe0]
mov qword [rsp + 0xe8], rdi
mov rdi, qword [rsp + 0xa8]
mov dword [rdi + rcx*4 + 0x80010], ebp
mov rax, qword [rdi]
and rax, rbp
lea rdx, [rax*2 + 1]
mov eax, dword [rdi + rax*8 + 0x80014]
mov qword [rsp + 0x88], rdx
jmp 0x1400454cf
mov rdx, qword [rsp + 0x88]
mov r9, rdi
mov r8, qword [rsp + 0xe8]
mov qword [rsp + 0xe0], rdi
mov rdi, qword [rsp + 0xa8]
mov dword [rdi + r15*4 + 0x80010], ebp
mov r15, qword [rdi]
and r15, rbp
add r15, r15
mov eax, dword [rdi + r15*4 + 0x80010]
mov r10, qword [rsp + 0xb0]
mov r12, qword [rsp + 0x90]
mov r13, r10
mov r11, qword [rsp + 0xf8]
mov ebp, eax
mov rax, qword [rsp + 0xa0]
dec rax
mov qword [rsp + 0xa0], rax
sub r13, rbp
jne 0x140045310
jmp 0x14004554d
mov rdi, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0x88]
mov r10, qword [rsp + 0xb0]
mov rax, qword [rdi]
and rax, rbp
mov eax, dword [rdi + rax*8 + 0x80010]
mov dword [rdi + rcx*4 + 0x80010], eax
mov rax, qword [rdi]
and rax, rbp
mov eax, dword [rdi + rax*8 + 0x80014]
jmp 0x140045560
mov rdx, qword [rsp + 0x88]
mov eax, dword [rdi + 0x80008]
mov dword [rdi + rdx*4 + 0x80010], eax
mov eax, dword [rdi + 0x80008]
mov r12, qword [rsp + 0x90]
inc r10
mov dword [rdi + r15*4 + 0x80010], eax
mov qword [rsp + 0xb0], r10
cmp r10, qword [rsp + 0xc8]
jb 0x140045270
mov rbx, qword [rsp + 0x150]
mov eax, dword [rbx + 4]
cmp eax, 0xa
jne 0x14004564c
cmp dword [rbx + 0x1c], eax
je 0x1400455bc
mov r8d, 0x3da
lea rdx, str.brotli_enc_encode.c
lea rcx, str.s__params.hasher.type__10
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
mov rdi, qword [rbx + 0x90]
lea rdx, [rbx + 0x90]
mov r10d, dword [rsp + 0x80]
lea rax, [rbx + 0xa0]
mov r9d, dword [rsp + 0x98]
lea rcx, [rbx + 0xb8]
mov r8d, dword [rsp + 0xb8]
lea rsi, [rbx + 0x98]
mov qword [rsp + 0x60], rsi
lea r13, [rbx + 0x30]
mov qword [rsp + 0x58], rdx
mov rdx, qword [rsp + 0xc0]
shl rdi, 4
add rdi, qword [rbx + 0x88]
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x48], rax
mov rax, qword [rbx + 0x48]
mov qword [rsp + 0x40], rcx
mov rcx, r13
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], r10
mov qword [rsp + 0x20], r14
call fcn.140054d00
jmp 0x14004578a
cmp eax, 0xb
jne 0x140045705
cmp dword [rbx + 0x1c], 0xa
je 0x140045675
mov r8d, 0x3e1
lea rdx, str.brotli_enc_encode.c
lea rcx, str.s__params.hasher.type__10
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
mov rdi, qword [rbx + 0x90]
lea rdx, [rbx + 0x90]
mov r10d, dword [rsp + 0x80]
lea rax, [rbx + 0xa0]
mov r9d, dword [rsp + 0x98]
lea rcx, [rbx + 0xb8]
mov r8d, dword [rsp + 0xb8]
lea rsi, [rbx + 0x98]
mov qword [rsp + 0x60], rsi
lea r13, [rbx + 0x30]
mov qword [rsp + 0x58], rdx
mov rdx, qword [rsp + 0xc0]
shl rdi, 4
add rdi, qword [rbx + 0x88]
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x48], rax
mov rax, qword [rbx + 0x48]
mov qword [rsp + 0x40], rcx
mov rcx, r13
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], r10
mov qword [rsp + 0x20], r14
call fcn.140053aa0
jmp 0x14004578a
mov r9, qword [rbx + 0x90]
lea rax, [rbx + 0xa0]
mov r10d, dword [rsp + 0x80]
lea rcx, [rbx + 0xb8]
mov r8d, dword [rsp + 0x98]
lea rsi, [rbx + 0x98]
mov edx, dword [rsp + 0xb8]
lea rdi, [rbx + 0x90]
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x50], rdi
shl r9, 4
add r9, qword [rbx + 0x88]
mov qword [rsp + 0x48], r9
mov r9, r14
mov qword [rsp + 0x40], rax
mov rax, qword [rbx + 0x48]
mov qword [rsp + 0x38], rcx
mov rcx, qword [rsp + 0xc0]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], r10
call fcn.140047ae0
lea r13, [rbx + 0x30]
mov edx, dword [rbx + 0xc]
mov ecx, 0x18
cmp dword [rbx + 8], edx
mov r15d, 1
mov rdi, qword [rbx + 0x50]
cmovg edx, dword [rbx + 8]
inc edx
cmp edx, ecx
cmovl ecx, edx
sub rdi, qword [rbx + 0xa8]
shl r15, cl
mov rcx, rbx
mov rbp, r15
shr rbp, 3
call fcn.140046420
cmp dword [rbx + 4], 4
lea rcx, [rax + rdi]
jge 0x1400457e9
mov rax, qword [rbx + 0x90]
add rax, qword [rsi]
cmp rax, 0x2fff
jb 0x1400457e9
mov eax, 1
xor r11d, r11d
jmp 0x1400457ef
xor r11d, r11d
mov eax, r11d
mov r8d, dword [rsp + 0x158]
test r8d, r8d
jne 0x140045856
cmp dword [rsp + 0x160], r8d
jne 0x140045856
test eax, eax
jne 0x140045856
cmp rcx, r15
ja 0x140045856
cmp qword [rbx + 0x98], rbp
jae 0x140045856
cmp qword [rbx + 0x90], rbp
jae 0x140045856
mov rcx, rbx
call fcn.140047100
test eax, eax
je 0x140045c20
mov rax, qword [rbx + 0x48]
test rax, rax
je 0x140045c20
mov rcx, qword [rsp + 0x168]
mov dword [rax + 0x14], r11d
mov qword [rcx], 0
jmp 0x140045bda
mov rdx, qword [rbx + 0xa0]
test rdx, rdx
je 0x140045963
mov rax, qword [rbx + 0x90]
mov rdi, rax
shl rdi, 4
add rdi, qword [rbx + 0x88]
inc rax
mov qword [rbx + 0x90], rax
mov dword [rdi], edx
mov qword [rdi + 4], 0x4000000
mov word [rdi + 0xe], 0x10
cmp rdx, 6
jb 0x140045914
cmp rdx, 0x82
jae 0x1400458cb
lea rax, [rdx - 2]
mov ecx, r11d
shr rax, 1
je 0x1400458b7
inc ecx
shr rax, 1
jne 0x1400458b0
dec ecx
add rdx, 0xfffffffffffffffe
shr rdx, cl
inc cx
add cx, cx
add dx, cx
jmp 0x140045914
cmp rdx, 0x842
jae 0x1400458ec
add rdx, 0xffffffffffffffbe
mov eax, r11d
shr rdx, 1
je 0x1400458e7
inc eax
shr rdx, 1
jne 0x1400458e0
lea edx, [rax + 0xa]
jmp 0x140045914
cmp rdx, 0x1842
jae 0x1400458fc
mov edx, 0x15
jmp 0x140045914
cmp rdx, 0x5842
mov ecx, 0x16
mov eax, 0x17
cmovb ax, cx
movzx edx, ax
movzx eax, dx
mov r9d, 0xc0
shr eax, 3
and dx, 7
shl dx, 3
lea ecx, [rax + rax*2]
mov eax, 0x520d40
add ecx, ecx
sar eax, cl
add cx, 2
and ax, r9w
shl cx, 5
add ax, cx
or ax, dx
or ax, 2
mov word [rdi + 0xc], ax
mov rax, qword [rbx + 0xa0]
add qword [rbx + 0x98], rax
mov qword [rbx + 0xa0], r11
test r8d, r8d
jne 0x140045979
mov rax, qword [rbx + 0xa8]
cmp qword [rbx + 0x50], rax
je 0x140045c20
mov rax, qword [rbx + 0xa8]
cmp qword [rbx + 0x50], rax
jae 0x1400459a8
mov r8d, 0x416
lea rdx, str.brotli_enc_encode.c
lea rcx, str.s__input_pos____s__last_flush_pos_
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
mov r8d, dword [rsp + 0x158]
mov rax, qword [rbx + 0xa8]
cmp qword [rbx + 0x50], rax
ja 0x1400459d4
test r8d, r8d
jne 0x1400459d4
mov r8d, 0x417
lea rdx, str.brotli_enc_encode.c
lea rcx, str.s__input_pos____s__last_flush_pos___is_last
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
mov rax, qword [rbx + 0x50]
sub rax, qword [rbx + 0xa8]
cmp rax, 0x1000000
jbe 0x140045a01
mov r8d, 0x418
lea rdx, str.brotli_enc_encode.c
lea rcx, str.s__input_pos____s__last_flush_pos____1u____24
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
mov edi, dword [rbx + 0x50]
mov rcx, rbx
sub edi, dword [rbx + 0xa8]
lea edx, [rdi*2 + 0x1f6]
call fcn.140046190
movzx ecx, byte [rbx + 0x109]
lea rbp, [rbx + 0xb8]
mov r8d, dword [rsp + 0x80]
lea r15, [rbx + 0xf8]
mov qword [rsp + 0x78], rax
lea rsi, [rbx + 0x98]
mov r12, rax
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0x150], rcx
movzx ecx, byte [rbx + 0x108]
mov byte [rax], cl
lea rax, [rsp + 0x150]
mov ecx, dword [rsp + 0x158]
mov r9, qword [rbx + 0xa8]
mov qword [rsp + 0x70], rax
mov rax, qword [rbx + 0x88]
mov qword [rsp + 0x68], rbp
mov qword [rsp + 0x60], r15
mov qword [rsp + 0x58], rax
mov rax, qword [rbx + 0x90]
mov qword [rsp + 0x50], rax
mov rax, qword [rsi]
mov qword [rsp + 0x48], rax
movzx eax, byte [rbx + 0x10b]
mov byte [rsp + 0x40], al
movzx eax, byte [rbx + 0x10a]
mov byte [rsp + 0x38], al
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], ecx
mov rcx, r13
mov edx, edi
mov qword [rsp + 0x20], rdx
mov rdx, r14
call fcn.140047170
mov rdi, qword [rsp + 0x150]
mov rcx, rbx
mov rax, rdi
mov r11, rsi
shr rax, 3
mov r13, r15
movzx eax, byte [rax + r12]
mov r12, rbp
mov byte [rbx + 0x108], al
movzx eax, dil
and al, 7
mov byte [rbx + 0x109], al
mov rax, qword [rbx + 0x50]
mov qword [rbx + 0xa8], rax
call fcn.140047100
test eax, eax
je 0x140045b47
mov rax, qword [rbx + 0x48]
test rax, rax
je 0x140045b47
mov dword [rax + 0x14], 0
lea r11, [rbx + 0x98]
mov rdi, qword [rsp + 0x150]
lea r12, [rbx + 0xb8]
lea r13, [rbx + 0xf8]
mov rdx, qword [rbx + 0xa8]
mov r8, rsi
mov r9, rbp
mov r10, r15
test rdx, rdx
je 0x140045b7d
mov eax, dword [rsp + 0x80]
lea ecx, [rdx - 1]
and rcx, rax
mov r8, r11
mov r9, r12
mov r10, r13
movzx eax, byte [rcx + r14]
mov byte [rbx + 0x10a], al
cmp rdx, 1
jbe 0x140045ba4
mov eax, dword [rsp + 0x80]
lea ecx, [rdx - 2]
and rcx, rax
mov rsi, r8
mov rbp, r9
mov r15, r10
movzx eax, byte [rcx + r14]
mov byte [rbx + 0x10b], al
movups xmm0, xmmword [rbp]
mov rcx, qword [rsp + 0x170]
xor eax, eax
mov qword [rbx + 0x90], rax
mov qword [rsi], rax
mov rax, qword [rsp + 0xc8]
movups xmmword [r15], xmm0
mov qword [rcx], rax
shr rdi, 3
mov rcx, qword [rsp + 0x168]
mov qword [rcx], rdi
mov rsi, qword [rsp + 0x118]
mov eax, 1
mov rdi, qword [rsp + 0x110]
mov r14, qword [rsp + 0x108]
add rsp, 0x120
pop r15
pop r13
pop r12
pop rbp
pop rbx
ret
movzx eax, byte [rbx + 0x109]
mov qword [rsp + 0x150], rax
test rbp, rbp
jne 0x140045c31
test r13d, r13d
jne 0x140045c31
mov rcx, qword [rsp + 0x168]
mov qword [rcx], 0
jmp 0x140045bda
lea edx, [rbp*2 + 0x1f6]
mov rcx, rbx
call fcn.140046190
movzx ecx, byte [rbx + 0x108]
lea r9, [rsp + 0x90]
mov ebp, ebp
mov rsi, rax
mov r8d, ebp
mov byte [rax], cl
mov rcx, rbx
mov edx, dword [rbx + 4]
call fcn.140046210
mov edx, dword [rsp + 0x80]
mov r8, rax
mov ecx, r15d
lea rax, [rsp + 0x150]
and rdx, rcx
add rdx, r14
cmp dword [rbx + 4], 0
jne 0x140045ce2
mov qword [rsp + 0x58], rsi
lea r9, [rbx + 0x11b0]
mov qword [rsp + 0x50], rax
lea rcx, [rbx + 0x12b0]
mov rax, qword [rsp + 0x90]
lea r10, [rbx + 0x1130]
mov qword [rsp + 0x48], rcx
lea rdi, [rbx + 0x14b0]
mov qword [rsp + 0x40], rdi
lea rcx, [rbx + 0x30]
mov qword [rsp + 0x38], r9
mov r9d, r13d
mov qword [rsp + 0x30], r10
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r8
mov r8d, ebp
call fcn.140065ef0
jmp 0x140045d25
mov qword [rsp + 0x48], rsi
lea rcx, [rbx + 0x30]
mov qword [rsp + 0x40], rax
mov r9d, r13d
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x38], rax
mov rax, qword [rbx + 0x14c0]
mov qword [rsp + 0x30], r8
mov r8, rbp
mov qword [rsp + 0x28], rax
mov rax, qword [rbx + 0x14b8]
mov qword [rsp + 0x20], rax
call fcn.14006fd50
mov rcx, qword [rsp + 0x150]
mov rdi, rcx
and cl, 7
shr rdi, 3
movzx eax, byte [rdi + rsi]
mov byte [rbx + 0x109], cl
mov rcx, rbx
mov byte [rbx + 0x108], al
call fcn.140047100
mov rax, qword [rsp + 0x170]
mov qword [rax], rsi
jmp 0x140045bcf
xor eax, eax
jmp 0x140045bef