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

Disassembly:
mov ecx, dword [0x5c5164]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x1c8]
cmp eax, dword [ecx + 8]
jbe 0x4ae85a
sub esp, 0x248
mov ecx, dword [esp + 0x254]
mov eax, dword [esp + 0x25c]
cmp ecx, eax
jle 0x4ad4ce
jbe 0x4ae854
mov ebx, dword [esp + 0x250]
movzx ebp, byte [eax + ebx]
lea edi, [esp + 0xb8]
mov edx, eax
xor eax, eax
call fcn.0045fb00
lea ecx, [edx + 1]
xchg ebp, eax
cmp al, 0x80
xchg ebp, eax
jb 0x4ad115
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 0x4ad0de
add ebp, 0xffffff81
xor esi, esi
jmp 0x4ae7f5
mov eax, dword [0x59be80]
mov ecx, dword [0x59be84]
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 0x4ad19e
lea eax, [0x4e1060]
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 [0x5c5260]
test edx, edx
je 0x4ad186
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 0x4ad49b
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 0x4ad311
mov eax, dword [0x59be80]
mov dword [esp + 0x68], eax
mov ecx, dword [0x59be84]
mov dword [esp + 0x1cc], ecx
cmp dword [0x59be78], eax
jne 0x4ad284
mov edx, dword [0x59be7c]
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 0x4ad284
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x1cc]
jmp 0x4ad2e6
lea eax, [0x4de980]
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 [0x5c5260]
test ecx, ecx
jne 0x4ad2cf
mov ecx, dword [esp + 0x1cc]
jmp 0x4ad2dd
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1cc]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x514c0c]
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.0045fb38
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.00460000
lea edi, [esp + 0x208]
lea esi, [esp + 0x228]
call fcn.00460000
mov ecx, dword [esp + 0x6c]
test ecx, ecx
jne 0x4ad470
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 0x4ad43d
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 0x4ad40a
mov ebx, dword [esp + 8]
mov ecx, dword [esp + 0x60]
mov ebp, dword [esp + 0x1c8]
mov esi, dword [esp + 0x48]
xor eax, eax
jmp 0x4ad5cf
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 [0x59be80]
mov dword [esp + 0x70], ecx
mov edx, dword [0x59be84]
mov dword [esp + 0x1d0], edx
cmp dword [0x59be78], ecx
jne 0x4ad519
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 0x4ad519
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x1d0]
jmp 0x4ad57e
lea eax, [0x4de980]
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 [0x5c5260]
test ecx, ecx
jne 0x4ad567
mov ecx, dword [esp + 0x1d0]
jmp 0x4ad575
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1d0]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x514c0c]
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 0x4ae7d9
mov dword [esp + 0x44], ebx
lea edx, [ebp + esi*4 + 1]
mov dword [esp + 0x204], edx
movzx edi, byte [edx]
jmp 0x4ad711
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 0x4ad9a2
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 0x4ad896
lea ebp, [esi + ebp*4]
cmp ebx, 0x100
jae 0x4ae7b3
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 0x4ae7ac
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 0x4ada0b
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 0x4adcab
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 0x4ad5a9
jmp 0x4adb9f
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 0x4ad5ee
mov edx, dword [esp + 0x218]
cmp dword [esp + 0x21c], edx
jae 0x4ad748
lea ecx, [edx - 1]
mov dword [esp + 0x218], ecx
mov ebx, dword [esp + 0x210]
cmp ebx, ecx
ja 0x4ad6db
jmp 0x4ae7d0
cmp eax, 0xfe
jge 0x4ad78a
lea esi, [ebp + esi*4]
cmp eax, 0x100
jae 0x4ae7c6
movzx esi, byte [esi]
xchg esi, ebx
mov byte [esp + eax + 0xb8], bl
xchg esi, ebx
cmp ebx, ecx
jae 0x4ae7bf
lea ecx, [ebp + ebx*4]
movzx ecx, byte [ecx]
mov byte [esp + eax + 0xb9], cl
lea ecx, [eax + 2]
jmp 0x4ada87
mov eax, dword [esp + 0x208]
mov dword [esp + 0x1c4], eax
mov ecx, dword [esp + 0x218]
mov dword [esp + 0x7c], ecx
lea edx, [0x4db200]
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, [0x4f1646]
mov dword [eax], ecx
lea ecx, [0x5149c8]
cmp dword [0x59be78], ecx
jne 0x4ad807
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 0x4ad807
lea ecx, [0x5149c8]
mov eax, dword [esp + 0x200]
jmp 0x4ad86b
lea eax, [0x4de980]
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, [0x5149c8]
mov dword [eax + 8], ecx
mov ecx, dword [0x5c5260]
test ecx, ecx
jne 0x4ad854
mov ecx, dword [esp + 0x200]
jmp 0x4ad862
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x200]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x514c0c]
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, [0x4db200]
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, [0x4f1646]
mov dword [eax], ecx
lea ecx, [0x5149c8]
cmp dword [0x59be78], ecx
jne 0x4ad913
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 0x4ad913
lea ecx, [0x5149c8]
mov eax, dword [esp + 0x1fc]
jmp 0x4ad977
lea eax, [0x4de980]
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, [0x5149c8]
mov dword [eax + 8], ecx
mov ecx, dword [0x5c5260]
test ecx, ecx
jne 0x4ad960
mov ecx, dword [esp + 0x1fc]
jmp 0x4ad96e
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1fc]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x514c0c]
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 0x4ad686
mov edx, dword [esp + 0x218]
cmp dword [esp + 0x21c], edx
jae 0x4ada42
lea ecx, [edx - 1]
mov dword [esp + 0x218], ecx
mov ebx, dword [esp + 0x210]
cmp ebx, ecx
ja 0x4ad9d5
jmp 0x4ae7a3
cmp edi, 0xfe
jge 0x4ada93
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 0x4ae79e
lea ebp, [ebx + 2]
lea esi, [esi + eax*4]
cmp ebp, 0x100
jae 0x4ae792
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 0x4adcde
mov eax, dword [esp + 0x208]
mov dword [esp + 0x1bc], eax
mov ecx, dword [esp + 0x218]
mov dword [esp + 0x7c], ecx
lea edx, [0x4db200]
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, [0x4f1646]
mov dword [eax], ecx
lea ecx, [0x5149c8]
cmp dword [0x59be78], ecx
jne 0x4adb10
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 0x4adb10
lea ecx, [0x5149c8]
mov eax, dword [esp + 0x1f8]
jmp 0x4adb74
lea eax, [0x4de980]
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, [0x5149c8]
mov dword [eax + 8], ecx
mov ecx, dword [0x5c5260]
test ecx, ecx
jne 0x4adb5d
mov ecx, dword [esp + 0x1f8]
jmp 0x4adb6b
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1f8]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x514c0c]
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, [0x4db200]
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, [0x4f1646]
mov dword [eax], ecx
lea ecx, [0x5149c8]
cmp dword [0x59be78], ecx
jne 0x4adc1c
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 0x4adc1c
lea ecx, [0x5149c8]
mov eax, dword [esp + 0x1f4]
jmp 0x4adc80
lea eax, [0x4de980]
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, [0x5149c8]
mov dword [eax + 8], ecx
mov ecx, dword [0x5c5260]
test ecx, ecx
jne 0x4adc69
mov ecx, dword [esp + 0x1f4]
jmp 0x4adc77
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1f4]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x514c0c]
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.0045fb33
mov ecx, dword [esp + 0x74]
cmp ecx, 0x100
ja 0x4ae788
mov dword [esp + 0x80], edx
xor eax, eax
xor ebx, ebx
jmp 0x4add12
inc eax
mov ecx, esi
cmp eax, ecx
jge 0x4ade4c
movzx ebp, byte [esp + eax + 0xb8]
xchg ebp, eax
cmp al, 0xc
xchg ebp, eax
ja 0x4add56
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 0x4add52
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 0x4add0f
mov esi, ecx
jmp 0x4add0f
lea eax, [0x4db200]
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, [0x4f1c76]
mov dword [eax], ecx
lea ecx, [0x5149c8]
cmp dword [0x59be78], ecx
jne 0x4addba
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 0x4addba
lea ecx, [0x5149c8]
mov eax, dword [esp + 0x1f0]
jmp 0x4ade21
lea eax, [0x4de980]
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, [0x5149c8]
mov dword [eax + 8], ecx
mov ecx, dword [0x5c5260]
test ecx, ecx
jne 0x4ade0a
mov ecx, dword [esp + 0x1f0]
jmp 0x4ade18
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1f0]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x514c0c]
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 0x4ae546
nop
nop
cmp ebx, 0x10000
jb 0x4ade6a
mov ebp, ebx
shr ebp, 0x10
mov eax, 0x10
jmp 0x4ade6e
mov ebp, ebx
xor eax, eax
cmp ebp, 0x100
jb 0x4ade7c
shr ebp, 8
add eax, 8
cmp ebp, 0x100
jae 0x4ae77c
lea esi, [0x4f806c]
movzx ebp, byte [esi + ebp]
add ebp, eax
cmp ebp, 0xb
jg 0x4ae450
test ebp, ebp
jl 0x4ae777
mov eax, ecx
mov ecx, ebp
mov edi, 1
shl edi, cl
mov edx, dword [esp + 0x264]
cmp edx, edi
jl 0x4ae35a
mov edi, 1
shl edi, cl
sub edi, ebx
test edi, edi
je 0x4ae264
nop
cmp edi, 0x10000
jb 0x4adeeb
mov ebx, edi
shr ebx, 0x10
mov ecx, 0x10
mov dword [esp + 0x54], ecx
mov ecx, ebp
jmp 0x4adef5
mov ebx, edi
xor ecx, ecx
mov dword [esp + 0x54], ecx
mov ecx, ebp
cmp ebx, 0x100
jb 0x4adf09
shr ebx, 8
mov edx, dword [esp + 0x54]
add edx, 8
jmp 0x4adf0d
mov edx, dword [esp + 0x54]
cmp ebx, 0x100
jae 0x4ae76b
movzx ebx, byte [esi + ebx]
lea esi, [edx + ebx - 1]
add edx, ebx
test esi, esi
jl 0x4ae766
mov ecx, esi
mov ebx, 1
shl ebx, cl
cmp ecx, 0x20
sbb esi, esi
and esi, ebx
cmp esi, edi
jne 0x4ae16e
cmp eax, 0x100
jge 0x4ae078
mov byte [esp + eax + 0xb8], dl
cmp edx, 0xd
jae 0x4ae75a
inc dword [esp + edx*4 + 0x84]
mov edx, dword [esp + 0x88]
cmp edx, 2
jb 0x4adf82
test edx, 1
jne 0x4adf82
xor ecx, ecx
xor edx, edx
jmp 0x4ae657
lea eax, [0x4db200]
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, [0x4f066f]
mov dword [eax], ecx
lea ecx, [0x5149c8]
cmp dword [0x59be78], ecx
jne 0x4adfe6
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 0x4adfe6
lea ecx, [0x5149c8]
mov eax, dword [esp + 0x1ec]
jmp 0x4ae04d
lea eax, [0x4de980]
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, [0x5149c8]
mov dword [eax + 8], ecx
mov ecx, dword [0x5c5260]
test ecx, ecx
jne 0x4ae036
mov ecx, dword [esp + 0x1ec]
jmp 0x4ae044
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1ec]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x514c0c]
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, [0x4db200]
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, [0x4f1c76]
mov dword [eax], ecx
lea ecx, [0x5149c8]
cmp dword [0x59be78], ecx
jne 0x4ae0dc
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 0x4ae0dc
lea ecx, [0x5149c8]
mov eax, dword [esp + 0x1e8]
jmp 0x4ae143
lea eax, [0x4de980]
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, [0x5149c8]
mov dword [eax + 8], ecx
mov ecx, dword [0x5c5260]
test ecx, ecx
jne 0x4ae12c
mov ecx, dword [esp + 0x1e8]
jmp 0x4ae13a
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1e8]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x514c0c]
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, [0x4db200]
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, [0x4f066f]
mov dword [eax], ecx
lea ecx, [0x5149c8]
cmp dword [0x59be78], ecx
jne 0x4ae1d2
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 0x4ae1d2
lea ecx, [0x5149c8]
mov eax, dword [esp + 0x1e4]
jmp 0x4ae239
lea eax, [0x4de980]
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, [0x5149c8]
mov dword [eax + 8], ecx
mov ecx, dword [0x5c5260]
test ecx, ecx
jne 0x4ae222
mov ecx, dword [esp + 0x1e4]
jmp 0x4ae230
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1e4]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x514c0c]
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, [0x4db200]
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, [0x4f066f]
mov dword [eax], ecx
lea ecx, [0x5149c8]
cmp dword [0x59be78], ecx
jne 0x4ae2c8
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 0x4ae2c8
lea ecx, [0x5149c8]
mov eax, dword [esp + 0x1e0]
jmp 0x4ae32f
lea eax, [0x4de980]
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, [0x5149c8]
mov dword [eax + 8], ecx
mov ecx, dword [0x5c5260]
test ecx, ecx
jne 0x4ae318
mov ecx, dword [esp + 0x1e0]
jmp 0x4ae326
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1e0]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x514c0c]
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, [0x4db200]
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, [0x4f1c8d]
mov dword [eax], ecx
lea ecx, [0x5149c8]
cmp dword [0x59be78], ecx
jne 0x4ae3be
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 0x4ae3be
lea ecx, [0x5149c8]
mov eax, dword [esp + 0x1dc]
jmp 0x4ae425
lea eax, [0x4de980]
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, [0x5149c8]
mov dword [eax + 8], ecx
mov ecx, dword [0x5c5260]
test ecx, ecx
jne 0x4ae40e
mov ecx, dword [esp + 0x1dc]
jmp 0x4ae41c
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1dc]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x514c0c]
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, [0x4db200]
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, [0x4f066f]
mov dword [eax], ecx
lea ecx, [0x5149c8]
cmp dword [0x59be78], ecx
jne 0x4ae4b4
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 0x4ae4b4
lea ecx, [0x5149c8]
mov eax, dword [esp + 0x1d8]
jmp 0x4ae51b
lea eax, [0x4de980]
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, [0x5149c8]
mov dword [eax + 8], ecx
mov ecx, dword [0x5c5260]
test ecx, ecx
jne 0x4ae504
mov ecx, dword [esp + 0x1d8]
jmp 0x4ae512
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1d8]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x514c0c]
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, [0x4db200]
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, [0x4f066f]
mov dword [eax], ecx
lea ecx, [0x5149c8]
cmp dword [0x59be78], ecx
jne 0x4ae5aa
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 0x4ae5aa
lea ecx, [0x5149c8]
mov eax, dword [esp + 0x1d4]
jmp 0x4ae611
lea eax, [0x4de980]
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, [0x5149c8]
mov dword [eax + 8], ecx
mov ecx, dword [0x5c5260]
test ecx, ecx
jne 0x4ae5fa
mov ecx, dword [esp + 0x1d4]
jmp 0x4ae608
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1d4]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x514c0c]
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 0x4ae668
lea ebx, [ecx + 1]
cmp ebx, 0xd
jb 0x4ae63c
jmp 0x4ae74e
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 0x4ae686
inc eax
cmp eax, edx
jge 0x4ae6f3
movzx edi, byte [esp + eax + 0xb8]
xchg edi, eax
test al, al
xchg edi, eax
je 0x4ae685
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 0x4ae742
mov dword [esp + 0x78], ebp
mov ebx, dword [esp + ebp*4 + 0x84]
mov edi, dword [esp + 0x260]
xor ecx, ecx
jmp 0x4ae72e
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 0x4ae685
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 0x4ae6dc
lea ebp, [ecx + ebx]
cmp esi, ebp
ja 0x4ae725
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 0x4ae82a
cmp ebx, ecx
jbe 0x4ae84b
movzx edi, byte [ecx + edx]
cmp esi, 0x100
jae 0x4ae83f
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 0x4ae7e0
jmp 0x4ae833
mov eax, ecx
mov ecx, ebp
jmp 0x4adcde
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