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

Disassembly:
mov ecx, dword [0x5ef9b4]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x100]
cmp eax, dword [ecx + 8]
jbe 0x4b73eb
sub esp, 0x180
mov eax, dword [esp + 0x194]
lea edx, [eax + 5]
mov ecx, dword [esp + 0x18c]
cmp ecx, edx
jg 0x4b6809
mov ecx, dword [0x5c4a88]
mov dword [esp + 0x84], ecx
mov edx, dword [0x5c4a8c]
mov dword [esp + 0xb8], edx
cmp dword [0x5c4a80], ecx
jne 0x4b676b
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 0x4b676b
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0xb8]
jmp 0x4b67d3
lea eax, [0x4f1c20]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x184]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esp + 0x194]
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 + 0x84]
mov dword [eax + 8], ecx
mov ecx, dword [0x5efab0]
test ecx, ecx
jne 0x4b67bc
mov ecx, dword [esp + 0xb8]
jmp 0x4b67ca
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0xb8]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x531260]
mov dword [esp + 0x1ac], 0
mov dword [esp + 0x1b0], 0
mov dword [esp + 0x1b4], 0
mov dword [esp + 0x1b8], ecx
mov dword [esp + 0x1bc], eax
add esp, 0x180
ret
mov edx, dword [esp + 0x198]
cmp edx, 6
jl 0x4b6f14
cmp ecx, eax
jb 0x4b73e5
mov ebx, ecx
sub ebx, eax
mov ebp, dword [esp + 0x190]
sub ebp, eax
mov edi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, eax
cmp ebx, 1
jbe 0x4b73d9
lea esi, [eax + 2]
mov edx, dword [esp + 0x188]
movzx ebp, word [ebp + edx]
cmp ecx, esi
jb 0x4b73d2
mov dword [esp + 0xa4], edi
mov word [esp + 0x4a], bp
lea ebp, [ebx - 2]
add edi, 0xfffffffe
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and esi, edi
cmp ebp, 1
jbe 0x4b73c6
lea ebp, [eax + 4]
movzx esi, word [esi + edx]
cmp ecx, ebp
jb 0x4b73bf
add ebx, 0xfffffffc
mov edi, edx
mov edx, dword [esp + 0xa4]
add edx, 0xfffffffc
neg edx
sar edx, 0x1f
and edx, ebp
cmp ebx, 1
jbe 0x4b73b3
mov dword [esp + 0xa4], ebp
mov word [esp + 0x48], si
movzx ebx, word [esp + 0x4a]
movzx ebp, bx
movzx ecx, si
mov esi, dword [esp + 0x198]
sar esi, 0x1f
movzx edx, word [edx + edi]
movzx edi, dx
add ebp, ecx
mov ecx, 0
adc ecx, 0
add edi, ebp
adc ecx, 0
mov ebp, dword [esp + 0x198]
add ebp, 0xfffffffa
adc esi, 0xffffffff
cmp esi, ecx
sete cl
xchg esi, ebx
setb bl
xchg esi, ebx
cmp ebp, edi
xchg ebp, ebx
setb bl
xchg ebp, ebx
and ecx, ebp
or esi, ecx
xchg esi, eax
test al, al
xchg esi, eax
je 0x4b6a08
mov ecx, dword [0x5c4a88]
mov dword [esp + 0x80], ecx
mov edx, dword [0x5c4a8c]
mov dword [esp + 0xb4], edx
cmp dword [0x5c4a80], ecx
jne 0x4b6967
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 0x4b6967
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0xb4]
jmp 0x4b69d2
lea eax, [0x4f1c20]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 0x194]
add eax, 6
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x184]
mov ebx, dword [edx + 0x14]
mov edx, dword [edx + 0x18]
mov ebp, eax
sar eax, 0x1f
add ebp, ebx
mov dword [ecx], ebp
adc eax, edx
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x80]
mov dword [ecx + 8], eax
mov eax, dword [0x5efab0]
test eax, eax
jne 0x4b69bb
mov eax, dword [esp + 0xb4]
jmp 0x4b69c9
call sym.runtime.gcWriteBarrier1
mov eax, dword [esp + 0xb4]
mov dword [edi], eax
mov dword [ecx + 0xc], eax
lea eax, [0x531260]
mov dword [esp + 0x1ac], 0
mov dword [esp + 0x1b0], 0
mov dword [esp + 0x1b4], 0
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1bc], ecx
add esp, 0x180
ret
mov ecx, dword [esp + 0x198]
sub ecx, edi
mov dword [esp + 0xa0], ecx
movzx ebx, bx
mov dword [esp + 0x9c], ebx
lea ebp, [eax + ebx]
mov dword [esp + 0x98], ebp
lea esi, [eax + ebx + 5]
movzx ebx, word [esp + 0x48]
movzx ebx, bx
mov dword [esp + 0x94], ebx
lea eax, [ebp + ebx]
mov dword [esp + 0x90], eax
movzx edx, dx
mov dword [esp + 0x8c], edx
lea edi, [edx + eax]
mov dword [esp + 0x88], edi
lea edi, [esp + 0x160]
xor eax, eax
call fcn.00460198
mov ecx, dword [esp + 0x184]
mov dword [esp], ecx
mov ecx, dword [esp + 0x188]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x18c]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x190]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0xa4]
mov dword [esp + 0x14], esi
call sym.internal_zstd._Reader_.makeReverseBitReader
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x7c], ecx
mov edx, dword [esp + 0x94]
mov ebx, dword [esp + 0x98]
lea ebp, [ebx + edx + 5]
mov esi, dword [esp + 0x8c]
mov edx, dword [esp + 0x90]
lea edi, [edx + esi + 5]
mov dword [esp + 0x68], edi
mov edx, dword [esp + 0xa0]
mov esi, dword [esp + 0x88]
lea edx, [esi + edx - 1]
mov dword [esp + 0x64], edx
mov esi, dword [esp + 0x38]
mov dword [esp + 0xc4], esi
mov edx, dword [esp + 0x3c]
lea edi, [esp + 0x160]
lea esi, [esp + 0x18]
call fcn.00460660
lea edi, [esp + 0x140]
lea esi, [esp + 0x160]
call fcn.00460660
mov ecx, dword [esp + 0x7c]
test ecx, ecx
jne 0x4b6ed7
lea edi, [esp + 0x160]
xor eax, eax
call fcn.00460198
mov ecx, dword [esp + 0x184]
mov dword [esp], ecx
mov edx, dword [esp + 0x188]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x18c]
mov dword [esp + 8], ebx
mov esi, dword [esp + 0x190]
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x9c]
mov esi, dword [esp + 0x194]
lea ebp, [esi + ebp + 4]
mov dword [esp + 0x14], ebp
call sym.internal_zstd._Reader_.makeReverseBitReader
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x7c], ecx
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
lea edi, [esp + 0x160]
lea esi, [esp + 0x18]
call fcn.00460660
lea edi, [esp + 0x120]
lea esi, [esp + 0x160]
call fcn.00460660
mov ecx, dword [esp + 0x7c]
test ecx, ecx
jne 0x4b6ea1
lea edi, [esp + 0x160]
xor eax, eax
call fcn.00460198
mov ecx, dword [esp + 0x184]
mov dword [esp], ecx
mov edx, dword [esp + 0x188]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x18c]
mov dword [esp + 8], ebx
mov ebp, dword [esp + 0x190]
mov dword [esp + 0xc], ebp
mov esi, dword [esp + 0x68]
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x94]
mov ebp, dword [esp + 0x98]
lea ebp, [ebp + esi + 4]
mov dword [esp + 0x14], ebp
call sym.internal_zstd._Reader_.makeReverseBitReader
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x7c], ecx
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
lea edi, [esp + 0x160]
lea esi, [esp + 0x18]
call fcn.00460660
lea edi, [esp + 0x100]
lea esi, [esp + 0x160]
call fcn.00460660
mov ecx, dword [esp + 0x7c]
test ecx, ecx
jne 0x4b6e6b
lea edi, [esp + 0x160]
xor eax, eax
call fcn.00460198
mov ecx, dword [esp + 0x184]
mov dword [esp], ecx
mov edx, dword [esp + 0x188]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x18c]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x190]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x64]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x8c]
mov ebx, dword [esp + 0x90]
lea edx, [ebx + edx + 4]
mov dword [esp + 0x14], edx
call sym.internal_zstd._Reader_.makeReverseBitReader
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x7c], ecx
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
lea edi, [esp + 0x160]
lea esi, [esp + 0x18]
call fcn.00460660
lea edi, [esp + 0xe0]
lea esi, [esp + 0x160]
call fcn.00460660
mov ecx, dword [esp + 0x7c]
test ecx, ecx
jne 0x4b6e35
mov eax, dword [esp + 0x19c]
lea ecx, [eax + 3]
sar ecx, 0x1f
shr ecx, 0x1e
lea ecx, [ecx + eax + 3]
sar ecx, 2
mov edx, dword [esp + 0x1a4]
lea ebx, [edx + ecx*2]
lea ebp, [ecx + ecx*2]
lea esi, [edx + ecx]
lea edi, [ecx + ebx]
sub eax, ebp
mov ebp, dword [esp + 0x19c]
test ebp, ebp
jl 0x4b73ae
mov dword [esp + 0x50], ecx
mov dword [esp + 0x5c], esi
mov dword [esp + 0x58], ebx
mov dword [esp + 0x54], edi
mov dword [esp + 0x4c], eax
lea eax, [edx + ebp]
mov ecx, dword [esp + 0x1a8]
cmp ecx, eax
jb 0x4b6d77
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x1a0]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xa8]
jmp 0x4b6dba
mov edx, dword [esp + 0x1a0]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebp
lea eax, [0x4ea0c0]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x19c]
mov dword [esp + 0xc0], eax
mov eax, ecx
mov ecx, edx
mov dword [esp + 0xa4], eax
mov dword [esp + 0x9c], ecx
sub eax, ebp
mov ebx, dword [esp + 0xc0]
add eax, ebx
mov dword [esp], eax
mov dword [esp + 4], ebp
call sym.runtime.memclrNoHeapPointers
mov eax, dword [esp + 0x184]
mov ecx, dword [eax + 0x44]
mov dword [esp + 0x98], ecx
mov edx, 1
shl edx, cl
mov ebx, dword [eax + 0x38]
mov dword [esp + 0xb0], ebx
mov ebp, dword [eax + 0x3c]
mov dword [esp + 0x70], ebp
mov eax, dword [eax + 0x40]
mov dword [esp + 0x74], eax
cmp ecx, 0x20
sbb esi, esi
and edx, esi
dec edx
mov dword [esp + 0x78], edx
xor esi, esi
mov edi, dword [esp + 0x54]
mov edi, dword [esp + 0x1a4]
mov dword [esp + 0x60], edi
mov edi, dword [esp + 0x54]
jmp 0x4b7062
mov dword [esp + 0x1ac], 0
mov dword [esp + 0x1b0], 0
mov dword [esp + 0x1b4], 0
mov dword [esp + 0x1b8], edx
mov dword [esp + 0x1bc], ebx
add esp, 0x180
ret
mov dword [esp + 0x1ac], 0
mov dword [esp + 0x1b0], 0
mov dword [esp + 0x1b4], 0
mov dword [esp + 0x1b8], edx
mov dword [esp + 0x1bc], ebx
add esp, 0x180
ret
mov dword [esp + 0x1ac], 0
mov dword [esp + 0x1b0], 0
mov dword [esp + 0x1b4], 0
mov dword [esp + 0x1b8], edx
mov dword [esp + 0x1bc], ebx
add esp, 0x180
ret
mov dword [esp + 0x1ac], 0
mov dword [esp + 0x1b0], 0
mov dword [esp + 0x1b4], 0
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1bc], edx
add esp, 0x180
ret
lea eax, [0x4edd20]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0xbc], eax
mov dword [eax + 4], 0x2b
lea ecx, [0x50f5e7]
mov dword [eax], ecx
lea ecx, [0x530fa4]
cmp dword [0x5c4a80], ecx
jne 0x4b6f78
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 0x4b6f78
lea ecx, [0x530fa4]
mov eax, dword [esp + 0xbc]
jmp 0x4b6fdf
lea eax, [0x4f1c20]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x184]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esp + 0x194]
mov ebp, ebx
sar ebx, 0x1f
add edx, ebp
mov dword [eax], edx
adc ecx, ebx
mov dword [eax + 4], ecx
lea ecx, [0x530fa4]
mov dword [eax + 8], ecx
mov ecx, dword [0x5efab0]
test ecx, ecx
jne 0x4b6fc8
mov ecx, dword [esp + 0xbc]
jmp 0x4b6fd6
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0xbc]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x531260]
mov dword [esp + 0x1ac], 0
mov dword [esp + 0x1b0], 0
mov dword [esp + 0x1b4], 0
mov dword [esp + 0x1b8], ecx
mov dword [esp + 0x1bc], eax
add esp, 0x180
ret
shr cx, 8
mov byte [ebx + esi], cl
movzx ecx, word [esp + 0x42]
and ecx, 0xff
sub dword [esp + 0x11c], ecx
mov ecx, dword [esp + 0x6c]
inc ecx
inc eax
mov edx, dword [esp + 0x5c]
inc edx
inc esi
mov ebx, dword [esp + 0xb0]
mov ebp, dword [esp + 0x70]
mov dword [esp + 0x60], eax
mov dword [esp + 0x5c], edx
mov dword [esp + 0x58], esi
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x78]
mov esi, ecx
mov ecx, dword [esp + 0x98]
mov ebx, dword [esp + 0x50]
cmp esi, ebx
jge 0x4b7349
mov dword [esp + 0x6c], esi
mov dword [esp + 0x54], edi
lea edi, [esp + 0xc8]
mov ebx, eax
xor eax, eax
call fcn.0046019a
lea ecx, [sym.internal_zstd._Reader_.readLiteralsFourStreams.func1]
mov dword [esp + 0xc8], ecx
mov esi, dword [esp + 0x98]
mov dword [esp + 0xcc], esi
mov dword [esp + 0xd0], edx
mov dword [esp + 0xd8], ebp
mov dword [esp + 0xdc], ebx
mov ebx, dword [esp + 0xb0]
mov dword [esp + 0xd4], ebx
mov ebx, dword [esp + 0xc8]
lea ebp, [esp + 0x140]
mov dword [esp], ebp
lea edx, [esp + 0xc8]
call ebx
mov ecx, dword [esp + 8]
movzx ebx, word [esp + 4]
test ecx, ecx
jne 0x4b730b
mov word [esp + 0x46], bx
mov eax, dword [esp + 0xc8]
lea ecx, [esp + 0x120]
mov dword [esp], ecx
lea edx, [esp + 0xc8]
call eax
mov eax, dword [esp + 8]
movzx ecx, word [esp + 4]
test eax, eax
jne 0x4b72cd
mov word [esp + 0x44], cx
mov eax, dword [esp + 0xc8]
lea ecx, [esp + 0x100]
mov dword [esp], ecx
lea edx, [esp + 0xc8]
call eax
mov eax, dword [esp + 8]
movzx ecx, word [esp + 4]
test eax, eax
jne 0x4b728f
mov word [esp + 0x42], cx
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x4c]
cmp ebx, ebp
jl 0x4b7166
mov edi, dword [esp + 0x54]
jmp 0x4b71d1
mov eax, dword [esp + 0xc8]
lea ecx, [esp + 0xe0]
mov dword [esp], ecx
lea edx, [esp + 0xc8]
call eax
mov eax, dword [esp + 8]
test eax, eax
jne 0x4b7251
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0xa4]
cmp eax, ecx
jae 0x4b73a9
movzx ebx, word [esp + 4]
mov ebp, ebx
shr bx, 8
mov esi, dword [esp + 0xc0]
mov byte [esi + eax], bl
and ebp, 0xff
sub dword [esp + 0xfc], ebp
lea edi, [eax + 1]
movzx ecx, word [esp + 0x42]
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x4c]
mov eax, dword [esp + 0x60]
mov esi, dword [esp + 0xa4]
cmp eax, esi
jae 0x4b73a2
movzx ebp, word [esp + 0x46]
shr bp, 8
mov ebx, dword [esp + 0xc0]
xchg ebp, ecx
mov byte [ebx + eax], cl
xchg ebp, ecx
movzx ebp, word [esp + 0x46]
and ebp, 0xff
sub dword [esp + 0x15c], ebp
mov ebp, dword [esp + 0x5c]
cmp ebp, esi
jae 0x4b7399
movzx esi, word [esp + 0x44]
shr si, 8
xchg esi, eax
mov byte [ebx + ebp], al
xchg esi, eax
movzx esi, word [esp + 0x44]
and esi, 0xff
sub dword [esp + 0x13c], esi
mov esi, dword [esp + 0x58]
mov ebp, dword [esp + 0xa4]
cmp esi, ebp
jb 0x4b7015
jmp 0x4b7390
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x1ac], 0
mov dword [esp + 0x1b0], 0
mov dword [esp + 0x1b4], 0
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1bc], ecx
add esp, 0x180
ret
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x1ac], 0
mov dword [esp + 0x1b0], 0
mov dword [esp + 0x1b4], 0
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1bc], ecx
add esp, 0x180
ret
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x1ac], 0
mov dword [esp + 0x1b0], 0
mov dword [esp + 0x1b4], 0
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1bc], ecx
add esp, 0x180
ret
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x1ac], 0
mov dword [esp + 0x1b0], 0
mov dword [esp + 0x1b4], 0
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1bc], ecx
add esp, 0x180
ret
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x1ac], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x1b0], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x1b8], 0
mov dword [esp + 0x1bc], 0
add esp, 0x180
ret
mov eax, esi
mov ecx, ebp
call sym.runtime.panicIndex
mov eax, ebp
mov ecx, esi
call sym.runtime.panicIndex
mov ecx, esi
call sym.runtime.panicIndex
call sym.runtime.panicIndex
call sym.runtime.panicmakeslicelen
mov eax, 1
mov ecx, ebx
call sym.runtime.panicIndex
mov eax, ebp
call sym.runtime.panicSliceB
mov eax, 1
mov ecx, ebp
call sym.runtime.panicIndex
mov eax, esi
call sym.runtime.panicSliceB
mov eax, 1
mov ecx, ebx
call sym.runtime.panicIndex
call sym.runtime.panicSliceB
nop
call sym.runtime.morestack_noctxt
jmp sym.internal_zstd._Reader_.readLiteralsFourStreams