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

Disassembly:
mov ecx, dword [0x5ef9b4]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x40]
cmp eax, dword [ecx + 8]
jbe 0x4ba8d9
sub esp, 0xc0
mov eax, dword [esp + 0xc4]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
lea ebx, [eax + 0xbc]
mov dword [esp + 0xac], ebx
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 3
mov dword [esp + 0x10], 0x10
mov dword [esp + 0x14], 3
call sym.io.ReadAtLeast
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4b9a5b
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
cmp dword [0x5c4a80], ecx
jne 0x4b99b2
mov dword [esp + 0x8c], edx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x20]
mov edx, dword [0x5c4a84]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call sym.runtime.ifaceeq
movzx eax, byte [esp + 0xc]
test al, al
je 0x4b99a7
mov eax, dword [0x5c4a88]
mov edx, dword [0x5c4a8c]
jmp 0x4b99b2
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x50], eax
mov dword [esp + 0x88], edx
cmp dword [0x5c4a80], eax
jne 0x4b99f1
mov ecx, dword [0x5c4a84]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call sym.runtime.ifaceeq
movzx eax, byte [esp + 0xc]
test al, al
je 0x4b99f1
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x88]
jmp 0x4b9a46
lea eax, [0x4f1c20]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xc4]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov dword [eax], edx
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x50]
mov dword [eax + 8], ecx
mov ecx, dword [0x5efab0]
test ecx, ecx
jne 0x4b9a2f
mov ecx, dword [esp + 0x88]
jmp 0x4b9a3d
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x88]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x531260]
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], eax
add esp, 0xc0
ret
mov eax, dword [esp + 0xc4]
movzx ecx, word [eax + 0xbc]
movzx ebx, byte [eax + 0xbe]
shl ebx, 0x10
or ecx, ebx
mov ebx, ecx
shr ebx, 3
cmp ebx, 0x20000
jg 0x4b9a95
mov ebp, dword [eax + 0x48]
test ebp, ebp
jle 0x4b9b6b
cmp ebp, ebx
jge 0x4b9b6b
lea eax, [0x4edd20]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0xa8], eax
mov dword [eax + 4], 0x14
lea ecx, [0x5090a9]
mov dword [eax], ecx
lea ecx, [0x530fa4]
cmp dword [0x5c4a80], ecx
jne 0x4b9af9
mov edx, dword [0x5c4a84]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call sym.runtime.ifaceeq
movzx eax, byte [esp + 0xc]
test al, al
je 0x4b9af9
lea ecx, [0x530fa4]
mov eax, dword [esp + 0xa8]
jmp 0x4b9b56
lea eax, [0x4f1c20]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xc4]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
add edx, 3
mov dword [eax], edx
adc ecx, 0
mov dword [eax + 4], ecx
lea ecx, [0x530fa4]
mov dword [eax + 8], ecx
mov ecx, dword [0x5efab0]
test ecx, ecx
jne 0x4b9b3f
mov ecx, dword [esp + 0xa8]
jmp 0x4b9b4d
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0xa8]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x531260]
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], eax
add esp, 0xc0
ret
mov dword [esp + 0x30], ecx
mov dword [esp + 0x68], ebx
mov ebp, ecx
shr ecx, 1
and ecx, 3
cmp ecx, 1
ja 0x4b9fc6
test ecx, ecx
jne 0x4b9db5
mov esi, dword [eax + 0x24]
nop
cmp esi, ebx
jge 0x4b9c46
mov ecx, ebx
sub ebx, esi
test ebx, ebx
jl 0x4ba8d3
mov edx, dword [eax + 0x1c]
cmp esi, ecx
jae 0x4b9bde
mov dword [esp + 0x2c], ebx
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
mov dword [esp + 0xc], ebx
lea eax, [0x4ea0c0]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov ecx, ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x64], esi
mov dword [esp + 0x60], ecx
mov dword [esp + 0xa4], edx
sub ecx, ebx
add ecx, edx
mov dword [esp], ecx
mov dword [esp + 4], ebx
call sym.runtime.memclrNoHeapPointers
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc4]
mov dword [ecx + 0x20], eax
mov eax, dword [esp + 0x64]
mov dword [ecx + 0x24], eax
mov eax, dword [0x5efab0]
test eax, eax
jne 0x4b9c25
mov eax, dword [esp + 0xa4]
jmp 0x4b9c39
call sym.runtime.gcWriteBarrier2
mov eax, dword [esp + 0xa4]
mov dword [edi], eax
mov ebx, dword [ecx + 0x1c]
mov dword [edi + 4], ebx
mov dword [ecx + 0x1c], eax
mov eax, ecx
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x30]
mov edx, dword [eax + 0x24]
cmp edx, ebx
jb 0x4ba8cc
mov dword [eax + 0x20], ebx
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov ebp, dword [eax + 0x1c]
mov esi, dword [eax + 0x24]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], ebx
call sym.io.ReadAtLeast
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4b9d8d
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
cmp dword [0x5c4a80], ecx
jne 0x4b9cde
mov dword [esp + 0x84], edx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x20]
mov edx, dword [0x5c4a84]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call sym.runtime.ifaceeq
movzx eax, byte [esp + 0xc]
test al, al
je 0x4b9cd3
mov eax, dword [0x5c4a88]
mov edx, dword [0x5c4a8c]
jmp 0x4b9cde
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x84]
mov dword [esp + 0x80], edx
mov dword [esp + 0x48], eax
cmp dword [0x5c4a80], eax
jne 0x4b9d1d
mov ecx, dword [0x5c4a84]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call sym.runtime.ifaceeq
movzx eax, byte [esp + 0xc]
test al, al
je 0x4b9d1d
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x80]
jmp 0x4b9d78
lea eax, [0x4f1c20]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xc4]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
add edx, 3
mov dword [eax], edx
adc ecx, 0
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x48]
mov dword [eax + 8], ecx
mov ecx, dword [0x5efab0]
test ecx, ecx
jne 0x4b9d61
mov ecx, dword [esp + 0x80]
jmp 0x4b9d6f
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x80]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x531260]
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], eax
add esp, 0xc0
ret
mov edx, dword [esp + 0x68]
add edx, 3
mov ebx, dword [esp + 0xc4]
mov ebp, dword [ebx + 0x14]
mov esi, dword [ebx + 0x18]
mov edi, edx
sar edx, 0x1f
add ebp, edi
mov dword [ebx + 0x14], ebp
adc edx, esi
mov dword [ebx + 0x18], edx
jmp 0x4ba10e
mov esi, dword [eax + 0x24]
nop
cmp esi, ebx
jge 0x4b9e70
mov ecx, ebx
sub ebx, esi
test ebx, ebx
jl 0x4ba8c7
mov edx, dword [eax + 0x1c]
cmp esi, ecx
jae 0x4b9e08
mov dword [esp + 0x28], ebx
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
mov dword [esp + 0xc], ebx
lea eax, [0x4ea0c0]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov ecx, ebx
mov ebx, dword [esp + 0x28]
mov dword [esp + 0xa4], edx
mov dword [esp + 0x64], esi
mov dword [esp + 0x60], ecx
sub ecx, ebx
add ecx, edx
mov dword [esp], ecx
mov dword [esp + 4], ebx
call sym.runtime.memclrNoHeapPointers
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc4]
mov dword [ecx + 0x20], eax
mov eax, dword [esp + 0x64]
mov dword [ecx + 0x24], eax
mov eax, dword [0x5efab0]
test eax, eax
jne 0x4b9e4f
mov eax, dword [esp + 0xa4]
jmp 0x4b9e63
call sym.runtime.gcWriteBarrier2
mov eax, dword [esp + 0xa4]
mov dword [edi], eax
mov ebx, dword [ecx + 0x1c]
mov dword [edi + 4], ebx
mov dword [ecx + 0x1c], eax
mov eax, ecx
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x30]
mov edx, dword [eax + 0x24]
cmp edx, ebx
jb 0x4ba8c0
mov dword [eax + 0x20], ebx
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xac]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 0x10
mov dword [esp + 0x14], 1
call sym.io.ReadAtLeast
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x4b9ed2
mov edx, dword [esp + 0xc4]
movzx ebx, byte [edx + 0xbc]
mov ebp, dword [edx + 0x20]
xor eax, eax
jmp 0x4ba890
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
cmp dword [0x5c4a80], ecx
jne 0x4b9f23
mov dword [esp + 0x7c], edx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x20]
mov edx, dword [0x5c4a84]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call sym.runtime.ifaceeq
movzx eax, byte [esp + 0xc]
test al, al
je 0x4b9f1b
mov eax, dword [0x5c4a88]
mov edx, dword [0x5c4a8c]
jmp 0x4b9f23
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x78], edx
mov dword [esp + 0x40], eax
cmp dword [0x5c4a80], eax
jne 0x4b9f5c
mov ecx, dword [0x5c4a84]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call sym.runtime.ifaceeq
movzx eax, byte [esp + 0xc]
test al, al
je 0x4b9f5c
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x78]
jmp 0x4b9fb1
lea eax, [0x4f1c20]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xc4]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
add edx, 3
mov dword [eax], edx
adc ecx, 0
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x40]
mov dword [eax + 8], ecx
mov ecx, dword [0x5efab0]
test ecx, ecx
jne 0x4b9f9d
mov ecx, dword [esp + 0x78]
jmp 0x4b9fa8
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x78]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x531260]
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], eax
add esp, 0xc0
ret
cmp ecx, 2
jne 0x4ba038
mov ecx, dword [eax + 0x14]
mov edx, dword [eax + 0x18]
add ecx, 3
mov dword [eax + 0x14], ecx
adc edx, 0
mov dword [eax + 0x18], edx
mov dword [esp], eax
mov dword [esp + 4], ebx
call sym.internal_zstd._Reader_.compressedBlock
mov eax, dword [esp + 8]
test eax, eax
jne 0x4ba01b
mov ebx, dword [esp + 0xc4]
mov ebp, dword [ebx + 0x14]
mov esi, dword [ebx + 0x18]
mov edi, dword [esp + 0x68]
mov eax, edi
sar edi, 0x1f
add eax, ebp
mov dword [ebx + 0x14], eax
adc edi, esi
mov dword [ebx + 0x18], edi
mov edi, 3
jmp 0x4ba10e
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], ecx
add esp, 0xc0
ret
lea eax, [0x4edd20]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0xa0], eax
mov dword [eax + 4], 0x12
lea ecx, [0x508305]
mov dword [eax], ecx
lea ecx, [0x530fa4]
cmp dword [0x5c4a80], ecx
jne 0x4ba09c
mov edx, dword [0x5c4a84]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call sym.runtime.ifaceeq
movzx eax, byte [esp + 0xc]
test al, al
je 0x4ba09c
lea ecx, [0x530fa4]
mov eax, dword [esp + 0xa0]
jmp 0x4ba0f9
lea eax, [0x4f1c20]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xc4]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
add edx, 3
mov dword [eax], edx
adc ecx, 0
mov dword [eax + 4], ecx
lea ecx, [0x530fa4]
mov dword [eax + 8], ecx
mov ecx, dword [0x5efab0]
test ecx, ecx
jne 0x4ba0e2
mov ecx, dword [esp + 0xa0]
jmp 0x4ba0f0
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0xa0]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x531260]
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], eax
add esp, 0xc0
ret
mov dword [esp + 0x24], edi
movzx edx, byte [ebx + 0xb]
test dl, dl
jne 0x4ba15d
mov edx, dword [ebx + 0x20]
mov ebp, edx
sar edx, 0x1f
mov esi, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x68], eax
cmp eax, edx
setb cl
xchg edi, ebx
sete bl
xchg edi, ebx
cmp ebp, esi
seta al
and edi, eax
or edi, ecx
xchg edi, eax
test al, al
xchg edi, eax
jne 0x4ba7a0
sub esi, ebp
mov dword [ebx + 0xc], esi
mov ebp, dword [esp + 0x68]
sbb ebp, edx
mov dword [ebx + 0x10], ebp
mov edi, dword [esp + 0x24]
movzx edx, byte [ebx + 9]
test dl, dl
je 0x4ba193
lea eax, [ebx + 0xd8]
mov ecx, dword [ebx + 0x1c]
mov edx, dword [ebx + 0x20]
mov ebp, dword [ebx + 0x24]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebp
call sym.internal_zstd._xxhash64_.update
mov ebx, dword [esp + 0xc4]
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x30]
test edx, 1
je 0x4ba588
movzx eax, byte [ebx + 0xb]
test al, al
jne 0x4ba1c5
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x10]
test ecx, ecx
setne cl
test eax, eax
setne al
or ecx, eax
test cl, cl
jne 0x4ba4ab
movzx eax, byte [ebx + 9]
test al, al
je 0x4ba346
mov eax, dword [ebx + 4]
mov ecx, dword [ebx]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 4
mov dword [esp + 0x10], 0x10
mov dword [esp + 0x14], 4
call sym.io.ReadAtLeast
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4ba2ff
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
cmp dword [0x5c4a80], ecx
jne 0x4ba262
mov dword [esp + 0x3c], eax
mov dword [esp + 0x74], edx
mov eax, dword [esp + 0x20]
mov edx, dword [0x5c4a84]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call sym.runtime.ifaceeq
movzx eax, byte [esp + 0xc]
test al, al
je 0x4ba25a
mov eax, dword [0x5c4a88]
mov edx, dword [0x5c4a8c]
jmp 0x4ba262
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x74]
mov dword [esp + 0x70], edx
mov dword [esp + 0x38], eax
cmp dword [0x5c4a80], eax
jne 0x4ba29b
mov ecx, dword [0x5c4a84]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call sym.runtime.ifaceeq
movzx eax, byte [esp + 0xc]
test al, al
je 0x4ba29b
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x70]
jmp 0x4ba2ea
lea eax, [0x4f1c20]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xc4]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov dword [eax], edx
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x38]
mov dword [eax + 8], ecx
mov ecx, dword [0x5efab0]
test ecx, ecx
jne 0x4ba2d6
mov ecx, dword [esp + 0x70]
jmp 0x4ba2e1
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x70]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x531260]
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], eax
add esp, 0xc0
ret
mov eax, dword [esp + 0xc4]
lea ecx, [eax + 0xd8]
mov edx, dword [eax + 0xbc]
mov dword [esp + 0x68], edx
nop
mov dword [esp], ecx
call sym.internal_zstd._xxhash64_.digest
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x68]
cmp ecx, eax
jne 0x4ba34f
mov eax, dword [esp + 0xc4]
mov ecx, dword [eax + 0x14]
mov edx, dword [eax + 0x18]
add ecx, 4
mov dword [eax + 0x14], ecx
adc edx, 0
mov dword [eax + 0x18], edx
mov ebx, eax
mov byte [ebx + 8], 0
jmp 0x4ba783
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
mov dword [esp], eax
call sym.runtime.convT32
mov eax, dword [esp + 4]
lea ecx, [0x4ea080]
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x68]
mov dword [esp], eax
call sym.runtime.convT32
mov eax, dword [esp + 4]
lea ecx, [0x4ea080]
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], eax
lea eax, [0x50dab9]
mov dword [esp], eax
mov dword [esp + 4], 0x22
lea eax, [esp + 0xb0]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call sym.fmt.Errorf
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x6c], ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x9c], ebx
cmp dword [0x5c4a80], eax
jne 0x4ba444
mov dword [esp + 0x34], edx
mov ecx, dword [0x5c4a84]
mov edx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call sym.runtime.ifaceeq
movzx eax, byte [esp + 0xc]
test al, al
je 0x4ba444
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x6c]
jmp 0x4ba496
lea eax, [0x4f1c20]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xc4]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov dword [eax], edx
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x9c]
mov dword [eax + 8], ecx
mov ecx, dword [0x5efab0]
test ecx, ecx
jne 0x4ba482
mov ecx, dword [esp + 0x6c]
jmp 0x4ba48d
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x6c]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x531260]
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], eax
add esp, 0xc0
ret
lea eax, [0x4edd20]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x98], eax
mov dword [eax + 4], 0x27
lea ecx, [0x50eae9]
mov dword [eax], ecx
lea ecx, [0x530fa4]
cmp dword [0x5c4a80], ecx
jne 0x4ba50f
mov edx, dword [0x5c4a84]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call sym.runtime.ifaceeq
movzx eax, byte [esp + 0xc]
test al, al
je 0x4ba50f
lea ecx, [0x530fa4]
mov eax, dword [esp + 0x98]
jmp 0x4ba573
lea eax, [0x4f1c20]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xc4]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esp + 0x24]
mov ebp, ebx
sar ebx, 0x1f
add ebp, edx
mov dword [eax], ebp
adc ecx, ebx
mov dword [eax + 4], ecx
lea ecx, [0x530fa4]
mov dword [eax + 8], ecx
mov ecx, dword [0x5efab0]
test ecx, ecx
jne 0x4ba55c
mov ecx, dword [esp + 0x98]
jmp 0x4ba56a
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x98]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x531260]
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], eax
add esp, 0xc0
ret
mov edx, dword [ebx + 0x48]
test edx, edx
je 0x4ba783
mov eax, dword [ebx + 0x20]
mov ebp, dword [ebx + 0x1c]
cmp edx, eax
jg 0x4ba66e
mov ecx, eax
sub eax, edx
cmp ecx, eax
jb 0x4ba884
mov edx, dword [ebx + 0x24]
mov esi, dword [ebx + 0x54]
sub ecx, eax
sub edx, eax
neg edx
sar edx, 0x1f
and eax, edx
mov edx, dword [ebx + 0x4c]
add eax, ebp
cmp esi, ecx
jb 0x4ba5cb
mov ebp, ecx
jmp 0x4ba60b
mov dword [esp + 0x5c], ecx
mov dword [esp + 0xa4], eax
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
mov dword [esp + 0xc], ecx
lea eax, [0x4ea0c0]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0xa4]
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x64], esi
mov dword [esp + 0x60], ecx
mov dword [esp + 0xa4], edx
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
call sym.runtime.memmove
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc4]
mov dword [ecx + 0x50], eax
mov eax, dword [esp + 0x64]
mov dword [ecx + 0x54], eax
mov eax, dword [0x5efab0]
test eax, eax
jne 0x4ba652
mov eax, dword [esp + 0xa4]
jmp 0x4ba666
call sym.runtime.gcWriteBarrier2
mov eax, dword [esp + 0xa4]
mov dword [edi], eax
mov edx, dword [ecx + 0x4c]
mov dword [edi + 4], edx
mov dword [ecx + 0x4c], eax
jmp 0x4ba783
mov dword [esp + 0x58], eax
mov dword [esp + 0x90], ebp
sub edx, eax
mov ecx, dword [ebx + 0x50]
cmp ecx, edx
jle 0x4ba6d6
mov esi, ecx
sub esi, edx
cmp ecx, esi
jb 0x4ba87d
mov dword [esp + 0x64], ecx
mov edx, dword [ebx + 0x54]
mov edi, dword [ebx + 0x4c]
sub ecx, esi
sub edx, esi
neg edx
sar edx, 0x1f
and edx, esi
lea esi, [edx + edi]
mov ebp, dword [esp + 0x64]
cmp ebp, ecx
jg 0x4ba6b0
mov ecx, ebp
test edx, edx
je 0x4ba6cf
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], ecx
call sym.runtime.memmove
mov eax, dword [esp + 0x58]
mov ebx, dword [esp + 0xc4]
mov ebp, dword [esp + 0x90]
mov ecx, dword [ebx + 0x54]
mov edx, dword [ebx + 0x50]
lea esi, [edx + eax]
mov edi, dword [ebx + 0x4c]
cmp ecx, esi
jae 0x4ba723
mov dword [esp + 0x64], edx
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
lea ecx, [0x4ea0c0]
mov dword [esp + 0x10], ecx
call sym.runtime.growslice
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x64]
mov ebp, dword [esp + 0x90]
mov dword [esp + 0xa4], edi
mov dword [esp + 0x64], esi
mov dword [esp + 0x60], ecx
add edx, edi
mov dword [esp], edx
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
call sym.runtime.memmove
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0xc4]
mov dword [ecx + 0x50], eax
mov eax, dword [esp + 0x60]
mov dword [ecx + 0x54], eax
mov eax, dword [0x5efab0]
test eax, eax
jne 0x4ba76c
mov eax, dword [esp + 0xa4]
jmp 0x4ba780
call sym.runtime.gcWriteBarrier2
mov eax, dword [esp + 0xa4]
mov dword [edi], eax
mov edx, dword [ecx + 0x4c]
mov dword [edi + 4], edx
mov dword [ecx + 0x4c], eax
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
add esp, 0xc0
ret
lea eax, [0x4edd20]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x94], eax
mov dword [eax + 4], 0x24
lea ecx, [0x50e2a3]
mov dword [eax], ecx
lea ecx, [0x530fa4]
cmp dword [0x5c4a80], ecx
jne 0x4ba804
mov edx, dword [0x5c4a84]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call sym.runtime.ifaceeq
movzx eax, byte [esp + 0xc]
test al, al
je 0x4ba804
lea ecx, [0x530fa4]
mov eax, dword [esp + 0x94]
jmp 0x4ba868
lea eax, [0x4f1c20]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xc4]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esp + 0x24]
mov ebp, ebx
sar ebx, 0x1f
add ebp, edx
mov dword [eax], ebp
adc ecx, ebx
mov dword [eax + 4], ecx
lea ecx, [0x530fa4]
mov dword [eax + 8], ecx
mov ecx, dword [0x5efab0]
test ecx, ecx
jne 0x4ba851
mov ecx, dword [esp + 0x94]
jmp 0x4ba85f
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x94]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x531260]
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], eax
add esp, 0xc0
ret
mov eax, esi
call sym.runtime.panicSliceB
call sym.runtime.panicSliceB
mov esi, dword [edx + 0x1c]
mov byte [esi + eax], bl
inc eax
cmp eax, ebp
jge 0x4ba89d
mov ecx, dword [edx + 0x20]
cmp eax, ecx
jb 0x4ba889
jmp 0x4ba8bb
mov ebp, dword [edx + 0x14]
mov esi, dword [edx + 0x18]
add ebp, 4
mov dword [edx + 0x14], ebp
adc esi, 0
mov dword [edx + 0x18], esi
mov ebx, edx
mov edi, 4
jmp 0x4ba10e
call sym.runtime.panicIndex
mov ecx, ebx
call sym.runtime.panicSliceAcap
call sym.runtime.panicmakeslicelen
mov ecx, ebx
call sym.runtime.panicSliceAcap
call sym.runtime.panicmakeslicelen
nop
call sym.runtime.morestack_noctxt
jmp sym.internal_zstd._Reader_.readBlock