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

Disassembly:
mov ecx, dword [0x65260c]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x4df892
sub esp, 0x5c
movzx ebx, byte [esp + 0x74]
mov ebp, ebx
shr bl, 2
and ebx, 3
cmp bl, 1
ja 0x4df2a4
test bl, bl
je 0x4df2a9
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jle 0x4df1c8
jbe 0x4df88c
mov ebx, ebp
xchg ebp, eax
shr al, 4
xchg ebp, eax
xchg ebp, eax
movzx eax, al
xchg ebp, eax
mov esi, dword [esp + 0x64]
movzx edi, byte [esi + eax]
shl edi, 4
add ebp, edi
lea edi, [eax + 1]
jmp 0x4df314
mov ecx, dword [0x5fae60]
mov dword [esp + 0x34], ecx
mov edx, dword [0x5fae64]
mov dword [esp + 0x48], edx
cmp dword [0x5fae58], ecx
jne 0x4df20d
mov eax, dword [0x5fae5c]
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 0x4df20d
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x48]
jmp 0x4df266
lea eax, [0x51d2c0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x60]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esp + 0x70]
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 + 0x34]
mov dword [eax + 8], ecx
mov ecx, dword [0x6526b0]
test ecx, ecx
jne 0x4df252
mov ecx, dword [esp + 0x48]
jmp 0x4df25d
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x48]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x55ea70]
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], eax
add esp, 0x5c
ret
cmp bl, 2
jne 0x4df2c3
mov ebx, ebp
xchg ebp, eax
shr al, 3
xchg ebp, eax
xchg ebp, eax
movzx eax, al
xchg ebp, eax
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0x64]
mov edi, dword [esp + 0x70]
jmp 0x4df314
mov eax, dword [esp + 0x70]
lea ebx, [eax + 1]
mov ecx, dword [esp + 0x68]
cmp ecx, ebx
jle 0x4df6f8
cmp ecx, eax
jbe 0x4df887
mov esi, ebp
xchg ebp, eax
shr al, 4
xchg ebp, eax
xchg ebp, eax
movzx eax, al
xchg ebp, eax
mov edi, dword [esp + 0x64]
movzx edx, byte [edi + eax]
shl edx, 4
add ebp, edx
cmp ecx, ebx
jbe 0x4df880
movzx ebx, byte [eax + edi + 1]
shl ebx, 0xc
add ebp, ebx
lea ebx, [eax + 2]
mov eax, ebx
mov ebx, esi
mov esi, edi
mov edi, eax
mov dword [esp + 0x28], edi
cmp ebp, 0x20000
jg 0x4df601
test bl, 3
je 0x4df44a
cmp ecx, edi
jle 0x4df353
jbe 0x4df879
movzx eax, byte [esi + edi]
mov byte [esp + 0x23], al
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x78]
mov ebx, dword [esp + 0x80]
jmp 0x4df81f
lea eax, [0x5192a0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x58], eax
mov dword [eax + 4], 0x13
lea ecx, [0x534c82]
mov dword [eax], ecx
lea ecx, [0x55e7b4]
cmp dword [0x5fae58], ecx
jne 0x4df3b1
mov edx, dword [0x5fae5c]
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 0x4df3b1
lea ecx, [0x55e7b4]
mov eax, dword [esp + 0x58]
jmp 0x4df40c
lea eax, [0x51d2c0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x60]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esp + 0x28]
mov ebp, ebx
sar ebx, 0x1f
add ebp, edx
mov dword [eax], ebp
adc ecx, ebx
mov dword [eax + 4], ecx
lea ecx, [0x55e7b4]
mov dword [eax + 8], ecx
mov ecx, dword [0x6526b0]
test ecx, ecx
jne 0x4df3f8
mov ecx, dword [esp + 0x58]
jmp 0x4df403
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x58]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x55ea70]
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], eax
add esp, 0x5c
ret
lea ebx, [edi + ebp]
cmp ecx, ebx
jl 0x4df50a
mov edx, dword [esp + 0x6c]
cmp edx, ebx
jb 0x4df813
cmp edi, ebx
ja 0x4df80a
mov dword [esp + 0x40], ebx
mov eax, dword [esp + 0x7c]
lea ecx, [eax + ebp]
sub edx, edi
neg edx
sar edx, 0x1f
and edi, edx
lea edx, [esi + edi]
mov esi, dword [esp + 0x80]
cmp esi, ecx
jb 0x4df491
mov edi, dword [esp + 0x78]
jmp 0x4df4d7
mov dword [esp + 0x24], ebp
mov dword [esp + 0x54], edx
mov eax, dword [esp + 0x78]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
mov dword [esp + 0xc], ebp
lea eax, [0x5153e0]
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 + 0x24]
mov edi, eax
mov esi, edx
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x54]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x38], ecx
mov dword [esp + 0x54], edi
add eax, edi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
call sym.runtime.memmove
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x54]
jmp 0x4df7d4
lea eax, [0x5192a0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x50], eax
mov dword [eax + 4], 0x1a
lea ecx, [0x537971]
mov dword [eax], ecx
lea ecx, [0x55e7b4]
cmp dword [0x5fae58], ecx
jne 0x4df568
mov edx, dword [0x5fae5c]
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 0x4df568
lea ecx, [0x55e7b4]
mov eax, dword [esp + 0x50]
jmp 0x4df5c3
lea eax, [0x51d2c0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x60]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esp + 0x28]
mov ebp, ebx
sar ebx, 0x1f
add ebp, edx
mov dword [eax], ebp
adc ecx, ebx
mov dword [eax + 4], ecx
lea ecx, [0x55e7b4]
mov dword [eax + 8], ecx
mov ecx, dword [0x6526b0]
test ecx, ecx
jne 0x4df5af
mov ecx, dword [esp + 0x50]
jmp 0x4df5ba
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x50]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x55ea70]
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], eax
add esp, 0x5c
ret
lea eax, [0x5192a0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x4c], eax
mov dword [eax + 4], 0x16
lea ecx, [0x53600b]
mov dword [eax], ecx
lea ecx, [0x55e7b4]
cmp dword [0x5fae58], ecx
jne 0x4df65f
mov edx, dword [0x5fae5c]
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 0x4df65f
lea ecx, [0x55e7b4]
mov eax, dword [esp + 0x4c]
jmp 0x4df6ba
lea eax, [0x51d2c0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x60]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esp + 0x28]
mov ebp, ebx
sar ebx, 0x1f
add ebp, edx
mov dword [eax], ebp
adc ecx, ebx
mov dword [eax + 4], ecx
lea ecx, [0x55e7b4]
mov dword [eax + 8], ecx
mov ecx, dword [0x6526b0]
test ecx, ecx
jne 0x4df6a6
mov ecx, dword [esp + 0x4c]
jmp 0x4df6b1
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x4c]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x55ea70]
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], eax
add esp, 0x5c
ret
mov ecx, dword [0x5fae60]
mov dword [esp + 0x30], ecx
mov edx, dword [0x5fae64]
mov dword [esp + 0x44], edx
cmp dword [0x5fae58], ecx
jne 0x4df73d
mov eax, dword [0x5fae5c]
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 0x4df73d
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x44]
jmp 0x4df796
lea eax, [0x51d2c0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x60]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esp + 0x70]
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 + 0x30]
mov dword [eax + 8], ecx
mov ecx, dword [0x6526b0]
test ecx, ecx
jne 0x4df782
mov ecx, dword [esp + 0x44]
jmp 0x4df78d
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x44]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x55ea70]
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], eax
add esp, 0x5c
ret
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], edx
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
add esp, 0x5c
ret
mov eax, edi
mov ecx, ebx
call sym.runtime.panicSliceB
mov ecx, ebx
call sym.runtime.panicSliceAcap
mov byte [ecx + edx - 1], al
dec ebp
test ebp, ebp
jle 0x4df869
inc ecx
cmp ebx, ecx
jae 0x4df81a
mov dword [esp + 0x2c], ebp
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5153e0]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
movzx eax, byte [esp + 0x23]
mov ebp, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
jmp 0x4df81a
lea eax, [edi + 1]
mov ebp, ecx
mov ecx, ebx
mov ebx, edx
mov edx, ebp
jmp 0x4df7d4
mov eax, edi
call sym.runtime.panicIndex
mov eax, ebx
call sym.runtime.panicIndex
call sym.runtime.panicIndex
call sym.runtime.panicIndex
nop
call sym.runtime.morestack_noctxt
jmp sym.internal_zstd._Reader_.readRawRLELiterals