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

Disassembly:
mov ecx, dword [0x72f2ac]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x53f072
sub esp, 0x5c
movzx ebx, byte [esp + 0x74]
mov ebp, ebx
shr bl, 2
and ebx, 3
cmp bl, 1
ja 0x53ea84
test bl, bl
je 0x53ea89
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x70]
cmp ecx, eax
jle 0x53e9a8
jbe 0x53f06c
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 0x53eaf4
mov ecx, dword [0x6bf358]
mov dword [esp + 0x34], ecx
mov edx, dword [0x6bf35c]
mov dword [esp + 0x48], edx
cmp dword [0x6bf350], ecx
jne 0x53e9ed
mov eax, dword [0x6bf354]
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 0x53e9ed
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x48]
jmp 0x53ea46
lea eax, [0x587320]
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 [0x72f350]
test ecx, ecx
jne 0x53ea32
mov ecx, dword [esp + 0x48]
jmp 0x53ea3d
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x48]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x5e5598]
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 0x53eaa3
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 0x53eaf4
mov eax, dword [esp + 0x70]
lea ebx, [eax + 1]
mov ecx, dword [esp + 0x68]
cmp ecx, ebx
jle 0x53eed8
cmp ecx, eax
jbe 0x53f067
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 0x53f060
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 0x53ede1
test bl, 3
je 0x53ec2a
cmp ecx, edi
jle 0x53eb33
jbe 0x53f059
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 0x53efff
lea eax, [0x581140]
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, [0x5b1e96]
mov dword [eax], ecx
lea ecx, [0x5e5250]
cmp dword [0x6bf350], ecx
jne 0x53eb91
mov edx, dword [0x6bf354]
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 0x53eb91
lea ecx, [0x5e5250]
mov eax, dword [esp + 0x58]
jmp 0x53ebec
lea eax, [0x587320]
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, [0x5e5250]
mov dword [eax + 8], ecx
mov ecx, dword [0x72f350]
test ecx, ecx
jne 0x53ebd8
mov ecx, dword [esp + 0x58]
jmp 0x53ebe3
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x58]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x5e5598]
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 0x53ecea
mov edx, dword [esp + 0x6c]
cmp edx, ebx
jb 0x53eff3
cmp edi, ebx
ja 0x53efea
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 0x53ec71
mov edi, dword [esp + 0x78]
jmp 0x53ecb7
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, [0x57c180]
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 0x53efb4
lea eax, [0x581140]
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, [0x5b4d96]
mov dword [eax], ecx
lea ecx, [0x5e5250]
cmp dword [0x6bf350], ecx
jne 0x53ed48
mov edx, dword [0x6bf354]
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 0x53ed48
lea ecx, [0x5e5250]
mov eax, dword [esp + 0x50]
jmp 0x53eda3
lea eax, [0x587320]
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, [0x5e5250]
mov dword [eax + 8], ecx
mov ecx, dword [0x72f350]
test ecx, ecx
jne 0x53ed8f
mov ecx, dword [esp + 0x50]
jmp 0x53ed9a
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x50]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x5e5598]
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, [0x581140]
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, [0x5b336e]
mov dword [eax], ecx
lea ecx, [0x5e5250]
cmp dword [0x6bf350], ecx
jne 0x53ee3f
mov edx, dword [0x6bf354]
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 0x53ee3f
lea ecx, [0x5e5250]
mov eax, dword [esp + 0x4c]
jmp 0x53ee9a
lea eax, [0x587320]
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, [0x5e5250]
mov dword [eax + 8], ecx
mov ecx, dword [0x72f350]
test ecx, ecx
jne 0x53ee86
mov ecx, dword [esp + 0x4c]
jmp 0x53ee91
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x4c]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x5e5598]
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 [0x6bf358]
mov dword [esp + 0x30], ecx
mov edx, dword [0x6bf35c]
mov dword [esp + 0x44], edx
cmp dword [0x6bf350], ecx
jne 0x53ef1d
mov eax, dword [0x6bf354]
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 0x53ef1d
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x44]
jmp 0x53ef76
lea eax, [0x587320]
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 [0x72f350]
test ecx, ecx
jne 0x53ef62
mov ecx, dword [esp + 0x44]
jmp 0x53ef6d
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x44]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x5e5598]
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 0x53f049
inc ecx
cmp ebx, ecx
jae 0x53effa
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, [0x57c180]
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 0x53effa
lea eax, [edi + 1]
mov ebp, ecx
mov ecx, ebx
mov ebx, edx
mov edx, ebp
jmp 0x53efb4
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