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

Disassembly:
mov ecx, dword [0x5c5164]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x100]
cmp eax, dword [ecx + 8]
jbe 0x4b0dfb
sub esp, 0x180
mov eax, dword [esp + 0x194]
lea edx, [eax + 5]
mov ecx, dword [esp + 0x18c]
cmp ecx, edx
jg 0x4b0219
mov ecx, dword [0x59be80]
mov dword [esp + 0x84], ecx
mov edx, dword [0x59be84]
mov dword [esp + 0xb8], edx
cmp dword [0x59be78], ecx
jne 0x4b017b
mov eax, dword [0x59be7c]
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 0x4b017b
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0xb8]
jmp 0x4b01e3
lea eax, [0x4de980]
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 [0x5c5260]
test ecx, ecx
jne 0x4b01cc
mov ecx, dword [esp + 0xb8]
jmp 0x4b01da
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0xb8]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x514c0c]
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 0x4b0924
cmp ecx, eax
jb 0x4b0df5
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 0x4b0de9
lea esi, [eax + 2]
mov edx, dword [esp + 0x188]
movzx ebp, word [ebp + edx]
cmp ecx, esi
jb 0x4b0de2
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 0x4b0dd6
lea ebp, [eax + 4]
movzx esi, word [esi + edx]
cmp ecx, ebp
jb 0x4b0dcf
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 0x4b0dc3
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 0x4b0418
mov ecx, dword [0x59be80]
mov dword [esp + 0x80], ecx
mov edx, dword [0x59be84]
mov dword [esp + 0xb4], edx
cmp dword [0x59be78], ecx
jne 0x4b0377
mov eax, dword [0x59be7c]
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 0x4b0377
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0xb4]
jmp 0x4b03e2
lea eax, [0x4de980]
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 [0x5c5260]
test eax, eax
jne 0x4b03cb
mov eax, dword [esp + 0xb4]
jmp 0x4b03d9
call sym.runtime.gcWriteBarrier1
mov eax, dword [esp + 0xb4]
mov dword [edi], eax
mov dword [ecx + 0xc], eax
lea eax, [0x514c0c]
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.0045fb38
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.00460000
lea edi, [esp + 0x140]
lea esi, [esp + 0x160]
call fcn.00460000
mov ecx, dword [esp + 0x7c]
test ecx, ecx
jne 0x4b08e7
lea edi, [esp + 0x160]
xor eax, eax
call fcn.0045fb38
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.00460000
lea edi, [esp + 0x120]
lea esi, [esp + 0x160]
call fcn.00460000
mov ecx, dword [esp + 0x7c]
test ecx, ecx
jne 0x4b08b1
lea edi, [esp + 0x160]
xor eax, eax
call fcn.0045fb38
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.00460000
lea edi, [esp + 0x100]
lea esi, [esp + 0x160]
call fcn.00460000
mov ecx, dword [esp + 0x7c]
test ecx, ecx
jne 0x4b087b
lea edi, [esp + 0x160]
xor eax, eax
call fcn.0045fb38
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.00460000
lea edi, [esp + 0xe0]
lea esi, [esp + 0x160]
call fcn.00460000
mov ecx, dword [esp + 0x7c]
test ecx, ecx
jne 0x4b0845
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 0x4b0dbe
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 0x4b0787
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x1a0]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xa8]
jmp 0x4b07ca
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, [0x4d8400]
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 0x4b0a72
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, [0x4db200]
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, [0x4f6348]
mov dword [eax], ecx
lea ecx, [0x5149c8]
cmp dword [0x59be78], ecx
jne 0x4b0988
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 0x4b0988
lea ecx, [0x5149c8]
mov eax, dword [esp + 0xbc]
jmp 0x4b09ef
lea eax, [0x4de980]
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, [0x5149c8]
mov dword [eax + 8], ecx
mov ecx, dword [0x5c5260]
test ecx, ecx
jne 0x4b09d8
mov ecx, dword [esp + 0xbc]
jmp 0x4b09e6
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0xbc]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x514c0c]
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 0x4b0d59
mov dword [esp + 0x6c], esi
mov dword [esp + 0x54], edi
lea edi, [esp + 0xc8]
mov ebx, eax
xor eax, eax
call fcn.0045fb3a
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 0x4b0d1b
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 0x4b0cdd
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 0x4b0c9f
mov word [esp + 0x42], cx
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x4c]
cmp ebx, ebp
jl 0x4b0b76
mov edi, dword [esp + 0x54]
jmp 0x4b0be1
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 0x4b0c61
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0xa4]
cmp eax, ecx
jae 0x4b0db9
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 0x4b0db2
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 0x4b0da9
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 0x4b0a25
jmp 0x4b0da0
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