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

Disassembly:
mov ecx, dword [0x5e3958]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x100]
cmp eax, dword [ecx + 8]
jbe 0x4b256b
sub esp, 0x180
mov eax, dword [esp + 0x194]
lea edx, [eax + 5]
mov ecx, dword [esp + 0x18c]
cmp ecx, edx
jg 0x4b1989
mov ecx, dword [0x5b8a28]
mov dword [esp + 0x84], ecx
mov edx, dword [0x5b8a2c]
mov dword [esp + 0xb8], edx
cmp dword [0x5b8a20], ecx
jne 0x4b18eb
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 0x4b18eb
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0xb8]
jmp 0x4b1953
lea eax, [0x4ea3a0]
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 [0x5e3a60]
test ecx, ecx
jne 0x4b193c
mov ecx, dword [esp + 0xb8]
jmp 0x4b194a
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0xb8]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x5284a0]
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 0x4b2094
cmp ecx, eax
jb 0x4b2565
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 0x4b2559
lea esi, [eax + 2]
mov edx, dword [esp + 0x188]
movzx ebp, word [ebp + edx]
cmp ecx, esi
jb 0x4b2552
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 0x4b2546
lea ebp, [eax + 4]
movzx esi, word [esi + edx]
cmp ecx, ebp
jb 0x4b253f
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 0x4b2533
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 0x4b1b88
mov ecx, dword [0x5b8a28]
mov dword [esp + 0x80], ecx
mov edx, dword [0x5b8a2c]
mov dword [esp + 0xb4], edx
cmp dword [0x5b8a20], ecx
jne 0x4b1ae7
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 0x4b1ae7
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0xb4]
jmp 0x4b1b52
lea eax, [0x4ea3a0]
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 [0x5e3a60]
test eax, eax
jne 0x4b1b3b
mov eax, dword [esp + 0xb4]
jmp 0x4b1b49
call sym.runtime.gcWriteBarrier1
mov eax, dword [esp + 0xb4]
mov dword [edi], eax
mov dword [ecx + 0xc], eax
lea eax, [0x5284a0]
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.004600b8
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.00460580
lea edi, [esp + 0x140]
lea esi, [esp + 0x160]
call fcn.00460580
mov ecx, dword [esp + 0x7c]
test ecx, ecx
jne 0x4b2057
lea edi, [esp + 0x160]
xor eax, eax
call fcn.004600b8
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.00460580
lea edi, [esp + 0x120]
lea esi, [esp + 0x160]
call fcn.00460580
mov ecx, dword [esp + 0x7c]
test ecx, ecx
jne 0x4b2021
lea edi, [esp + 0x160]
xor eax, eax
call fcn.004600b8
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.00460580
lea edi, [esp + 0x100]
lea esi, [esp + 0x160]
call fcn.00460580
mov ecx, dword [esp + 0x7c]
test ecx, ecx
jne 0x4b1feb
lea edi, [esp + 0x160]
xor eax, eax
call fcn.004600b8
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.00460580
lea edi, [esp + 0xe0]
lea esi, [esp + 0x160]
call fcn.00460580
mov ecx, dword [esp + 0x7c]
test ecx, ecx
jne 0x4b1fb5
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 0x4b252e
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 0x4b1ef7
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x1a0]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xa8]
jmp 0x4b1f3a
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, [0x4e2b00]
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 0x4b21e2
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, [0x4e6560]
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, [0x50757d]
mov dword [eax], ecx
lea ecx, [0x5281f8]
cmp dword [0x5b8a20], ecx
jne 0x4b20f8
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 0x4b20f8
lea ecx, [0x5281f8]
mov eax, dword [esp + 0xbc]
jmp 0x4b215f
lea eax, [0x4ea3a0]
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, [0x5281f8]
mov dword [eax + 8], ecx
mov ecx, dword [0x5e3a60]
test ecx, ecx
jne 0x4b2148
mov ecx, dword [esp + 0xbc]
jmp 0x4b2156
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0xbc]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x5284a0]
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 0x4b24c9
mov dword [esp + 0x6c], esi
mov dword [esp + 0x54], edi
lea edi, [esp + 0xc8]
mov ebx, eax
xor eax, eax
call fcn.004600ba
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 0x4b248b
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 0x4b244d
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 0x4b240f
mov word [esp + 0x42], cx
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x4c]
cmp ebx, ebp
jl 0x4b22e6
mov edi, dword [esp + 0x54]
jmp 0x4b2351
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 0x4b23d1
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0xa4]
cmp eax, ecx
jae 0x4b2529
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 0x4b2522
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 0x4b2519
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 0x4b2195
jmp 0x4b2510
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