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

Disassembly:
mov ecx, dword [0x5ef9b4]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x1c8]
cmp eax, dword [ecx + 8]
jbe 0x4b4e4a
sub esp, 0x248
mov ecx, dword [esp + 0x254]
mov eax, dword [esp + 0x25c]
cmp ecx, eax
jle 0x4b3abe
jbe 0x4b4e44
mov ebx, dword [esp + 0x250]
movzx ebp, byte [eax + ebx]
lea edi, [esp + 0xb8]
mov edx, eax
xor eax, eax
call fcn.00460160
lea ecx, [edx + 1]
xchg ebp, eax
cmp al, 0x80
xchg ebp, eax
jb 0x4b3705
xchg ebp, eax
movzx eax, al
xchg ebp, eax
lea esi, [ebp - 0x7e]
shr esi, 0x1f
lea esi, [esi + ebp - 0x7e]
sar esi, 1
lea esi, [esi + edx + 1]
mov edx, ebx
mov ebx, dword [esp + 0x254]
cmp ebx, esi
jle 0x4b36ce
add ebp, 0xffffff81
xor esi, esi
jmp 0x4b4de5
mov eax, dword [0x5c4a88]
mov ecx, dword [0x5c4a8c]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x274], eax
mov dword [esp + 0x278], ecx
add esp, 0x248
ret
xchg ebp, eax
mov byte [esp + 0x42], al
xchg ebp, eax
mov dword [esp + 0x4c], ecx
mov esi, dword [esp + 0x24c]
cmp dword [esi + 0xd0], 0x40
jge 0x4b378e
lea eax, [0x4f51a0]
mov dword [esp], eax
mov dword [esp + 4], 0x40
mov dword [esp + 8], 0x40
call sym.runtime.makeslice
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x24c]
mov dword [ecx + 0xd0], 0x40
mov dword [ecx + 0xd4], 0x40
mov edx, dword [0x5efab0]
test edx, edx
je 0x4b3776
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov edx, dword [ecx + 0xcc]
mov dword [edi + 4], edx
mov dword [ecx + 0xcc], eax
mov ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x250]
mov esi, dword [esp + 0x24c]
mov eax, dword [esi + 0xcc]
mov edx, dword [esi + 0xd0]
mov ebp, dword [esi + 0xd4]
mov dword [esp], esi
mov dword [esp + 4], ebx
mov edi, dword [esp + 0x254]
mov dword [esp + 8], edi
mov ebx, dword [esp + 0x258]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], 0xff
mov dword [esp + 0x18], 6
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], ebp
call sym.internal_zstd._Reader_.readFSE
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
test eax, eax
jne 0x4b3a8b
movzx edx, byte [esp + 0x42]
movzx edx, dl
mov ebx, dword [esp + 0x25c]
lea ebp, [ebx + edx + 1]
mov esi, dword [esp + 0x24c]
mov eax, dword [esi + 0xcc]
mov edi, dword [esi + 0xd0]
add edx, ebx
mov ebx, dword [esp + 0x254]
cmp ebx, ebp
jge 0x4b3901
mov eax, dword [0x5c4a88]
mov dword [esp + 0x68], eax
mov ecx, dword [0x5c4a8c]
mov dword [esp + 0x1cc], ecx
cmp dword [0x5c4a80], eax
jne 0x4b3874
mov edx, dword [0x5c4a84]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call sym.runtime.ifaceeq
movzx eax, byte [esp + 0xc]
test al, al
je 0x4b3874
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x1cc]
jmp 0x4b38d6
lea eax, [0x4f1c20]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x24c]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esp + 0x4c]
mov ebp, ebx
sar ebx, 0x1f
add ebp, edx
mov dword [eax], ebp
adc ecx, ebx
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x68]
mov dword [eax + 8], ecx
mov ecx, dword [0x5efab0]
test ecx, ecx
jne 0x4b38bf
mov ecx, dword [esp + 0x1cc]
jmp 0x4b38cd
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1cc]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x531260]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x274], ecx
mov dword [esp + 0x278], eax
add esp, 0x248
ret
mov dword [esp + 0x64], ecx
mov dword [esp + 0x80], ebp
mov dword [esp + 0x60], edi
mov dword [esp + 0x1c8], eax
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x50], ecx
lea edi, [esp + 0x228]
xor eax, eax
call fcn.00460198
mov dword [esp], esi
mov ecx, dword [esp + 0x250]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov ecx, dword [esp + 0x258]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x14], ecx
call sym.internal_zstd._Reader_.makeReverseBitReader
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x6c], ecx
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
lea edi, [esp + 0x228]
lea esi, [esp + 0x18]
call fcn.00460660
lea edi, [esp + 0x208]
lea esi, [esp + 0x228]
call fcn.00460660
mov ecx, dword [esp + 0x6c]
test ecx, ecx
jne 0x4b3a60
lea eax, [esp + 0x208]
mov dword [esp], eax
mov eax, dword [esp + 0x64]
mov byte [esp + 4], al
call sym.internal_zstd._reverseBitReader_.val
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
test eax, eax
jne 0x4b3a2d
mov dword [esp + 0x48], ecx
lea eax, [esp + 0x208]
mov dword [esp], eax
mov eax, dword [esp + 0x64]
mov byte [esp + 4], al
call sym.internal_zstd._reverseBitReader_.val
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x4b39fa
mov ebx, dword [esp + 8]
mov ecx, dword [esp + 0x60]
mov ebp, dword [esp + 0x1c8]
mov esi, dword [esp + 0x48]
xor eax, eax
jmp 0x4b3bbf
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x274], eax
mov dword [esp + 0x278], ecx
add esp, 0x248
ret
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x274], eax
mov dword [esp + 0x278], ecx
add esp, 0x248
ret
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x274], edx
mov dword [esp + 0x278], ebx
add esp, 0x248
ret
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x274], eax
mov dword [esp + 0x278], ecx
add esp, 0x248
ret
mov ecx, dword [0x5c4a88]
mov dword [esp + 0x70], ecx
mov edx, dword [0x5c4a8c]
mov dword [esp + 0x1d0], edx
cmp dword [0x5c4a80], ecx
jne 0x4b3b09
mov eax, dword [0x5c4a84]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call sym.runtime.ifaceeq
movzx eax, byte [esp + 0xc]
test al, al
je 0x4b3b09
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x1d0]
jmp 0x4b3b6e
lea eax, [0x4f1c20]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x24c]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esp + 0x25c]
mov ebp, ebx
sar ebx, 0x1f
add ebp, edx
mov dword [eax], ebp
adc ebx, ecx
mov dword [eax + 4], ebx
mov ecx, dword [esp + 0x70]
mov dword [eax + 8], ecx
mov ecx, dword [0x5efab0]
test ecx, ecx
jne 0x4b3b57
mov ecx, dword [esp + 0x1d0]
jmp 0x4b3b65
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1d0]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x531260]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x274], ecx
mov dword [esp + 0x278], eax
add esp, 0x248
ret
lea ecx, [esi + ebp*4]
movzx ecx, byte [ecx]
mov edx, dword [esp + 0x74]
mov byte [esp + edx + 0xb9], cl
lea ecx, [edx + 2]
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0x48]
mov ebp, esi
mov esi, ebx
mov ebx, eax
mov eax, ecx
mov ecx, edx
cmp esi, ecx
jae 0x4b4dc9
mov dword [esp + 0x44], ebx
lea edx, [ebp + esi*4 + 1]
mov dword [esp + 0x204], edx
movzx edi, byte [edx]
jmp 0x4b3d01
mov dword [esp + 0x74], eax
mov dword [esp + 0x48], esi
movzx eax, byte [edx]
lea ecx, [esp + 0x208]
mov dword [esp], ecx
mov byte [esp + 4], al
call sym.internal_zstd._reverseBitReader_.val
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x4b3f92
mov ebx, dword [esp + 8]
mov ebp, dword [esp + 0x48]
mov esi, dword [esp + 0x1c8]
lea eax, [esi + ebp*4 + 2]
movzx eax, word [eax]
add eax, ebx
mov ebx, dword [esp + 0x74]
cmp ebx, 0xff
jge 0x4b3e86
lea ebp, [esi + ebp*4]
cmp ebx, 0x100
jae 0x4b4da3
movzx ebp, byte [ebp]
xchg ebp, eax
mov byte [esp + ebx + 0xb8], al
xchg ebp, eax
mov ebp, dword [esp + 0x44]
mov ecx, dword [esp + 0x60]
cmp ebp, ecx
jae 0x4b4d9c
mov dword [esp + 0x48], eax
lea edx, [esi + ebp*4 + 1]
mov dword [esp + 0x204], edx
lea edi, [ebx + 1]
movzx eax, byte [edx]
jmp 0x4b3ffb
mov dword [esp + 0x78], edi
movzx eax, byte [edx]
lea ecx, [esp + 0x208]
mov dword [esp], ecx
mov byte [esp + 4], al
call sym.internal_zstd._reverseBitReader_.val
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x4b429b
mov ebx, dword [esp + 8]
mov ebp, dword [esp + 0x44]
mov esi, dword [esp + 0x1c8]
lea eax, [esi + ebp*4 + 2]
movzx eax, word [eax]
add ebx, eax
mov eax, ebx
mov ebx, dword [esp + 0x78]
cmp ebx, 0xff
jl 0x4b3b99
jmp 0x4b418f
mov ecx, dword [esp + 0x20c]
movzx ecx, byte [ecx + edx - 1]
mov edx, dword [esp + 0x220]
shl edx, 8
or ecx, edx
mov dword [esp + 0x220], ecx
add dword [esp + 0x224], 8
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x204]
mov ebx, dword [esp + 0x44]
cmp dword [esp + 0x224], edi
jae 0x4b3bde
mov edx, dword [esp + 0x218]
cmp dword [esp + 0x21c], edx
jae 0x4b3d38
lea ecx, [edx - 1]
mov dword [esp + 0x218], ecx
mov ebx, dword [esp + 0x210]
cmp ebx, ecx
ja 0x4b3ccb
jmp 0x4b4dc0
cmp eax, 0xfe
jge 0x4b3d7a
lea esi, [ebp + esi*4]
cmp eax, 0x100
jae 0x4b4db6
movzx esi, byte [esi]
xchg esi, ebx
mov byte [esp + eax + 0xb8], bl
xchg esi, ebx
cmp ebx, ecx
jae 0x4b4daf
lea ecx, [ebp + ebx*4]
movzx ecx, byte [ecx]
mov byte [esp + eax + 0xb9], cl
lea ecx, [eax + 2]
jmp 0x4b4077
mov eax, dword [esp + 0x208]
mov dword [esp + 0x1c4], eax
mov ecx, dword [esp + 0x218]
mov dword [esp + 0x7c], ecx
lea edx, [0x4edd20]
mov dword [esp], edx
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x200], eax
mov dword [eax + 4], 0x16
lea ecx, [0x509e57]
mov dword [eax], ecx
lea ecx, [0x530fa4]
cmp dword [0x5c4a80], ecx
jne 0x4b3df7
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 0x4b3df7
lea ecx, [0x530fa4]
mov eax, dword [esp + 0x200]
jmp 0x4b3e5b
lea eax, [0x4f1c20]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x1c4]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esp + 0x7c]
mov ebp, ebx
sar ebx, 0x1f
add edx, ebp
mov dword [eax], edx
adc ebx, ecx
mov dword [eax + 4], ebx
lea ecx, [0x530fa4]
mov dword [eax + 8], ecx
mov ecx, dword [0x5efab0]
test ecx, ecx
jne 0x4b3e44
mov ecx, dword [esp + 0x200]
jmp 0x4b3e52
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x200]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x531260]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x274], ecx
mov dword [esp + 0x278], eax
add esp, 0x248
ret
mov eax, dword [esp + 0x208]
mov dword [esp + 0x1c0], eax
mov ecx, dword [esp + 0x218]
mov dword [esp + 0x7c], ecx
lea edx, [0x4edd20]
mov dword [esp], edx
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x1fc], eax
mov dword [eax + 4], 0x16
lea ecx, [0x509e57]
mov dword [eax], ecx
lea ecx, [0x530fa4]
cmp dword [0x5c4a80], ecx
jne 0x4b3f03
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 0x4b3f03
lea ecx, [0x530fa4]
mov eax, dword [esp + 0x1fc]
jmp 0x4b3f67
lea eax, [0x4f1c20]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x1c0]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esp + 0x7c]
mov ebp, ebx
sar ebx, 0x1f
add edx, ebp
mov dword [eax], edx
adc ebx, ecx
mov dword [eax + 4], ebx
lea ecx, [0x530fa4]
mov dword [eax + 8], ecx
mov ecx, dword [0x5efab0]
test ecx, ecx
jne 0x4b3f50
mov ecx, dword [esp + 0x1fc]
jmp 0x4b3f5e
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1fc]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x531260]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x274], ecx
mov dword [esp + 0x278], eax
add esp, 0x248
ret
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x274], eax
mov dword [esp + 0x278], ecx
add esp, 0x248
ret
mov ecx, dword [esp + 0x20c]
movzx ecx, byte [ecx + edx - 1]
mov edx, dword [esp + 0x220]
shl edx, 8
or ecx, edx
mov dword [esp + 0x220], ecx
add dword [esp + 0x224], 8
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x204]
mov ebx, dword [esp + 0x74]
cmp dword [esp + 0x224], eax
jae 0x4b3c76
mov edx, dword [esp + 0x218]
cmp dword [esp + 0x21c], edx
jae 0x4b4032
lea ecx, [edx - 1]
mov dword [esp + 0x218], ecx
mov ebx, dword [esp + 0x210]
cmp ebx, ecx
ja 0x4b3fc5
jmp 0x4b4d93
cmp edi, 0xfe
jge 0x4b4083
lea ebp, [esi + ebp*4]
movzx ebp, byte [ebp]
xchg ebp, eax
mov byte [esp + ebx + 0xb9], al
xchg ebp, eax
mov eax, dword [esp + 0x48]
cmp ecx, eax
jbe 0x4b4d8e
lea ebp, [ebx + 2]
lea esi, [esi + eax*4]
cmp ebp, 0x100
jae 0x4b4d82
movzx ebp, byte [esi]
xchg ebp, eax
mov byte [esp + ebx + 0xba], al
xchg ebp, eax
lea ecx, [ebx + 3]
mov eax, dword [esp + 0x80]
jmp 0x4b42ce
mov eax, dword [esp + 0x208]
mov dword [esp + 0x1bc], eax
mov ecx, dword [esp + 0x218]
mov dword [esp + 0x7c], ecx
lea edx, [0x4edd20]
mov dword [esp], edx
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x1f8], eax
mov dword [eax + 4], 0x16
lea ecx, [0x509e57]
mov dword [eax], ecx
lea ecx, [0x530fa4]
cmp dword [0x5c4a80], ecx
jne 0x4b4100
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 0x4b4100
lea ecx, [0x530fa4]
mov eax, dword [esp + 0x1f8]
jmp 0x4b4164
lea eax, [0x4f1c20]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x1bc]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esp + 0x7c]
mov ebp, ebx
sar ebx, 0x1f
add ebp, edx
mov dword [eax], ebp
adc ebx, ecx
mov dword [eax + 4], ebx
lea ecx, [0x530fa4]
mov dword [eax + 8], ecx
mov ecx, dword [0x5efab0]
test ecx, ecx
jne 0x4b414d
mov ecx, dword [esp + 0x1f8]
jmp 0x4b415b
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1f8]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x531260]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x274], ecx
mov dword [esp + 0x278], eax
add esp, 0x248
ret
mov eax, dword [esp + 0x208]
mov dword [esp + 0x1b8], eax
mov ecx, dword [esp + 0x218]
mov dword [esp + 0x7c], ecx
lea edx, [0x4edd20]
mov dword [esp], edx
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x1f4], eax
mov dword [eax + 4], 0x16
lea ecx, [0x509e57]
mov dword [eax], ecx
lea ecx, [0x530fa4]
cmp dword [0x5c4a80], ecx
jne 0x4b420c
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 0x4b420c
lea ecx, [0x530fa4]
mov eax, dword [esp + 0x1f4]
jmp 0x4b4270
lea eax, [0x4f1c20]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x1b8]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esp + 0x7c]
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 0x4b4259
mov ecx, dword [esp + 0x1f4]
jmp 0x4b4267
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1f4]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x531260]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x274], ecx
mov dword [esp + 0x278], eax
add esp, 0x248
ret
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x274], eax
mov dword [esp + 0x278], ecx
add esp, 0x248
ret
mov dword [esp + 0x74], ecx
lea edi, [esp + 0x84]
mov edx, eax
xor eax, eax
call fcn.00460193
mov ecx, dword [esp + 0x74]
cmp ecx, 0x100
ja 0x4b4d78
mov dword [esp + 0x80], edx
xor eax, eax
xor ebx, ebx
jmp 0x4b4302
inc eax
mov ecx, esi
cmp eax, ecx
jge 0x4b443c
movzx ebp, byte [esp + eax + 0xb8]
xchg ebp, eax
cmp al, 0xc
xchg ebp, eax
ja 0x4b4346
xchg ebp, eax
movzx esi, al
xchg ebp, eax
inc dword [esp + esi*4 + 0x84]
xchg ebp, eax
test al, al
xchg ebp, eax
jbe 0x4b4342
dec ebp
mov esi, ecx
mov ecx, ebp
mov edi, 1
shl edi, cl
cmp cl, 0x20
sbb ebp, ebp
and edi, ebp
add ebx, edi
jmp 0x4b42ff
mov esi, ecx
jmp 0x4b42ff
lea eax, [0x4edd20]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x1f0], eax
mov dword [eax + 4], 0x17
lea ecx, [0x50a56d]
mov dword [eax], ecx
lea ecx, [0x530fa4]
cmp dword [0x5c4a80], ecx
jne 0x4b43aa
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 0x4b43aa
lea ecx, [0x530fa4]
mov eax, dword [esp + 0x1f0]
jmp 0x4b4411
lea eax, [0x4f1c20]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x24c]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esp + 0x80]
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 0x4b43fa
mov ecx, dword [esp + 0x1f0]
jmp 0x4b4408
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1f0]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x531260]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x274], ecx
mov dword [esp + 0x278], eax
add esp, 0x248
ret
test ebx, ebx
je 0x4b4b36
nop
nop
cmp ebx, 0x10000
jb 0x4b445a
mov ebp, ebx
shr ebp, 0x10
mov eax, 0x10
jmp 0x4b445e
mov ebp, ebx
xor eax, eax
cmp ebp, 0x100
jb 0x4b446c
shr ebp, 8
add eax, 8
cmp ebp, 0x100
jae 0x4b4d6c
lea esi, [0x51180e]
movzx ebp, byte [esi + ebp]
add ebp, eax
cmp ebp, 0xb
jg 0x4b4a40
test ebp, ebp
jl 0x4b4d67
mov eax, ecx
mov ecx, ebp
mov edi, 1
shl edi, cl
mov edx, dword [esp + 0x264]
cmp edx, edi
jl 0x4b494a
mov edi, 1
shl edi, cl
sub edi, ebx
test edi, edi
je 0x4b4854
nop
cmp edi, 0x10000
jb 0x4b44db
mov ebx, edi
shr ebx, 0x10
mov ecx, 0x10
mov dword [esp + 0x54], ecx
mov ecx, ebp
jmp 0x4b44e5
mov ebx, edi
xor ecx, ecx
mov dword [esp + 0x54], ecx
mov ecx, ebp
cmp ebx, 0x100
jb 0x4b44f9
shr ebx, 8
mov edx, dword [esp + 0x54]
add edx, 8
jmp 0x4b44fd
mov edx, dword [esp + 0x54]
cmp ebx, 0x100
jae 0x4b4d5b
movzx ebx, byte [esi + ebx]
lea esi, [edx + ebx - 1]
add edx, ebx
test esi, esi
jl 0x4b4d56
mov ecx, esi
mov ebx, 1
shl ebx, cl
cmp ecx, 0x20
sbb esi, esi
and esi, ebx
cmp esi, edi
jne 0x4b475e
cmp eax, 0x100
jge 0x4b4668
mov byte [esp + eax + 0xb8], dl
cmp edx, 0xd
jae 0x4b4d4a
inc dword [esp + edx*4 + 0x84]
mov edx, dword [esp + 0x88]
cmp edx, 2
jb 0x4b4572
test edx, 1
jne 0x4b4572
xor ecx, ecx
xor edx, edx
jmp 0x4b4c47
lea eax, [0x4edd20]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x1ec], eax
mov dword [eax + 4], 0x13
lea ecx, [0x508acf]
mov dword [eax], ecx
lea ecx, [0x530fa4]
cmp dword [0x5c4a80], ecx
jne 0x4b45d6
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 0x4b45d6
lea ecx, [0x530fa4]
mov eax, dword [esp + 0x1ec]
jmp 0x4b463d
lea eax, [0x4f1c20]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x24c]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esp + 0x80]
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 0x4b4626
mov ecx, dword [esp + 0x1ec]
jmp 0x4b4634
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1ec]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x531260]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x274], ecx
mov dword [esp + 0x278], eax
add esp, 0x248
ret
lea eax, [0x4edd20]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x1e8], eax
mov dword [eax + 4], 0x17
lea ecx, [0x50a56d]
mov dword [eax], ecx
lea ecx, [0x530fa4]
cmp dword [0x5c4a80], ecx
jne 0x4b46cc
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 0x4b46cc
lea ecx, [0x530fa4]
mov eax, dword [esp + 0x1e8]
jmp 0x4b4733
lea eax, [0x4f1c20]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x24c]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esp + 0x80]
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 0x4b471c
mov ecx, dword [esp + 0x1e8]
jmp 0x4b472a
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1e8]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x531260]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x274], ecx
mov dword [esp + 0x278], eax
add esp, 0x248
ret
lea eax, [0x4edd20]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x1e4], eax
mov dword [eax + 4], 0x13
lea ecx, [0x508acf]
mov dword [eax], ecx
lea ecx, [0x530fa4]
cmp dword [0x5c4a80], ecx
jne 0x4b47c2
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 0x4b47c2
lea ecx, [0x530fa4]
mov eax, dword [esp + 0x1e4]
jmp 0x4b4829
lea eax, [0x4f1c20]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x24c]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esp + 0x80]
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 0x4b4812
mov ecx, dword [esp + 0x1e4]
jmp 0x4b4820
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1e4]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x531260]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x274], ecx
mov dword [esp + 0x278], eax
add esp, 0x248
ret
lea eax, [0x4edd20]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x1e0], eax
mov dword [eax + 4], 0x13
lea ecx, [0x508acf]
mov dword [eax], ecx
lea ecx, [0x530fa4]
cmp dword [0x5c4a80], ecx
jne 0x4b48b8
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 0x4b48b8
lea ecx, [0x530fa4]
mov eax, dword [esp + 0x1e0]
jmp 0x4b491f
lea eax, [0x4f1c20]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x24c]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esp + 0x80]
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 0x4b4908
mov ecx, dword [esp + 0x1e0]
jmp 0x4b4916
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1e0]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x531260]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x274], ecx
mov dword [esp + 0x278], eax
add esp, 0x248
ret
lea eax, [0x4edd20]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x1dc], eax
mov dword [eax + 4], 0x17
lea ecx, [0x50a584]
mov dword [eax], ecx
lea ecx, [0x530fa4]
cmp dword [0x5c4a80], ecx
jne 0x4b49ae
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 0x4b49ae
lea ecx, [0x530fa4]
mov eax, dword [esp + 0x1dc]
jmp 0x4b4a15
lea eax, [0x4f1c20]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x24c]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esp + 0x80]
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 0x4b49fe
mov ecx, dword [esp + 0x1dc]
jmp 0x4b4a0c
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1dc]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x531260]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x274], ecx
mov dword [esp + 0x278], eax
add esp, 0x248
ret
lea eax, [0x4edd20]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x1d8], eax
mov dword [eax + 4], 0x13
lea ecx, [0x508acf]
mov dword [eax], ecx
lea ecx, [0x530fa4]
cmp dword [0x5c4a80], ecx
jne 0x4b4aa4
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 0x4b4aa4
lea ecx, [0x530fa4]
mov eax, dword [esp + 0x1d8]
jmp 0x4b4b0b
lea eax, [0x4f1c20]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x24c]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esp + 0x80]
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 0x4b4af4
mov ecx, dword [esp + 0x1d8]
jmp 0x4b4b02
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1d8]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x531260]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x274], ecx
mov dword [esp + 0x278], eax
add esp, 0x248
ret
lea eax, [0x4edd20]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x1d4], eax
mov dword [eax + 4], 0x13
lea ecx, [0x508acf]
mov dword [eax], ecx
lea ecx, [0x530fa4]
cmp dword [0x5c4a80], ecx
jne 0x4b4b9a
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 0x4b4b9a
lea ecx, [0x530fa4]
mov eax, dword [esp + 0x1d4]
jmp 0x4b4c01
lea eax, [0x4f1c20]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x24c]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esp + 0x80]
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 0x4b4bea
mov ecx, dword [esp + 0x1d4]
jmp 0x4b4bf8
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1d4]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x531260]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x274], ecx
mov dword [esp + 0x278], eax
add esp, 0x248
ret
mov esi, dword [esp + ecx*4 + 0x88]
mov dword [esp + ecx*4 + 0x88], edx
shl esi, cl
cmp ecx, 0x20
sbb edi, edi
and esi, edi
add edx, esi
mov ecx, ebx
cmp ecx, ebp
jge 0x4b4c58
lea ebx, [ecx + 1]
cmp ebx, 0xd
jb 0x4b4c2c
jmp 0x4b4d3e
mov dword [esp + 0x58], ebp
lea edx, [eax + 1]
mov dword [esp + 0x74], edx
mov ebx, dword [esp + 0x260]
mov esi, dword [esp + 0x264]
xor eax, eax
jmp 0x4b4c76
inc eax
cmp eax, edx
jge 0x4b4ce3
movzx edi, byte [esp + eax + 0xb8]
xchg edi, eax
test al, al
xchg edi, eax
je 0x4b4c75
mov dword [esp + 0x5c], eax
lea ecx, [edi - 1]
mov edx, 1
shl edx, cl
shl eax, 8
xchg edi, eax
movzx ebx, al
xchg edi, eax
sub ebp, ebx
lea ebx, [ebp + 1]
xchg edi, eax
movzx ebp, al
xchg edi, eax
or eax, ebx
cmp cl, 0x20
sbb ebx, ebx
and edx, ebx
cmp ebp, 0xd
jae 0x4b4d32
mov dword [esp + 0x78], ebp
mov ebx, dword [esp + ebp*4 + 0x84]
mov edi, dword [esp + 0x260]
xor ecx, ecx
jmp 0x4b4d1e
add dword [esp + ebp*4 + 0x84], edx
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x74]
mov ebx, edi
mov ebp, dword [esp + 0x58]
jmp 0x4b4c75
mov dword [esp + 0x26c], ebp
mov eax, dword [esp + 0x80]
mov dword [esp + 0x270], eax
mov dword [esp + 0x274], 0
mov dword [esp + 0x278], 0
add esp, 0x248
ret
mov word [edi + ebp*2], ax
inc ecx
mov ebp, dword [esp + 0x78]
cmp ecx, edx
jae 0x4b4ccc
lea ebp, [ecx + ebx]
cmp esi, ebp
ja 0x4b4d15
mov eax, ebp
mov ecx, esi
call sym.runtime.panicIndexU
mov eax, ebp
mov ecx, 0xd
call sym.runtime.panicIndex
mov eax, ebx
mov ecx, 0xd
call sym.runtime.panicIndex
mov eax, edx
mov ecx, 0xd
call sym.runtime.panicIndex
call sym.runtime.panicshift
mov eax, ebx
mov ecx, 0x100
call sym.runtime.panicIndexU
call sym.runtime.panicshift
mov eax, ebp
mov ecx, 0x100
call sym.runtime.panicIndexU
mov edx, 0x100
call sym.runtime.panicSliceAlen
mov eax, ebp
mov ecx, 0x100
call sym.runtime.panicIndex
call sym.runtime.panicIndexU
mov eax, ecx
mov ecx, ebx
call sym.runtime.panicIndexU
mov eax, ebp
call sym.runtime.panicIndexU
mov eax, ebx
mov ecx, 0x100
call sym.runtime.panicIndex
mov eax, ebx
call sym.runtime.panicIndexU
mov ecx, 0x100
call sym.runtime.panicIndex
mov eax, ecx
mov ecx, ebx
call sym.runtime.panicIndexU
mov eax, esi
call sym.runtime.panicIndexU
movzx edi, byte [esp + 0x43]
and edi, 0xf
xchg edi, eax
mov byte [esp + esi + 0xb9], al
xchg edi, eax
add esi, 2
inc ecx
cmp esi, ebp
jge 0x4b4e1a
cmp ebx, ecx
jbe 0x4b4e3b
movzx edi, byte [ecx + edx]
cmp esi, 0x100
jae 0x4b4e2f
xchg edi, eax
mov byte [esp + 0x43], al
xchg edi, eax
xchg edi, eax
shr al, 4
xchg edi, eax
xchg edi, eax
mov byte [esp + esi + 0xb8], al
xchg edi, eax
lea edi, [esi + 1]
cmp edi, 0x100
jb 0x4b4dd0
jmp 0x4b4e23
mov eax, ecx
mov ecx, ebp
jmp 0x4b42ce
mov eax, edi
mov ecx, 0x100
call sym.runtime.panicIndex
mov eax, esi
mov ecx, 0x100
call sym.runtime.panicIndex
mov eax, ecx
mov ecx, ebx
call sym.runtime.panicIndex
call sym.runtime.panicIndex
nop
call sym.runtime.morestack_noctxt
jmp sym.internal_zstd._Reader_.readHuff