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

Disassembly:
mov ecx, dword [0x5e3958]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x1c8]
cmp eax, dword [ecx + 8]
jbe 0x4affca
sub esp, 0x248
mov ecx, dword [esp + 0x254]
mov eax, dword [esp + 0x25c]
cmp ecx, eax
jle 0x4aec3e
jbe 0x4affc4
mov ebx, dword [esp + 0x250]
movzx ebp, byte [eax + ebx]
lea edi, [esp + 0xb8]
mov edx, eax
xor eax, eax
call fcn.00460080
lea ecx, [edx + 1]
xchg ebp, eax
cmp al, 0x80
xchg ebp, eax
jb 0x4ae885
xchg ebp, eax
movzx eax, al
xchg ebp, eax
lea esi, [ebp - 0x7e]
shr esi, 0x1f
lea esi, [esi + ebp - 0x7e]
sar esi, 1
lea esi, [esi + edx + 1]
mov edx, ebx
mov ebx, dword [esp + 0x254]
cmp ebx, esi
jle 0x4ae84e
add ebp, 0xffffff81
xor esi, esi
jmp 0x4aff65
mov eax, dword [0x5b8a28]
mov ecx, dword [0x5b8a2c]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x274], eax
mov dword [esp + 0x278], ecx
add esp, 0x248
ret
xchg ebp, eax
mov byte [esp + 0x42], al
xchg ebp, eax
mov dword [esp + 0x4c], ecx
mov esi, dword [esp + 0x24c]
cmp dword [esi + 0xd0], 0x40
jge 0x4ae90e
lea eax, [0x4ed960]
mov dword [esp], eax
mov dword [esp + 4], 0x40
mov dword [esp + 8], 0x40
call sym.runtime.makeslice
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x24c]
mov dword [ecx + 0xd0], 0x40
mov dword [ecx + 0xd4], 0x40
mov edx, dword [0x5e3a60]
test edx, edx
je 0x4ae8f6
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov edx, dword [ecx + 0xcc]
mov dword [edi + 4], edx
mov dword [ecx + 0xcc], eax
mov ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x250]
mov esi, dword [esp + 0x24c]
mov eax, dword [esi + 0xcc]
mov edx, dword [esi + 0xd0]
mov ebp, dword [esi + 0xd4]
mov dword [esp], esi
mov dword [esp + 4], ebx
mov edi, dword [esp + 0x254]
mov dword [esp + 8], edi
mov ebx, dword [esp + 0x258]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], 0xff
mov dword [esp + 0x18], 6
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], ebp
call sym.internal_zstd._Reader_.readFSE
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
test eax, eax
jne 0x4aec0b
movzx edx, byte [esp + 0x42]
movzx edx, dl
mov ebx, dword [esp + 0x25c]
lea ebp, [ebx + edx + 1]
mov esi, dword [esp + 0x24c]
mov eax, dword [esi + 0xcc]
mov edi, dword [esi + 0xd0]
add edx, ebx
mov ebx, dword [esp + 0x254]
cmp ebx, ebp
jge 0x4aea81
mov eax, dword [0x5b8a28]
mov dword [esp + 0x68], eax
mov ecx, dword [0x5b8a2c]
mov dword [esp + 0x1cc], ecx
cmp dword [0x5b8a20], eax
jne 0x4ae9f4
mov edx, dword [0x5b8a24]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call sym.runtime.ifaceeq
movzx eax, byte [esp + 0xc]
test al, al
je 0x4ae9f4
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x1cc]
jmp 0x4aea56
lea eax, [0x4ea3a0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x24c]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esp + 0x4c]
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 + 0x68]
mov dword [eax + 8], ecx
mov ecx, dword [0x5e3a60]
test ecx, ecx
jne 0x4aea3f
mov ecx, dword [esp + 0x1cc]
jmp 0x4aea4d
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1cc]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x5284a0]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x274], ecx
mov dword [esp + 0x278], eax
add esp, 0x248
ret
mov dword [esp + 0x64], ecx
mov dword [esp + 0x80], ebp
mov dword [esp + 0x60], edi
mov dword [esp + 0x1c8], eax
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x50], ecx
lea edi, [esp + 0x228]
xor eax, eax
call fcn.004600b8
mov dword [esp], esi
mov ecx, dword [esp + 0x250]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov ecx, dword [esp + 0x258]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x14], ecx
call sym.internal_zstd._Reader_.makeReverseBitReader
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x6c], ecx
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
lea edi, [esp + 0x228]
lea esi, [esp + 0x18]
call fcn.00460580
lea edi, [esp + 0x208]
lea esi, [esp + 0x228]
call fcn.00460580
mov ecx, dword [esp + 0x6c]
test ecx, ecx
jne 0x4aebe0
lea eax, [esp + 0x208]
mov dword [esp], eax
mov eax, dword [esp + 0x64]
mov byte [esp + 4], al
call sym.internal_zstd._reverseBitReader_.val
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
test eax, eax
jne 0x4aebad
mov dword [esp + 0x48], ecx
lea eax, [esp + 0x208]
mov dword [esp], eax
mov eax, dword [esp + 0x64]
mov byte [esp + 4], al
call sym.internal_zstd._reverseBitReader_.val
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x4aeb7a
mov ebx, dword [esp + 8]
mov ecx, dword [esp + 0x60]
mov ebp, dword [esp + 0x1c8]
mov esi, dword [esp + 0x48]
xor eax, eax
jmp 0x4aed3f
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x274], eax
mov dword [esp + 0x278], ecx
add esp, 0x248
ret
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x274], eax
mov dword [esp + 0x278], ecx
add esp, 0x248
ret
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x274], edx
mov dword [esp + 0x278], ebx
add esp, 0x248
ret
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x274], eax
mov dword [esp + 0x278], ecx
add esp, 0x248
ret
mov ecx, dword [0x5b8a28]
mov dword [esp + 0x70], ecx
mov edx, dword [0x5b8a2c]
mov dword [esp + 0x1d0], edx
cmp dword [0x5b8a20], ecx
jne 0x4aec89
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 0x4aec89
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x1d0]
jmp 0x4aecee
lea eax, [0x4ea3a0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x24c]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esp + 0x25c]
mov ebp, ebx
sar ebx, 0x1f
add ebp, edx
mov dword [eax], ebp
adc ebx, ecx
mov dword [eax + 4], ebx
mov ecx, dword [esp + 0x70]
mov dword [eax + 8], ecx
mov ecx, dword [0x5e3a60]
test ecx, ecx
jne 0x4aecd7
mov ecx, dword [esp + 0x1d0]
jmp 0x4aece5
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1d0]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x5284a0]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x274], ecx
mov dword [esp + 0x278], eax
add esp, 0x248
ret
lea ecx, [esi + ebp*4]
movzx ecx, byte [ecx]
mov edx, dword [esp + 0x74]
mov byte [esp + edx + 0xb9], cl
lea ecx, [edx + 2]
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0x48]
mov ebp, esi
mov esi, ebx
mov ebx, eax
mov eax, ecx
mov ecx, edx
cmp esi, ecx
jae 0x4aff49
mov dword [esp + 0x44], ebx
lea edx, [ebp + esi*4 + 1]
mov dword [esp + 0x204], edx
movzx edi, byte [edx]
jmp 0x4aee81
mov dword [esp + 0x74], eax
mov dword [esp + 0x48], esi
movzx eax, byte [edx]
lea ecx, [esp + 0x208]
mov dword [esp], ecx
mov byte [esp + 4], al
call sym.internal_zstd._reverseBitReader_.val
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x4af112
mov ebx, dword [esp + 8]
mov ebp, dword [esp + 0x48]
mov esi, dword [esp + 0x1c8]
lea eax, [esi + ebp*4 + 2]
movzx eax, word [eax]
add eax, ebx
mov ebx, dword [esp + 0x74]
cmp ebx, 0xff
jge 0x4af006
lea ebp, [esi + ebp*4]
cmp ebx, 0x100
jae 0x4aff23
movzx ebp, byte [ebp]
xchg ebp, eax
mov byte [esp + ebx + 0xb8], al
xchg ebp, eax
mov ebp, dword [esp + 0x44]
mov ecx, dword [esp + 0x60]
cmp ebp, ecx
jae 0x4aff1c
mov dword [esp + 0x48], eax
lea edx, [esi + ebp*4 + 1]
mov dword [esp + 0x204], edx
lea edi, [ebx + 1]
movzx eax, byte [edx]
jmp 0x4af17b
mov dword [esp + 0x78], edi
movzx eax, byte [edx]
lea ecx, [esp + 0x208]
mov dword [esp], ecx
mov byte [esp + 4], al
call sym.internal_zstd._reverseBitReader_.val
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x4af41b
mov ebx, dword [esp + 8]
mov ebp, dword [esp + 0x44]
mov esi, dword [esp + 0x1c8]
lea eax, [esi + ebp*4 + 2]
movzx eax, word [eax]
add ebx, eax
mov eax, ebx
mov ebx, dword [esp + 0x78]
cmp ebx, 0xff
jl 0x4aed19
jmp 0x4af30f
mov ecx, dword [esp + 0x20c]
movzx ecx, byte [ecx + edx - 1]
mov edx, dword [esp + 0x220]
shl edx, 8
or ecx, edx
mov dword [esp + 0x220], ecx
add dword [esp + 0x224], 8
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x204]
mov ebx, dword [esp + 0x44]
cmp dword [esp + 0x224], edi
jae 0x4aed5e
mov edx, dword [esp + 0x218]
cmp dword [esp + 0x21c], edx
jae 0x4aeeb8
lea ecx, [edx - 1]
mov dword [esp + 0x218], ecx
mov ebx, dword [esp + 0x210]
cmp ebx, ecx
ja 0x4aee4b
jmp 0x4aff40
cmp eax, 0xfe
jge 0x4aeefa
lea esi, [ebp + esi*4]
cmp eax, 0x100
jae 0x4aff36
movzx esi, byte [esi]
xchg esi, ebx
mov byte [esp + eax + 0xb8], bl
xchg esi, ebx
cmp ebx, ecx
jae 0x4aff2f
lea ecx, [ebp + ebx*4]
movzx ecx, byte [ecx]
mov byte [esp + eax + 0xb9], cl
lea ecx, [eax + 2]
jmp 0x4af1f7
mov eax, dword [esp + 0x208]
mov dword [esp + 0x1c4], eax
mov ecx, dword [esp + 0x218]
mov dword [esp + 0x7c], ecx
lea edx, [0x4e6560]
mov dword [esp], edx
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x200], eax
mov dword [eax + 4], 0x16
lea ecx, [0x501e67]
mov dword [eax], ecx
lea ecx, [0x5281f8]
cmp dword [0x5b8a20], ecx
jne 0x4aef77
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 0x4aef77
lea ecx, [0x5281f8]
mov eax, dword [esp + 0x200]
jmp 0x4aefdb
lea eax, [0x4ea3a0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x1c4]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esp + 0x7c]
mov ebp, ebx
sar ebx, 0x1f
add edx, ebp
mov dword [eax], edx
adc ebx, ecx
mov dword [eax + 4], ebx
lea ecx, [0x5281f8]
mov dword [eax + 8], ecx
mov ecx, dword [0x5e3a60]
test ecx, ecx
jne 0x4aefc4
mov ecx, dword [esp + 0x200]
jmp 0x4aefd2
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x200]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x5284a0]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x274], ecx
mov dword [esp + 0x278], eax
add esp, 0x248
ret
mov eax, dword [esp + 0x208]
mov dword [esp + 0x1c0], eax
mov ecx, dword [esp + 0x218]
mov dword [esp + 0x7c], ecx
lea edx, [0x4e6560]
mov dword [esp], edx
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x1fc], eax
mov dword [eax + 4], 0x16
lea ecx, [0x501e67]
mov dword [eax], ecx
lea ecx, [0x5281f8]
cmp dword [0x5b8a20], ecx
jne 0x4af083
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 0x4af083
lea ecx, [0x5281f8]
mov eax, dword [esp + 0x1fc]
jmp 0x4af0e7
lea eax, [0x4ea3a0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x1c0]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esp + 0x7c]
mov ebp, ebx
sar ebx, 0x1f
add edx, ebp
mov dword [eax], edx
adc ebx, ecx
mov dword [eax + 4], ebx
lea ecx, [0x5281f8]
mov dword [eax + 8], ecx
mov ecx, dword [0x5e3a60]
test ecx, ecx
jne 0x4af0d0
mov ecx, dword [esp + 0x1fc]
jmp 0x4af0de
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1fc]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x5284a0]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x274], ecx
mov dword [esp + 0x278], eax
add esp, 0x248
ret
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x274], eax
mov dword [esp + 0x278], ecx
add esp, 0x248
ret
mov ecx, dword [esp + 0x20c]
movzx ecx, byte [ecx + edx - 1]
mov edx, dword [esp + 0x220]
shl edx, 8
or ecx, edx
mov dword [esp + 0x220], ecx
add dword [esp + 0x224], 8
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x204]
mov ebx, dword [esp + 0x74]
cmp dword [esp + 0x224], eax
jae 0x4aedf6
mov edx, dword [esp + 0x218]
cmp dword [esp + 0x21c], edx
jae 0x4af1b2
lea ecx, [edx - 1]
mov dword [esp + 0x218], ecx
mov ebx, dword [esp + 0x210]
cmp ebx, ecx
ja 0x4af145
jmp 0x4aff13
cmp edi, 0xfe
jge 0x4af203
lea ebp, [esi + ebp*4]
movzx ebp, byte [ebp]
xchg ebp, eax
mov byte [esp + ebx + 0xb9], al
xchg ebp, eax
mov eax, dword [esp + 0x48]
cmp ecx, eax
jbe 0x4aff0e
lea ebp, [ebx + 2]
lea esi, [esi + eax*4]
cmp ebp, 0x100
jae 0x4aff02
movzx ebp, byte [esi]
xchg ebp, eax
mov byte [esp + ebx + 0xba], al
xchg ebp, eax
lea ecx, [ebx + 3]
mov eax, dword [esp + 0x80]
jmp 0x4af44e
mov eax, dword [esp + 0x208]
mov dword [esp + 0x1bc], eax
mov ecx, dword [esp + 0x218]
mov dword [esp + 0x7c], ecx
lea edx, [0x4e6560]
mov dword [esp], edx
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x1f8], eax
mov dword [eax + 4], 0x16
lea ecx, [0x501e67]
mov dword [eax], ecx
lea ecx, [0x5281f8]
cmp dword [0x5b8a20], ecx
jne 0x4af280
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 0x4af280
lea ecx, [0x5281f8]
mov eax, dword [esp + 0x1f8]
jmp 0x4af2e4
lea eax, [0x4ea3a0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x1bc]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esp + 0x7c]
mov ebp, ebx
sar ebx, 0x1f
add ebp, edx
mov dword [eax], ebp
adc ebx, ecx
mov dword [eax + 4], ebx
lea ecx, [0x5281f8]
mov dword [eax + 8], ecx
mov ecx, dword [0x5e3a60]
test ecx, ecx
jne 0x4af2cd
mov ecx, dword [esp + 0x1f8]
jmp 0x4af2db
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1f8]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x5284a0]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x274], ecx
mov dword [esp + 0x278], eax
add esp, 0x248
ret
mov eax, dword [esp + 0x208]
mov dword [esp + 0x1b8], eax
mov ecx, dword [esp + 0x218]
mov dword [esp + 0x7c], ecx
lea edx, [0x4e6560]
mov dword [esp], edx
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x1f4], eax
mov dword [eax + 4], 0x16
lea ecx, [0x501e67]
mov dword [eax], ecx
lea ecx, [0x5281f8]
cmp dword [0x5b8a20], ecx
jne 0x4af38c
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 0x4af38c
lea ecx, [0x5281f8]
mov eax, dword [esp + 0x1f4]
jmp 0x4af3f0
lea eax, [0x4ea3a0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x1b8]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esp + 0x7c]
mov ebp, ebx
sar ebx, 0x1f
add ebp, edx
mov dword [eax], ebp
adc ecx, ebx
mov dword [eax + 4], ecx
lea ecx, [0x5281f8]
mov dword [eax + 8], ecx
mov ecx, dword [0x5e3a60]
test ecx, ecx
jne 0x4af3d9
mov ecx, dword [esp + 0x1f4]
jmp 0x4af3e7
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1f4]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x5284a0]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x274], ecx
mov dword [esp + 0x278], eax
add esp, 0x248
ret
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x274], eax
mov dword [esp + 0x278], ecx
add esp, 0x248
ret
mov dword [esp + 0x74], ecx
lea edi, [esp + 0x84]
mov edx, eax
xor eax, eax
call fcn.004600b3
mov ecx, dword [esp + 0x74]
cmp ecx, 0x100
ja 0x4afef8
mov dword [esp + 0x80], edx
xor eax, eax
xor ebx, ebx
jmp 0x4af482
inc eax
mov ecx, esi
cmp eax, ecx
jge 0x4af5bc
movzx ebp, byte [esp + eax + 0xb8]
xchg ebp, eax
cmp al, 0xc
xchg ebp, eax
ja 0x4af4c6
xchg ebp, eax
movzx esi, al
xchg ebp, eax
inc dword [esp + esi*4 + 0x84]
xchg ebp, eax
test al, al
xchg ebp, eax
jbe 0x4af4c2
dec ebp
mov esi, ecx
mov ecx, ebp
mov edi, 1
shl edi, cl
cmp cl, 0x20
sbb ebp, ebp
and edi, ebp
add ebx, edi
jmp 0x4af47f
mov esi, ecx
jmp 0x4af47f
lea eax, [0x4e6560]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x1f0], eax
mov dword [eax + 4], 0x17
lea ecx, [0x50257d]
mov dword [eax], ecx
lea ecx, [0x5281f8]
cmp dword [0x5b8a20], ecx
jne 0x4af52a
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 0x4af52a
lea ecx, [0x5281f8]
mov eax, dword [esp + 0x1f0]
jmp 0x4af591
lea eax, [0x4ea3a0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x24c]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esp + 0x80]
mov ebp, ebx
sar ebx, 0x1f
add ebp, edx
mov dword [eax], ebp
adc ecx, ebx
mov dword [eax + 4], ecx
lea ecx, [0x5281f8]
mov dword [eax + 8], ecx
mov ecx, dword [0x5e3a60]
test ecx, ecx
jne 0x4af57a
mov ecx, dword [esp + 0x1f0]
jmp 0x4af588
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1f0]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x5284a0]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x274], ecx
mov dword [esp + 0x278], eax
add esp, 0x248
ret
test ebx, ebx
je 0x4afcb6
nop
nop
cmp ebx, 0x10000
jb 0x4af5da
mov ebp, ebx
shr ebp, 0x10
mov eax, 0x10
jmp 0x4af5de
mov ebp, ebx
xor eax, eax
cmp ebp, 0x100
jb 0x4af5ec
shr ebp, 8
add eax, 8
cmp ebp, 0x100
jae 0x4afeec
lea esi, [0x50962e]
movzx ebp, byte [esi + ebp]
add ebp, eax
cmp ebp, 0xb
jg 0x4afbc0
test ebp, ebp
jl 0x4afee7
mov eax, ecx
mov ecx, ebp
mov edi, 1
shl edi, cl
mov edx, dword [esp + 0x264]
cmp edx, edi
jl 0x4afaca
mov edi, 1
shl edi, cl
sub edi, ebx
test edi, edi
je 0x4af9d4
nop
cmp edi, 0x10000
jb 0x4af65b
mov ebx, edi
shr ebx, 0x10
mov ecx, 0x10
mov dword [esp + 0x54], ecx
mov ecx, ebp
jmp 0x4af665
mov ebx, edi
xor ecx, ecx
mov dword [esp + 0x54], ecx
mov ecx, ebp
cmp ebx, 0x100
jb 0x4af679
shr ebx, 8
mov edx, dword [esp + 0x54]
add edx, 8
jmp 0x4af67d
mov edx, dword [esp + 0x54]
cmp ebx, 0x100
jae 0x4afedb
movzx ebx, byte [esi + ebx]
lea esi, [edx + ebx - 1]
add edx, ebx
test esi, esi
jl 0x4afed6
mov ecx, esi
mov ebx, 1
shl ebx, cl
cmp ecx, 0x20
sbb esi, esi
and esi, ebx
cmp esi, edi
jne 0x4af8de
cmp eax, 0x100
jge 0x4af7e8
mov byte [esp + eax + 0xb8], dl
cmp edx, 0xd
jae 0x4afeca
inc dword [esp + edx*4 + 0x84]
mov edx, dword [esp + 0x88]
cmp edx, 2
jb 0x4af6f2
test edx, 1
jne 0x4af6f2
xor ecx, ecx
xor edx, edx
jmp 0x4afdc7
lea eax, [0x4e6560]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x1ec], eax
mov dword [eax + 4], 0x13
lea ecx, [0x500ade]
mov dword [eax], ecx
lea ecx, [0x5281f8]
cmp dword [0x5b8a20], ecx
jne 0x4af756
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 0x4af756
lea ecx, [0x5281f8]
mov eax, dword [esp + 0x1ec]
jmp 0x4af7bd
lea eax, [0x4ea3a0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x24c]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esp + 0x80]
mov ebp, ebx
sar ebx, 0x1f
add ebp, edx
mov dword [eax], ebp
adc ecx, ebx
mov dword [eax + 4], ecx
lea ecx, [0x5281f8]
mov dword [eax + 8], ecx
mov ecx, dword [0x5e3a60]
test ecx, ecx
jne 0x4af7a6
mov ecx, dword [esp + 0x1ec]
jmp 0x4af7b4
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1ec]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x5284a0]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x274], ecx
mov dword [esp + 0x278], eax
add esp, 0x248
ret
lea eax, [0x4e6560]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x1e8], eax
mov dword [eax + 4], 0x17
lea ecx, [0x50257d]
mov dword [eax], ecx
lea ecx, [0x5281f8]
cmp dword [0x5b8a20], ecx
jne 0x4af84c
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 0x4af84c
lea ecx, [0x5281f8]
mov eax, dword [esp + 0x1e8]
jmp 0x4af8b3
lea eax, [0x4ea3a0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x24c]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esp + 0x80]
mov ebp, ebx
sar ebx, 0x1f
add ebp, edx
mov dword [eax], ebp
adc ecx, ebx
mov dword [eax + 4], ecx
lea ecx, [0x5281f8]
mov dword [eax + 8], ecx
mov ecx, dword [0x5e3a60]
test ecx, ecx
jne 0x4af89c
mov ecx, dword [esp + 0x1e8]
jmp 0x4af8aa
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1e8]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x5284a0]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x274], ecx
mov dword [esp + 0x278], eax
add esp, 0x248
ret
lea eax, [0x4e6560]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x1e4], eax
mov dword [eax + 4], 0x13
lea ecx, [0x500ade]
mov dword [eax], ecx
lea ecx, [0x5281f8]
cmp dword [0x5b8a20], ecx
jne 0x4af942
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 0x4af942
lea ecx, [0x5281f8]
mov eax, dword [esp + 0x1e4]
jmp 0x4af9a9
lea eax, [0x4ea3a0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x24c]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esp + 0x80]
mov ebp, ebx
sar ebx, 0x1f
add ebp, edx
mov dword [eax], ebp
adc ecx, ebx
mov dword [eax + 4], ecx
lea ecx, [0x5281f8]
mov dword [eax + 8], ecx
mov ecx, dword [0x5e3a60]
test ecx, ecx
jne 0x4af992
mov ecx, dword [esp + 0x1e4]
jmp 0x4af9a0
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1e4]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x5284a0]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x274], ecx
mov dword [esp + 0x278], eax
add esp, 0x248
ret
lea eax, [0x4e6560]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x1e0], eax
mov dword [eax + 4], 0x13
lea ecx, [0x500ade]
mov dword [eax], ecx
lea ecx, [0x5281f8]
cmp dword [0x5b8a20], ecx
jne 0x4afa38
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 0x4afa38
lea ecx, [0x5281f8]
mov eax, dword [esp + 0x1e0]
jmp 0x4afa9f
lea eax, [0x4ea3a0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x24c]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esp + 0x80]
mov ebp, ebx
sar ebx, 0x1f
add ebp, edx
mov dword [eax], ebp
adc ecx, ebx
mov dword [eax + 4], ecx
lea ecx, [0x5281f8]
mov dword [eax + 8], ecx
mov ecx, dword [0x5e3a60]
test ecx, ecx
jne 0x4afa88
mov ecx, dword [esp + 0x1e0]
jmp 0x4afa96
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1e0]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x5284a0]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x274], ecx
mov dword [esp + 0x278], eax
add esp, 0x248
ret
lea eax, [0x4e6560]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x1dc], eax
mov dword [eax + 4], 0x17
lea ecx, [0x502594]
mov dword [eax], ecx
lea ecx, [0x5281f8]
cmp dword [0x5b8a20], ecx
jne 0x4afb2e
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 0x4afb2e
lea ecx, [0x5281f8]
mov eax, dword [esp + 0x1dc]
jmp 0x4afb95
lea eax, [0x4ea3a0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x24c]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esp + 0x80]
mov ebp, ebx
sar ebx, 0x1f
add ebp, edx
mov dword [eax], ebp
adc ecx, ebx
mov dword [eax + 4], ecx
lea ecx, [0x5281f8]
mov dword [eax + 8], ecx
mov ecx, dword [0x5e3a60]
test ecx, ecx
jne 0x4afb7e
mov ecx, dword [esp + 0x1dc]
jmp 0x4afb8c
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1dc]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x5284a0]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x274], ecx
mov dword [esp + 0x278], eax
add esp, 0x248
ret
lea eax, [0x4e6560]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x1d8], eax
mov dword [eax + 4], 0x13
lea ecx, [0x500ade]
mov dword [eax], ecx
lea ecx, [0x5281f8]
cmp dword [0x5b8a20], ecx
jne 0x4afc24
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 0x4afc24
lea ecx, [0x5281f8]
mov eax, dword [esp + 0x1d8]
jmp 0x4afc8b
lea eax, [0x4ea3a0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x24c]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esp + 0x80]
mov ebp, ebx
sar ebx, 0x1f
add ebp, edx
mov dword [eax], ebp
adc ecx, ebx
mov dword [eax + 4], ecx
lea ecx, [0x5281f8]
mov dword [eax + 8], ecx
mov ecx, dword [0x5e3a60]
test ecx, ecx
jne 0x4afc74
mov ecx, dword [esp + 0x1d8]
jmp 0x4afc82
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1d8]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x5284a0]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x274], ecx
mov dword [esp + 0x278], eax
add esp, 0x248
ret
lea eax, [0x4e6560]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x1d4], eax
mov dword [eax + 4], 0x13
lea ecx, [0x500ade]
mov dword [eax], ecx
lea ecx, [0x5281f8]
cmp dword [0x5b8a20], ecx
jne 0x4afd1a
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 0x4afd1a
lea ecx, [0x5281f8]
mov eax, dword [esp + 0x1d4]
jmp 0x4afd81
lea eax, [0x4ea3a0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x24c]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esp + 0x80]
mov ebp, ebx
sar ebx, 0x1f
add ebp, edx
mov dword [eax], ebp
adc ecx, ebx
mov dword [eax + 4], ecx
lea ecx, [0x5281f8]
mov dword [eax + 8], ecx
mov ecx, dword [0x5e3a60]
test ecx, ecx
jne 0x4afd6a
mov ecx, dword [esp + 0x1d4]
jmp 0x4afd78
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1d4]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x5284a0]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x270], 0
mov dword [esp + 0x274], ecx
mov dword [esp + 0x278], eax
add esp, 0x248
ret
mov esi, dword [esp + ecx*4 + 0x88]
mov dword [esp + ecx*4 + 0x88], edx
shl esi, cl
cmp ecx, 0x20
sbb edi, edi
and esi, edi
add edx, esi
mov ecx, ebx
cmp ecx, ebp
jge 0x4afdd8
lea ebx, [ecx + 1]
cmp ebx, 0xd
jb 0x4afdac
jmp 0x4afebe
mov dword [esp + 0x58], ebp
lea edx, [eax + 1]
mov dword [esp + 0x74], edx
mov ebx, dword [esp + 0x260]
mov esi, dword [esp + 0x264]
xor eax, eax
jmp 0x4afdf6
inc eax
cmp eax, edx
jge 0x4afe63
movzx edi, byte [esp + eax + 0xb8]
xchg edi, eax
test al, al
xchg edi, eax
je 0x4afdf5
mov dword [esp + 0x5c], eax
lea ecx, [edi - 1]
mov edx, 1
shl edx, cl
shl eax, 8
xchg edi, eax
movzx ebx, al
xchg edi, eax
sub ebp, ebx
lea ebx, [ebp + 1]
xchg edi, eax
movzx ebp, al
xchg edi, eax
or eax, ebx
cmp cl, 0x20
sbb ebx, ebx
and edx, ebx
cmp ebp, 0xd
jae 0x4afeb2
mov dword [esp + 0x78], ebp
mov ebx, dword [esp + ebp*4 + 0x84]
mov edi, dword [esp + 0x260]
xor ecx, ecx
jmp 0x4afe9e
add dword [esp + ebp*4 + 0x84], edx
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x74]
mov ebx, edi
mov ebp, dword [esp + 0x58]
jmp 0x4afdf5
mov dword [esp + 0x26c], ebp
mov eax, dword [esp + 0x80]
mov dword [esp + 0x270], eax
mov dword [esp + 0x274], 0
mov dword [esp + 0x278], 0
add esp, 0x248
ret
mov word [edi + ebp*2], ax
inc ecx
mov ebp, dword [esp + 0x78]
cmp ecx, edx
jae 0x4afe4c
lea ebp, [ecx + ebx]
cmp esi, ebp
ja 0x4afe95
mov eax, ebp
mov ecx, esi
call sym.runtime.panicIndexU
mov eax, ebp
mov ecx, 0xd
call sym.runtime.panicIndex
mov eax, ebx
mov ecx, 0xd
call sym.runtime.panicIndex
mov eax, edx
mov ecx, 0xd
call sym.runtime.panicIndex
call sym.runtime.panicshift
mov eax, ebx
mov ecx, 0x100
call sym.runtime.panicIndexU
call sym.runtime.panicshift
mov eax, ebp
mov ecx, 0x100
call sym.runtime.panicIndexU
mov edx, 0x100
call sym.runtime.panicSliceAlen
mov eax, ebp
mov ecx, 0x100
call sym.runtime.panicIndex
call sym.runtime.panicIndexU
mov eax, ecx
mov ecx, ebx
call sym.runtime.panicIndexU
mov eax, ebp
call sym.runtime.panicIndexU
mov eax, ebx
mov ecx, 0x100
call sym.runtime.panicIndex
mov eax, ebx
call sym.runtime.panicIndexU
mov ecx, 0x100
call sym.runtime.panicIndex
mov eax, ecx
mov ecx, ebx
call sym.runtime.panicIndexU
mov eax, esi
call sym.runtime.panicIndexU
movzx edi, byte [esp + 0x43]
and edi, 0xf
xchg edi, eax
mov byte [esp + esi + 0xb9], al
xchg edi, eax
add esi, 2
inc ecx
cmp esi, ebp
jge 0x4aff9a
cmp ebx, ecx
jbe 0x4affbb
movzx edi, byte [ecx + edx]
cmp esi, 0x100
jae 0x4affaf
xchg edi, eax
mov byte [esp + 0x43], al
xchg edi, eax
xchg edi, eax
shr al, 4
xchg edi, eax
xchg edi, eax
mov byte [esp + esi + 0xb8], al
xchg edi, eax
lea edi, [esi + 1]
cmp edi, 0x100
jb 0x4aff50
jmp 0x4affa3
mov eax, ecx
mov ecx, ebp
jmp 0x4af44e
mov eax, edi
mov ecx, 0x100
call sym.runtime.panicIndex
mov eax, esi
mov ecx, 0x100
call sym.runtime.panicIndex
mov eax, ecx
mov ecx, ebx
call sym.runtime.panicIndex
call sym.runtime.panicIndex
nop
call sym.runtime.morestack_noctxt
jmp sym.internal_zstd._Reader_.readHuff