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

Disassembly:
mov ecx, dword [0x5c5164]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x40]
cmp eax, dword [ecx + 8]
jbe 0x4b42e9
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 0x4b346b
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
cmp dword [0x59be78], ecx
jne 0x4b33c2
mov dword [esp + 0x8c], edx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x20]
mov edx, dword [0x59be7c]
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 0x4b33b7
mov eax, dword [0x59be80]
mov edx, dword [0x59be84]
jmp 0x4b33c2
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x50], eax
mov dword [esp + 0x88], edx
cmp dword [0x59be78], eax
jne 0x4b3401
mov ecx, dword [0x59be7c]
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 0x4b3401
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x88]
jmp 0x4b3456
lea eax, [0x4de980]
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 [0x5c5260]
test ecx, ecx
jne 0x4b343f
mov ecx, dword [esp + 0x88]
jmp 0x4b344d
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x88]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x514c0c]
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 0x4b34a5
mov ebp, dword [eax + 0x48]
test ebp, ebp
jle 0x4b357b
cmp ebp, ebx
jge 0x4b357b
lea eax, [0x4db200]
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, [0x4f0b31]
mov dword [eax], ecx
lea ecx, [0x5149c8]
cmp dword [0x59be78], ecx
jne 0x4b3509
mov edx, dword [0x59be7c]
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 0x4b3509
lea ecx, [0x5149c8]
mov eax, dword [esp + 0xa8]
jmp 0x4b3566
lea eax, [0x4de980]
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, [0x5149c8]
mov dword [eax + 8], ecx
mov ecx, dword [0x5c5260]
test ecx, ecx
jne 0x4b354f
mov ecx, dword [esp + 0xa8]
jmp 0x4b355d
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0xa8]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x514c0c]
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 0x4b39d6
test ecx, ecx
jne 0x4b37c5
mov esi, dword [eax + 0x24]
nop
cmp esi, ebx
jge 0x4b3656
mov ecx, ebx
sub ebx, esi
test ebx, ebx
jl 0x4b42e3
mov edx, dword [eax + 0x1c]
cmp esi, ecx
jae 0x4b35ee
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, [0x4d8400]
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 [0x5c5260]
test eax, eax
jne 0x4b3635
mov eax, dword [esp + 0xa4]
jmp 0x4b3649
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 0x4b42dc
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 0x4b379d
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
cmp dword [0x59be78], ecx
jne 0x4b36ee
mov dword [esp + 0x84], edx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x20]
mov edx, dword [0x59be7c]
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 0x4b36e3
mov eax, dword [0x59be80]
mov edx, dword [0x59be84]
jmp 0x4b36ee
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x84]
mov dword [esp + 0x80], edx
mov dword [esp + 0x48], eax
cmp dword [0x59be78], eax
jne 0x4b372d
mov ecx, dword [0x59be7c]
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 0x4b372d
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x80]
jmp 0x4b3788
lea eax, [0x4de980]
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 [0x5c5260]
test ecx, ecx
jne 0x4b3771
mov ecx, dword [esp + 0x80]
jmp 0x4b377f
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x80]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x514c0c]
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 0x4b3b1e
mov esi, dword [eax + 0x24]
nop
cmp esi, ebx
jge 0x4b3880
mov ecx, ebx
sub ebx, esi
test ebx, ebx
jl 0x4b42d7
mov edx, dword [eax + 0x1c]
cmp esi, ecx
jae 0x4b3818
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, [0x4d8400]
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 [0x5c5260]
test eax, eax
jne 0x4b385f
mov eax, dword [esp + 0xa4]
jmp 0x4b3873
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 0x4b42d0
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 0x4b38e2
mov edx, dword [esp + 0xc4]
movzx ebx, byte [edx + 0xbc]
mov ebp, dword [edx + 0x20]
xor eax, eax
jmp 0x4b42a0
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
cmp dword [0x59be78], ecx
jne 0x4b3933
mov dword [esp + 0x7c], edx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x20]
mov edx, dword [0x59be7c]
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 0x4b392b
mov eax, dword [0x59be80]
mov edx, dword [0x59be84]
jmp 0x4b3933
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x78], edx
mov dword [esp + 0x40], eax
cmp dword [0x59be78], eax
jne 0x4b396c
mov ecx, dword [0x59be7c]
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 0x4b396c
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x78]
jmp 0x4b39c1
lea eax, [0x4de980]
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 [0x5c5260]
test ecx, ecx
jne 0x4b39ad
mov ecx, dword [esp + 0x78]
jmp 0x4b39b8
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x78]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x514c0c]
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], eax
add esp, 0xc0
ret
cmp ecx, 2
jne 0x4b3a48
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 0x4b3a2b
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 0x4b3b1e
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, [0x4db200]
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, [0x4f005a]
mov dword [eax], ecx
lea ecx, [0x5149c8]
cmp dword [0x59be78], ecx
jne 0x4b3aac
mov edx, dword [0x59be7c]
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 0x4b3aac
lea ecx, [0x5149c8]
mov eax, dword [esp + 0xa0]
jmp 0x4b3b09
lea eax, [0x4de980]
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, [0x5149c8]
mov dword [eax + 8], ecx
mov ecx, dword [0x5c5260]
test ecx, ecx
jne 0x4b3af2
mov ecx, dword [esp + 0xa0]
jmp 0x4b3b00
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0xa0]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x514c0c]
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 0x4b3b6d
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 0x4b41b0
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 0x4b3ba3
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 0x4b3f98
movzx eax, byte [ebx + 0xb]
test al, al
jne 0x4b3bd5
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 0x4b3ebb
movzx eax, byte [ebx + 9]
test al, al
je 0x4b3d56
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 0x4b3d0f
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
cmp dword [0x59be78], ecx
jne 0x4b3c72
mov dword [esp + 0x3c], eax
mov dword [esp + 0x74], edx
mov eax, dword [esp + 0x20]
mov edx, dword [0x59be7c]
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 0x4b3c6a
mov eax, dword [0x59be80]
mov edx, dword [0x59be84]
jmp 0x4b3c72
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x74]
mov dword [esp + 0x70], edx
mov dword [esp + 0x38], eax
cmp dword [0x59be78], eax
jne 0x4b3cab
mov ecx, dword [0x59be7c]
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 0x4b3cab
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x70]
jmp 0x4b3cfa
lea eax, [0x4de980]
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 [0x5c5260]
test ecx, ecx
jne 0x4b3ce6
mov ecx, dword [esp + 0x70]
jmp 0x4b3cf1
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x70]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x514c0c]
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 0x4b3d5f
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 0x4b4193
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, [0x4d83c0]
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, [0x4d83c0]
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], eax
lea eax, [0x4f4a81]
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 [0x59be78], eax
jne 0x4b3e54
mov dword [esp + 0x34], edx
mov ecx, dword [0x59be7c]
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 0x4b3e54
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x6c]
jmp 0x4b3ea6
lea eax, [0x4de980]
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 [0x5c5260]
test ecx, ecx
jne 0x4b3e92
mov ecx, dword [esp + 0x6c]
jmp 0x4b3e9d
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x6c]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x514c0c]
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], eax
add esp, 0xc0
ret
lea eax, [0x4db200]
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, [0x4f596b]
mov dword [eax], ecx
lea ecx, [0x5149c8]
cmp dword [0x59be78], ecx
jne 0x4b3f1f
mov edx, dword [0x59be7c]
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 0x4b3f1f
lea ecx, [0x5149c8]
mov eax, dword [esp + 0x98]
jmp 0x4b3f83
lea eax, [0x4de980]
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, [0x5149c8]
mov dword [eax + 8], ecx
mov ecx, dword [0x5c5260]
test ecx, ecx
jne 0x4b3f6c
mov ecx, dword [esp + 0x98]
jmp 0x4b3f7a
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x98]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x514c0c]
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], eax
add esp, 0xc0
ret
mov edx, dword [ebx + 0x48]
test edx, edx
je 0x4b4193
mov eax, dword [ebx + 0x20]
mov ebp, dword [ebx + 0x1c]
cmp edx, eax
jg 0x4b407e
mov ecx, eax
sub eax, edx
cmp ecx, eax
jb 0x4b4294
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 0x4b3fdb
mov ebp, ecx
jmp 0x4b401b
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, [0x4d8400]
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 [0x5c5260]
test eax, eax
jne 0x4b4062
mov eax, dword [esp + 0xa4]
jmp 0x4b4076
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 0x4b4193
mov dword [esp + 0x58], eax
mov dword [esp + 0x90], ebp
sub edx, eax
mov ecx, dword [ebx + 0x50]
cmp ecx, edx
jle 0x4b40e6
mov esi, ecx
sub esi, edx
cmp ecx, esi
jb 0x4b428d
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 0x4b40c0
mov ecx, ebp
test edx, edx
je 0x4b40df
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 0x4b4133
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, [0x4d8400]
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 [0x5c5260]
test eax, eax
jne 0x4b417c
mov eax, dword [esp + 0xa4]
jmp 0x4b4190
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, [0x4db200]
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, [0x4f5171]
mov dword [eax], ecx
lea ecx, [0x5149c8]
cmp dword [0x59be78], ecx
jne 0x4b4214
mov edx, dword [0x59be7c]
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 0x4b4214
lea ecx, [0x5149c8]
mov eax, dword [esp + 0x94]
jmp 0x4b4278
lea eax, [0x4de980]
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, [0x5149c8]
mov dword [eax + 8], ecx
mov ecx, dword [0x5c5260]
test ecx, ecx
jne 0x4b4261
mov ecx, dword [esp + 0x94]
jmp 0x4b426f
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x94]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x514c0c]
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 0x4b42ad
mov ecx, dword [edx + 0x20]
cmp eax, ecx
jb 0x4b4299
jmp 0x4b42cb
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 0x4b3b1e
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