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

Disassembly:
mov ecx, dword [0x6dded4]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x1c8]
cmp eax, dword [ecx + 8]
jbe 0x513a4a
sub esp, 0x248
mov ecx, dword [esp + 0x254]
mov eax, dword [esp + 0x25c]
cmp ecx, eax
jle 0x5126be
jbe 0x513a44
mov ebx, dword [esp + 0x250]
movzx ebp, byte [eax + ebx]
lea edi, [esp + 0xb8]
mov edx, eax
xor eax, eax
call fcn.00460b70
lea ecx, [edx + 1]
xchg ebp, eax
cmp al, 0x80
xchg ebp, eax
jb 0x512305
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 0x5122ce
add ebp, 0xffffff81
xor esi, esi
jmp 0x5139e5
mov eax, dword [0x6881a0]
mov ecx, dword [0x6881a4]
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 0x51238e
lea eax, [0x55ff80]
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 [0x6ddfe0]
test edx, edx
je 0x512376
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 0x51268b
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 0x512501
mov eax, dword [0x6881a0]
mov dword [esp + 0x68], eax
mov ecx, dword [0x6881a4]
mov dword [esp + 0x1cc], ecx
cmp dword [0x688198], eax
jne 0x512474
mov edx, dword [0x68819c]
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 0x512474
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x1cc]
jmp 0x5124d6
lea eax, [0x55bb60]
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 [0x6ddfe0]
test ecx, ecx
jne 0x5124bf
mov ecx, dword [esp + 0x1cc]
jmp 0x5124cd
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1cc]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x5b7a28]
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.00460ba8
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.00461070
lea edi, [esp + 0x208]
lea esi, [esp + 0x228]
call fcn.00461070
mov ecx, dword [esp + 0x6c]
test ecx, ecx
jne 0x512660
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 0x51262d
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 0x5125fa
mov ebx, dword [esp + 8]
mov ecx, dword [esp + 0x60]
mov ebp, dword [esp + 0x1c8]
mov esi, dword [esp + 0x48]
xor eax, eax
jmp 0x5127bf
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 [0x6881a0]
mov dword [esp + 0x70], ecx
mov edx, dword [0x6881a4]
mov dword [esp + 0x1d0], edx
cmp dword [0x688198], ecx
jne 0x512709
mov eax, dword [0x68819c]
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 0x512709
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x1d0]
jmp 0x51276e
lea eax, [0x55bb60]
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 [0x6ddfe0]
test ecx, ecx
jne 0x512757
mov ecx, dword [esp + 0x1d0]
jmp 0x512765
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1d0]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x5b7a28]
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 0x5139c9
mov dword [esp + 0x44], ebx
lea edx, [ebp + esi*4 + 1]
mov dword [esp + 0x204], edx
movzx edi, byte [edx]
jmp 0x512901
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 0x512b92
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 0x512a86
lea ebp, [esi + ebp*4]
cmp ebx, 0x100
jae 0x5139a3
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 0x51399c
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 0x512bfb
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 0x512e9b
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 0x512799
jmp 0x512d8f
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 0x5127de
mov edx, dword [esp + 0x218]
cmp dword [esp + 0x21c], edx
jae 0x512938
lea ecx, [edx - 1]
mov dword [esp + 0x218], ecx
mov ebx, dword [esp + 0x210]
cmp ebx, ecx
ja 0x5128cb
jmp 0x5139c0
cmp eax, 0xfe
jge 0x51297a
lea esi, [ebp + esi*4]
cmp eax, 0x100
jae 0x5139b6
movzx esi, byte [esi]
xchg esi, ebx
mov byte [esp + eax + 0xb8], bl
xchg esi, ebx
cmp ebx, ecx
jae 0x5139af
lea ecx, [ebp + ebx*4]
movzx ecx, byte [ecx]
mov byte [esp + eax + 0xb9], cl
lea ecx, [eax + 2]
jmp 0x512c77
mov eax, dword [esp + 0x208]
mov dword [esp + 0x1c4], eax
mov ecx, dword [esp + 0x218]
mov dword [esp + 0x7c], ecx
lea edx, [0x555b00]
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, [0x58707c]
mov dword [eax], ecx
lea ecx, [0x5b76e0]
cmp dword [0x688198], ecx
jne 0x5129f7
mov edx, dword [0x68819c]
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 0x5129f7
lea ecx, [0x5b76e0]
mov eax, dword [esp + 0x200]
jmp 0x512a5b
lea eax, [0x55bb60]
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, [0x5b76e0]
mov dword [eax + 8], ecx
mov ecx, dword [0x6ddfe0]
test ecx, ecx
jne 0x512a44
mov ecx, dword [esp + 0x200]
jmp 0x512a52
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x200]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x5b7a28]
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, [0x555b00]
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, [0x58707c]
mov dword [eax], ecx
lea ecx, [0x5b76e0]
cmp dword [0x688198], ecx
jne 0x512b03
mov edx, dword [0x68819c]
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 0x512b03
lea ecx, [0x5b76e0]
mov eax, dword [esp + 0x1fc]
jmp 0x512b67
lea eax, [0x55bb60]
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, [0x5b76e0]
mov dword [eax + 8], ecx
mov ecx, dword [0x6ddfe0]
test ecx, ecx
jne 0x512b50
mov ecx, dword [esp + 0x1fc]
jmp 0x512b5e
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1fc]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x5b7a28]
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 0x512876
mov edx, dword [esp + 0x218]
cmp dword [esp + 0x21c], edx
jae 0x512c32
lea ecx, [edx - 1]
mov dword [esp + 0x218], ecx
mov ebx, dword [esp + 0x210]
cmp ebx, ecx
ja 0x512bc5
jmp 0x513993
cmp edi, 0xfe
jge 0x512c83
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 0x51398e
lea ebp, [ebx + 2]
lea esi, [esi + eax*4]
cmp ebp, 0x100
jae 0x513982
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 0x512ece
mov eax, dword [esp + 0x208]
mov dword [esp + 0x1bc], eax
mov ecx, dword [esp + 0x218]
mov dword [esp + 0x7c], ecx
lea edx, [0x555b00]
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, [0x58707c]
mov dword [eax], ecx
lea ecx, [0x5b76e0]
cmp dword [0x688198], ecx
jne 0x512d00
mov edx, dword [0x68819c]
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 0x512d00
lea ecx, [0x5b76e0]
mov eax, dword [esp + 0x1f8]
jmp 0x512d64
lea eax, [0x55bb60]
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, [0x5b76e0]
mov dword [eax + 8], ecx
mov ecx, dword [0x6ddfe0]
test ecx, ecx
jne 0x512d4d
mov ecx, dword [esp + 0x1f8]
jmp 0x512d5b
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1f8]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x5b7a28]
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, [0x555b00]
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, [0x58707c]
mov dword [eax], ecx
lea ecx, [0x5b76e0]
cmp dword [0x688198], ecx
jne 0x512e0c
mov edx, dword [0x68819c]
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 0x512e0c
lea ecx, [0x5b76e0]
mov eax, dword [esp + 0x1f4]
jmp 0x512e70
lea eax, [0x55bb60]
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, [0x5b76e0]
mov dword [eax + 8], ecx
mov ecx, dword [0x6ddfe0]
test ecx, ecx
jne 0x512e59
mov ecx, dword [esp + 0x1f4]
jmp 0x512e67
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1f4]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x5b7a28]
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.00460ba3
mov ecx, dword [esp + 0x74]
cmp ecx, 0x100
ja 0x513978
mov dword [esp + 0x80], edx
xor eax, eax
xor ebx, ebx
jmp 0x512f02
inc eax
mov ecx, esi
cmp eax, ecx
jge 0x51303c
movzx ebp, byte [esp + eax + 0xb8]
xchg ebp, eax
cmp al, 0xc
xchg ebp, eax
ja 0x512f46
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 0x512f42
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 0x512eff
mov esi, ecx
jmp 0x512eff
lea eax, [0x555b00]
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, [0x5877d7]
mov dword [eax], ecx
lea ecx, [0x5b76e0]
cmp dword [0x688198], ecx
jne 0x512faa
mov edx, dword [0x68819c]
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 0x512faa
lea ecx, [0x5b76e0]
mov eax, dword [esp + 0x1f0]
jmp 0x513011
lea eax, [0x55bb60]
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, [0x5b76e0]
mov dword [eax + 8], ecx
mov ecx, dword [0x6ddfe0]
test ecx, ecx
jne 0x512ffa
mov ecx, dword [esp + 0x1f0]
jmp 0x513008
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1f0]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x5b7a28]
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 0x513736
nop
nop
cmp ebx, 0x10000
jb 0x51305a
mov ebp, ebx
shr ebp, 0x10
mov eax, 0x10
jmp 0x51305e
mov ebp, ebx
xor eax, eax
cmp ebp, 0x100
jb 0x51306c
shr ebp, 8
add eax, 8
cmp ebp, 0x100
jae 0x51396c
lea esi, [0x58ec51]
movzx ebp, byte [esi + ebp]
add ebp, eax
cmp ebp, 0xb
jg 0x513640
test ebp, ebp
jl 0x513967
mov eax, ecx
mov ecx, ebp
mov edi, 1
shl edi, cl
mov edx, dword [esp + 0x264]
cmp edx, edi
jl 0x51354a
mov edi, 1
shl edi, cl
sub edi, ebx
test edi, edi
je 0x513454
nop
cmp edi, 0x10000
jb 0x5130db
mov ebx, edi
shr ebx, 0x10
mov ecx, 0x10
mov dword [esp + 0x54], ecx
mov ecx, ebp
jmp 0x5130e5
mov ebx, edi
xor ecx, ecx
mov dword [esp + 0x54], ecx
mov ecx, ebp
cmp ebx, 0x100
jb 0x5130f9
shr ebx, 8
mov edx, dword [esp + 0x54]
add edx, 8
jmp 0x5130fd
mov edx, dword [esp + 0x54]
cmp ebx, 0x100
jae 0x51395b
movzx ebx, byte [esi + ebx]
lea esi, [edx + ebx - 1]
add edx, ebx
test esi, esi
jl 0x513956
mov ecx, esi
mov ebx, 1
shl ebx, cl
cmp ecx, 0x20
sbb esi, esi
and esi, ebx
cmp esi, edi
jne 0x51335e
cmp eax, 0x100
jge 0x513268
mov byte [esp + eax + 0xb8], dl
cmp edx, 0xd
jae 0x51394a
inc dword [esp + edx*4 + 0x84]
mov edx, dword [esp + 0x88]
cmp edx, 2
jb 0x513172
test edx, 1
jne 0x513172
xor ecx, ecx
xor edx, edx
jmp 0x513847
lea eax, [0x555b00]
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, [0x585ba5]
mov dword [eax], ecx
lea ecx, [0x5b76e0]
cmp dword [0x688198], ecx
jne 0x5131d6
mov edx, dword [0x68819c]
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 0x5131d6
lea ecx, [0x5b76e0]
mov eax, dword [esp + 0x1ec]
jmp 0x51323d
lea eax, [0x55bb60]
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, [0x5b76e0]
mov dword [eax + 8], ecx
mov ecx, dword [0x6ddfe0]
test ecx, ecx
jne 0x513226
mov ecx, dword [esp + 0x1ec]
jmp 0x513234
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1ec]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x5b7a28]
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, [0x555b00]
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, [0x5877d7]
mov dword [eax], ecx
lea ecx, [0x5b76e0]
cmp dword [0x688198], ecx
jne 0x5132cc
mov edx, dword [0x68819c]
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 0x5132cc
lea ecx, [0x5b76e0]
mov eax, dword [esp + 0x1e8]
jmp 0x513333
lea eax, [0x55bb60]
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, [0x5b76e0]
mov dword [eax + 8], ecx
mov ecx, dword [0x6ddfe0]
test ecx, ecx
jne 0x51331c
mov ecx, dword [esp + 0x1e8]
jmp 0x51332a
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1e8]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x5b7a28]
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, [0x555b00]
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, [0x585ba5]
mov dword [eax], ecx
lea ecx, [0x5b76e0]
cmp dword [0x688198], ecx
jne 0x5133c2
mov edx, dword [0x68819c]
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 0x5133c2
lea ecx, [0x5b76e0]
mov eax, dword [esp + 0x1e4]
jmp 0x513429
lea eax, [0x55bb60]
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, [0x5b76e0]
mov dword [eax + 8], ecx
mov ecx, dword [0x6ddfe0]
test ecx, ecx
jne 0x513412
mov ecx, dword [esp + 0x1e4]
jmp 0x513420
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1e4]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x5b7a28]
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, [0x555b00]
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, [0x585ba5]
mov dword [eax], ecx
lea ecx, [0x5b76e0]
cmp dword [0x688198], ecx
jne 0x5134b8
mov edx, dword [0x68819c]
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 0x5134b8
lea ecx, [0x5b76e0]
mov eax, dword [esp + 0x1e0]
jmp 0x51351f
lea eax, [0x55bb60]
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, [0x5b76e0]
mov dword [eax + 8], ecx
mov ecx, dword [0x6ddfe0]
test ecx, ecx
jne 0x513508
mov ecx, dword [esp + 0x1e0]
jmp 0x513516
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1e0]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x5b7a28]
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, [0x555b00]
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, [0x5877ee]
mov dword [eax], ecx
lea ecx, [0x5b76e0]
cmp dword [0x688198], ecx
jne 0x5135ae
mov edx, dword [0x68819c]
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 0x5135ae
lea ecx, [0x5b76e0]
mov eax, dword [esp + 0x1dc]
jmp 0x513615
lea eax, [0x55bb60]
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, [0x5b76e0]
mov dword [eax + 8], ecx
mov ecx, dword [0x6ddfe0]
test ecx, ecx
jne 0x5135fe
mov ecx, dword [esp + 0x1dc]
jmp 0x51360c
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1dc]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x5b7a28]
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, [0x555b00]
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, [0x585ba5]
mov dword [eax], ecx
lea ecx, [0x5b76e0]
cmp dword [0x688198], ecx
jne 0x5136a4
mov edx, dword [0x68819c]
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 0x5136a4
lea ecx, [0x5b76e0]
mov eax, dword [esp + 0x1d8]
jmp 0x51370b
lea eax, [0x55bb60]
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, [0x5b76e0]
mov dword [eax + 8], ecx
mov ecx, dword [0x6ddfe0]
test ecx, ecx
jne 0x5136f4
mov ecx, dword [esp + 0x1d8]
jmp 0x513702
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1d8]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x5b7a28]
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, [0x555b00]
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, [0x585ba5]
mov dword [eax], ecx
lea ecx, [0x5b76e0]
cmp dword [0x688198], ecx
jne 0x51379a
mov edx, dword [0x68819c]
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 0x51379a
lea ecx, [0x5b76e0]
mov eax, dword [esp + 0x1d4]
jmp 0x513801
lea eax, [0x55bb60]
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, [0x5b76e0]
mov dword [eax + 8], ecx
mov ecx, dword [0x6ddfe0]
test ecx, ecx
jne 0x5137ea
mov ecx, dword [esp + 0x1d4]
jmp 0x5137f8
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x1d4]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x5b7a28]
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 0x513858
lea ebx, [ecx + 1]
cmp ebx, 0xd
jb 0x51382c
jmp 0x51393e
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 0x513876
inc eax
cmp eax, edx
jge 0x5138e3
movzx edi, byte [esp + eax + 0xb8]
xchg edi, eax
test al, al
xchg edi, eax
je 0x513875
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 0x513932
mov dword [esp + 0x78], ebp
mov ebx, dword [esp + ebp*4 + 0x84]
mov edi, dword [esp + 0x260]
xor ecx, ecx
jmp 0x51391e
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 0x513875
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 0x5138cc
lea ebp, [ecx + ebx]
cmp esi, ebp
ja 0x513915
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 0x513a1a
cmp ebx, ecx
jbe 0x513a3b
movzx edi, byte [ecx + edx]
cmp esi, 0x100
jae 0x513a2f
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 0x5139d0
jmp 0x513a23
mov eax, ecx
mov ecx, ebp
jmp 0x512ece
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