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

Disassembly:
mov ecx, dword [0x5e3958]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x4b1466
add esp, 0xffffff80
movzx edx, byte [esp + 0x98]
mov ebx, edx
shr dl, 2
and edx, 3
cmp dl, 1
ja 0x4b0ab1
mov eax, dword [esp + 0x94]
lea ebp, [eax + 1]
mov ecx, dword [esp + 0x8c]
cmp ecx, ebp
jg 0x4b0a5b
mov ecx, dword [0x5b8a28]
mov dword [esp + 0x58], ecx
mov edx, dword [0x5b8a2c]
mov dword [esp + 0x70], edx
cmp dword [0x5b8a20], ecx
jne 0x4b09be
mov eax, dword [0x5b8a24]
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 0x4b09be
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x70]
jmp 0x4b0a1d
lea eax, [0x4ea3a0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x84]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esp + 0x94]
mov ebp, ebx
sar ebx, 0x1f
add edx, ebp
mov dword [eax], edx
adc ecx, ebx
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x58]
mov dword [eax + 8], ecx
mov ecx, dword [0x5e3a60]
test ecx, ecx
jne 0x4b0a09
mov ecx, dword [esp + 0x70]
jmp 0x4b0a14
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x70]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x5284a0]
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], eax
sub esp, 0xffffff80
ret
cmp ecx, eax
jbe 0x4b1460
movzx esi, bl
sar esi, 4
mov edi, dword [esp + 0x88]
movzx ebx, byte [eax + edi]
mov dword [esp + 0x60], ebx
and ebx, 0x3f
shl ebx, 4
or ebx, esi
cmp ecx, ebp
jbe 0x4b1459
mov ebp, dword [esp + 0x60]
sar ebp, 6
movzx esi, byte [eax + edi + 1]
shl esi, 2
or esi, ebp
test dl, dl
jne 0x4b0aa4
mov edx, 1
jmp 0x4b0aa9
mov edx, 4
add eax, 2
jmp 0x4b0d84
cmp dl, 2
jne 0x4b0c13
mov eax, dword [esp + 0x94]
lea edx, [eax + 2]
mov ecx, dword [esp + 0x8c]
cmp ecx, edx
jg 0x4b0bb5
mov ecx, dword [0x5b8a28]
mov dword [esp + 0x54], ecx
mov edx, dword [0x5b8a2c]
mov dword [esp + 0x6c], edx
cmp dword [0x5b8a20], ecx
jne 0x4b0b18
mov eax, dword [0x5b8a24]
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 0x4b0b18
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x6c]
jmp 0x4b0b77
lea eax, [0x4ea3a0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x84]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esp + 0x94]
mov ebp, ebx
sar ebx, 0x1f
add edx, ebp
mov dword [eax], edx
adc ecx, ebx
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x54]
mov dword [eax + 8], ecx
mov ecx, dword [0x5e3a60]
test ecx, ecx
jne 0x4b0b63
mov ecx, dword [esp + 0x6c]
jmp 0x4b0b6e
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x6c]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x5284a0]
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], eax
sub esp, 0xffffff80
ret
cmp ecx, eax
jbe 0x4b1454
movzx ebp, bl
sar ebp, 4
mov esi, dword [esp + 0x88]
movzx edi, byte [eax + esi]
shl edi, 4
lea ebx, [eax + 1]
or ebp, edi
cmp ecx, ebx
jbe 0x4b144d
movzx ebx, byte [eax + esi + 1]
mov edi, ebx
and ebx, 3
shl ebx, 0xc
or ebx, ebp
cmp ecx, edx
jbe 0x4b1446
sar edi, 2
movzx ebp, byte [eax + esi + 2]
shl ebp, 6
or ebp, edi
add eax, 3
mov edi, esi
mov esi, ebp
mov edx, 4
jmp 0x4b0d84
mov eax, dword [esp + 0x94]
lea edx, [eax + 3]
mov ecx, dword [esp + 0x8c]
cmp ecx, edx
jg 0x4b0d0e
mov ecx, dword [0x5b8a28]
mov dword [esp + 0x50], ecx
mov edx, dword [0x5b8a2c]
mov dword [esp + 0x68], edx
cmp dword [0x5b8a20], ecx
jne 0x4b0c71
mov eax, dword [0x5b8a24]
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 0x4b0c71
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x68]
jmp 0x4b0cd0
lea eax, [0x4ea3a0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x84]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esp + 0x94]
mov ebp, ebx
sar ebx, 0x1f
add edx, ebp
mov dword [eax], edx
adc ecx, ebx
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x50]
mov dword [eax + 8], ecx
mov ecx, dword [0x5e3a60]
test ecx, ecx
jne 0x4b0cbc
mov ecx, dword [esp + 0x68]
jmp 0x4b0cc7
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x68]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x5284a0]
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], eax
sub esp, 0xffffff80
ret
cmp ecx, eax
jbe 0x4b1441
movzx ebp, bl
sar ebp, 4
mov esi, dword [esp + 0x88]
movzx edi, byte [eax + esi]
shl edi, 4
lea ebx, [eax + 1]
or ebp, edi
cmp ecx, ebx
jbe 0x4b143a
mov dword [esp + 0x60], edx
movzx ebx, byte [eax + esi + 1]
mov edi, ebx
and ebx, 0x3f
shl ebx, 0xc
lea edx, [eax + 2]
or ebx, ebp
cmp ecx, edx
jbe 0x4b1433
sar edi, 6
movzx edx, byte [eax + esi + 2]
shl edx, 2
or edx, edi
mov ebp, dword [esp + 0x60]
cmp ecx, ebp
jbe 0x4b142c
movzx ebp, byte [eax + esi + 3]
shl ebp, 0xa
or ebp, edx
add eax, 4
mov edi, esi
mov esi, ebp
mov edx, 4
mov dword [esp + 0x48], eax
cmp ebx, 0x20000
jg 0x4b1332
lea ebp, [eax + esi]
cmp ecx, ebp
jl 0x4b0da3
test ebp, ebp
jge 0x4b0e82
mov ecx, dword [0x5b8a28]
mov dword [esp + 0x4c], ecx
mov edx, dword [0x5b8a2c]
mov dword [esp + 0x64], edx
cmp dword [0x5b8a20], ecx
jne 0x4b0de8
mov eax, dword [0x5b8a24]
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 0x4b0de8
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x64]
jmp 0x4b0e44
lea eax, [0x4ea3a0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x84]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esp + 0x48]
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 + 0x4c]
mov dword [eax + 8], ecx
mov ecx, dword [0x5e3a60]
test ecx, ecx
jne 0x4b0e30
mov ecx, dword [esp + 0x64]
jmp 0x4b0e3b
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x64]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x5284a0]
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], eax
sub esp, 0xffffff80
ret
mov dword [esp + 0x44], ebx
mov dword [esp + 0x40], ebp
movzx ebp, byte [esp + 0x98]
and ebp, 3
xchg ebp, eax
cmp al, 2
xchg ebp, eax
jne 0x4b10e3
mov dword [esp + 0x3c], edx
mov dword [esp + 0x5c], esi
mov ebp, dword [esp + 0x84]
cmp dword [ebp + 0x3c], 0x800
jge 0x4b0f22
lea eax, [0x4e2c40]
mov dword [esp], eax
mov dword [esp + 4], 0x800
mov dword [esp + 8], 0x800
call sym.runtime.makeslice
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x84]
mov dword [ecx + 0x3c], 0x800
mov dword [ecx + 0x40], 0x800
mov edx, dword [0x5e3a60]
test edx, edx
je 0x4b0f06
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov edx, dword [ecx + 0x38]
mov dword [edi + 4], edx
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x8c]
mov ebp, dword [esp + 0x84]
mov edi, dword [esp + 0x88]
mov edx, dword [ebp + 0x38]
mov ebx, dword [ebp + 0x3c]
mov esi, dword [ebp + 0x40]
mov dword [esp], ebp
mov dword [esp + 4], edi
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x90]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], esi
call sym.internal_zstd._Reader_.readHuff
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x4b109d
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x84]
mov dword [edx + 0x44], ecx
mov ecx, dword [esp + 0x48]
mov ebx, eax
sub eax, ecx
mov ebp, dword [esp + 0x5c]
cmp ebp, eax
jl 0x4b0fa3
sub ebp, eax
mov ecx, dword [esp + 0x8c]
mov edi, dword [esp + 0x88]
mov esi, ebp
mov eax, ebx
mov ebp, edx
mov edx, dword [esp + 0x3c]
jmp 0x4b10f5
lea eax, [0x4e6560]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x7c], eax
mov dword [eax + 4], 0x15
lea ecx, [0x50175d]
mov dword [eax], ecx
lea ecx, [0x5281f8]
cmp dword [0x5b8a20], ecx
jne 0x4b1001
mov edx, dword [0x5b8a24]
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 0x4b1001
lea ecx, [0x5281f8]
mov eax, dword [esp + 0x7c]
jmp 0x4b105f
lea eax, [0x4ea3a0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x84]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esp + 0x48]
mov ebp, ebx
sar ebx, 0x1f
add ebp, edx
mov dword [eax], ebp
adc ecx, ebx
mov dword [eax + 4], ecx
lea ecx, [0x5281f8]
mov dword [eax + 8], ecx
mov ecx, dword [0x5e3a60]
test ecx, ecx
jne 0x4b104b
mov ecx, dword [esp + 0x7c]
jmp 0x4b1056
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x7c]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x5284a0]
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], eax
sub esp, 0xffffff80
ret
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], ecx
sub esp, 0xffffff80
ret
mov ebp, dword [esp + 0x84]
mov ebx, dword [ebp + 0x44]
test ebx, ebx
je 0x4b1238
cmp edx, 1
jne 0x4b115c
mov dword [esp], ebp
mov dword [esp + 4], edi
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x90]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], esi
mov eax, dword [esp + 0x44]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x24], eax
call sym.internal_zstd._Reader_.readLiteralsOneStream
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x30]
jmp 0x4b11bc
mov dword [esp], ebp
mov dword [esp + 4], edi
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x90]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], esi
mov eax, dword [esp + 0x44]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x24], eax
call sym.internal_zstd._Reader_.readLiteralsFourStreams
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x30]
test eax, eax
je 0x4b11fe
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], ecx
sub esp, 0xffffff80
ret
mov eax, dword [esp + 0x40]
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], edx
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb4], ebp
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
sub esp, 0xffffff80
ret
lea eax, [0x4e6560]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x78], eax
mov dword [eax + 4], 0x1d
lea ecx, [0x504620]
mov dword [eax], ecx
lea ecx, [0x5281f8]
cmp dword [0x5b8a20], ecx
jne 0x4b1296
mov edx, dword [0x5b8a24]
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 0x4b1296
lea ecx, [0x5281f8]
mov eax, dword [esp + 0x78]
jmp 0x4b12f4
lea eax, [0x4ea3a0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x84]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esp + 0x48]
mov ebp, ebx
sar ebx, 0x1f
add ebp, edx
mov dword [eax], ebp
adc ecx, ebx
mov dword [eax + 4], ecx
lea ecx, [0x5281f8]
mov dword [eax + 8], ecx
mov ecx, dword [0x5e3a60]
test ecx, ecx
jne 0x4b12e0
mov ecx, dword [esp + 0x78]
jmp 0x4b12eb
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x78]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x5284a0]
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], eax
sub esp, 0xffffff80
ret
lea eax, [0x4e6560]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x74], eax
mov dword [eax + 4], 0x16
lea ecx, [0x501e7d]
mov dword [eax], ecx
lea ecx, [0x5281f8]
cmp dword [0x5b8a20], ecx
jne 0x4b1390
mov edx, dword [0x5b8a24]
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 0x4b1390
lea ecx, [0x5281f8]
mov eax, dword [esp + 0x74]
jmp 0x4b13ee
lea eax, [0x4ea3a0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x84]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esp + 0x48]
mov ebp, ebx
sar ebx, 0x1f
add ebp, edx
mov dword [eax], ebp
adc ecx, ebx
mov dword [eax + 4], ecx
lea ecx, [0x5281f8]
mov dword [eax + 8], ecx
mov ecx, dword [0x5e3a60]
test ecx, ecx
jne 0x4b13da
mov ecx, dword [esp + 0x74]
jmp 0x4b13e5
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x74]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x5284a0]
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], eax
sub esp, 0xffffff80
ret
mov eax, ebp
call sym.runtime.panicIndex
mov eax, edx
call sym.runtime.panicIndex
mov eax, ebx
call sym.runtime.panicIndex
call sym.runtime.panicIndex
mov eax, edx
call sym.runtime.panicIndex
mov eax, ebx
call sym.runtime.panicIndex
call sym.runtime.panicIndex
mov eax, ebp
call sym.runtime.panicIndex
call sym.runtime.panicIndex
nop
call sym.runtime.morestack_noctxt
jmp sym.internal_zstd._Reader_.readHuffLiterals