Function at 0x5161a0
Capabilities:
Enumerate pe sections

Disassembly:
mov ecx, dword [0x6dded4]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x5169e5
sub esp, 0x58
mov ecx, dword [esp + 0x64]
mov edx, ecx
sar edx, 0x1f
mov ebx, dword [esp + 0x5c]
mov ebp, dword [ebx]
mov esi, dword [ebx + 4]
add ebp, ecx
mov dword [ebx], ebp
adc edx, esi
mov dword [ebx + 4], edx
mov eax, dword [ebx + 0x48]
lea edx, [eax + ecx]
cmp edx, 0x20
jl 0x51659c
test eax, eax
jle 0x51658d
cmp eax, 0x20
ja 0x5169da
lea edx, [eax - 0x20]
neg edx
mov ebp, edx
neg edx
sar edx, 0x1f
and eax, edx
lea edx, [ebx + eax + 0x28]
cmp ecx, ebp
jge 0x51620c
mov eax, ecx
jmp 0x516210
mov eax, ecx
mov ecx, ebp
mov ebp, dword [esp + 0x60]
cmp ebp, edx
je 0x51623c
mov dword [esp + 0x2c], ecx
mov dword [esp], edx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
call sym.runtime.memmove
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x60]
cmp eax, ecx
jb 0x5169cf
mov edx, dword [esp + 0x68]
sub edx, ecx
mov dword [esp + 0x4c], edx
neg edx
sar edx, 0x1f
and edx, ecx
mov dword [esp + 0x48], edx
mov edi, dword [ebx + 8]
mov dword [esp + 0x24], edi
mov esi, dword [ebx + 0xc]
mov dword [esp + 0x28], esi
movzx esi, byte [ebx + 0x28]
movzx edi, byte [ebx + 0x29]
mov dword [esp + 0x44], edi
shl edi, 8
or esi, edi
mov edi, dword [esp + 0x44]
shr edi, 0x18
movzx edx, byte [ebx + 0x2a]
mov dword [esp + 0x44], edx
shr edx, 0x10
or edx, edi
mov edi, dword [esp + 0x44]
shl edi, 0x10
or edi, esi
movzx esi, byte [ebx + 0x2b]
mov dword [esp + 0x44], esi
shr esi, 8
or esi, edx
mov edx, dword [esp + 0x44]
shl edx, 0x18
or edx, edi
mov dword [esp + 0x44], edx
movzx edi, byte [ebx + 0x2c]
or edi, esi
movzx esi, byte [ebx + 0x2d]
shl esi, 8
or esi, edi
movzx edi, byte [ebx + 0x2e]
shl edi, 0x10
or edi, esi
movzx esi, byte [ebx + 0x2f]
shl esi, 0x18
or esi, edi
mov edi, eax
mov eax, 0x27d4eb4f
mul edx
mov ebx, dword [esp + 0x44]
imul ebx, ebx, 0xc2b2ae3d
add edx, ebx
imul ebx, esi, 0x27d4eb4f
add edx, ebx
sub edi, ecx
mov ebx, dword [esp + 0x48]
add ebx, ebp
mov dword [esp + 0x54], ebx
nop
mov ebp, dword [esp + 0x24]
add ebp, eax
mov esi, dword [esp + 0x28]
adc edx, esi
mov esi, ebp
shr ebp, 1
mov eax, edx
shl edx, 0x1f
or edx, ebp
imul edx, edx, 0x85ebca87
shl esi, 0x1f
shr eax, 1
or eax, esi
mov ecx, eax
mov eax, 0x85ebca87
mov ebp, edx
mul ecx
mov esi, dword [esp + 0x5c]
mov dword [esi + 8], eax
imul eax, ecx, 0x9e3779b1
add edx, eax
add edx, ebp
mov dword [esi + 0xc], edx
mov edx, dword [esi + 0x10]
mov dword [esp + 0x20], edx
mov ebp, dword [esi + 0x14]
movzx eax, byte [esi + 0x30]
movzx ecx, byte [esi + 0x31]
mov dword [esp + 0x44], ecx
shl ecx, 8
or eax, ecx
mov ebx, dword [esp + 0x44]
shr ebx, 0x18
movzx ecx, byte [esi + 0x32]
mov dword [esp + 0x44], ecx
shr ecx, 0x10
or ecx, ebx
mov ebx, dword [esp + 0x44]
shl ebx, 0x10
or ebx, eax
movzx eax, byte [esi + 0x33]
mov dword [esp + 0x44], eax
shr eax, 8
or eax, ecx
mov ecx, edi
mov edi, dword [esp + 0x44]
shl edi, 0x18
or edi, ebx
movzx ebx, byte [esi + 0x34]
or ebx, eax
movzx eax, byte [esi + 0x35]
shl eax, 8
or eax, ebx
movzx ebx, byte [esi + 0x36]
shl ebx, 0x10
or ebx, eax
movzx eax, byte [esi + 0x37]
shl eax, 0x18
or eax, ebx
mov ebx, eax
mov eax, 0x27d4eb4f
mul edi
imul edi, edi, 0xc2b2ae3d
imul ebx, ebx, 0x27d4eb4f
add edx, ebx
add edx, edi
nop
mov ebx, dword [esp + 0x20]
add ebx, eax
adc ebp, edx
mov edx, ebx
shr ebx, 1
mov edi, ebp
shl ebp, 0x1f
or ebx, ebp
imul ebx, ebx, 0x85ebca87
shl edx, 0x1f
shr edi, 1
or edx, edi
mov eax, 0x85ebca87
mov ebp, edx
mul edx
mov dword [esi + 0x10], eax
add edx, ebx
imul ebx, ebp, 0x9e3779b1
add edx, ebx
mov dword [esi + 0x14], edx
mov edx, dword [esi + 0x18]
mov dword [esp + 0x1c], edx
mov ebx, dword [esi + 0x1c]
movzx ebp, byte [esi + 0x38]
movzx edi, byte [esi + 0x39]
mov eax, edi
shl edi, 8
or ebp, edi
shr eax, 0x18
movzx edi, byte [esi + 0x3a]
mov dword [esp + 0x44], edi
shr edi, 0x10
or edi, eax
mov eax, ebx
mov ebx, dword [esp + 0x44]
shl ebx, 0x10
or ebx, ebp
movzx ebp, byte [esi + 0x3b]
mov dword [esp + 0x44], ebp
shr ebp, 8
or ebp, edi
mov edi, dword [esp + 0x44]
shl edi, 0x18
or edi, ebx
movzx ebx, byte [esi + 0x3c]
or ebx, ebp
movzx ebp, byte [esi + 0x3d]
shl ebp, 8
or ebp, ebx
movzx ebx, byte [esi + 0x3e]
shl ebx, 0x10
or ebx, ebp
movzx ebp, byte [esi + 0x3f]
shl ebp, 0x18
or ebp, ebx
mov ebx, eax
mov eax, 0x27d4eb4f
mul edi
imul edi, edi, 0xc2b2ae3d
imul ebp, ebp, 0x27d4eb4f
add edx, ebp
add edx, edi
nop
mov ebp, dword [esp + 0x1c]
add ebp, eax
adc ebx, edx
mov edx, ebp
shr ebp, 1
mov edi, ebx
shl ebx, 0x1f
or ebx, ebp
imul ebx, ebx, 0x85ebca87
shl edx, 0x1f
shr edi, 1
or edi, edx
mov eax, 0x85ebca87
mul edi
mov dword [esi + 0x18], eax
add edx, ebx
imul ebx, edi, 0x9e3779b1
add edx, ebx
mov dword [esi + 0x1c], edx
mov edx, dword [esi + 0x20]
mov dword [esp + 0x18], edx
mov ebx, dword [esi + 0x24]
movzx ebp, byte [esi + 0x40]
movzx edi, byte [esi + 0x41]
mov eax, edi
shl edi, 8
or ebp, edi
shr eax, 0x18
movzx edi, byte [esi + 0x42]
mov dword [esp + 0x44], edi
shr edi, 0x10
or edi, eax
mov eax, ebx
mov ebx, dword [esp + 0x44]
shl ebx, 0x10
or ebx, ebp
movzx ebp, byte [esi + 0x43]
mov dword [esp + 0x44], ebp
shr ebp, 8
or ebp, edi
mov edi, dword [esp + 0x44]
shl edi, 0x18
or edi, ebx
movzx ebx, byte [esi + 0x44]
or ebx, ebp
movzx ebp, byte [esi + 0x45]
shl ebp, 8
or ebp, ebx
movzx ebx, byte [esi + 0x46]
shl ebx, 0x10
or ebx, ebp
movzx ebp, byte [esi + 0x47]
shl ebp, 0x18
or ebp, ebx
mov ebx, eax
mov eax, 0x27d4eb4f
mul edi
imul edi, edi, 0xc2b2ae3d
imul ebp, ebp, 0x27d4eb4f
add edx, ebp
add edx, edi
nop
mov ebp, dword [esp + 0x18]
add eax, ebp
adc ebx, edx
mov edx, eax
shr eax, 1
mov ebp, ebx
shl ebx, 0x1f
or eax, ebx
imul ebx, eax, 0x85ebca87
shl edx, 0x1f
shr ebp, 1
or ebp, edx
mov eax, 0x85ebca87
mul ebp
mov dword [esi + 0x20], eax
add edx, ebx
imul ebx, ebp, 0x9e3779b1
add edx, ebx
mov dword [esi + 0x24], edx
mov dword [esi + 0x48], 0
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x54]
jmp 0x5166e7
mov esi, ebx
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x60]
jmp 0x5166e7
cmp eax, 0x20
ja 0x5165e6
lea edx, [eax - 0x20]
neg edx
mov ebp, edx
neg edx
sar edx, 0x1f
and eax, edx
lea eax, [ebx + eax + 0x28]
cmp ecx, ebp
jge 0x5165bb
mov edx, ecx
jmp 0x5165bf
mov edx, ecx
mov ecx, ebp
mov ebp, dword [esp + 0x60]
cmp ebp, eax
je 0x5165df
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
call sym.runtime.memmove
mov edx, dword [esp + 0x64]
mov ebx, dword [esp + 0x5c]
add dword [ebx + 0x48], edx
add esp, 0x58
ret
mov ecx, 0x20
call sym.runtime.panicSliceB
mov ebx, dword [ecx + 0x20]
mov dword [esp + 0xc], ebx
mov ebp, dword [ecx + 0x24]
mov eax, ebp
mov ebp, dword [esp + 0x40]
add ebp, 0xffffffe0
mov dword [esp + 0x4c], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 0x20
movzx esi, byte [edi + 0x18]
movzx edx, byte [edi + 0x19]
mov dword [esp + 0x44], edx
shl edx, 8
or esi, edx
mov ebx, dword [esp + 0x44]
shr ebx, 0x18
movzx ecx, byte [edi + 0x1a]
mov dword [esp + 0x44], ecx
shr ecx, 0x10
or ecx, ebx
mov ebx, dword [esp + 0x44]
shl ebx, 0x10
or ebx, esi
movzx esi, byte [edi + 0x1b]
mov dword [esp + 0x44], esi
shr esi, 8
or esi, ecx
mov ecx, ebp
mov ebp, dword [esp + 0x44]
shl ebp, 0x18
or ebp, ebx
movzx ebx, byte [edi + 0x1c]
or ebx, esi
movzx esi, byte [edi + 0x1d]
shl esi, 8
or esi, ebx
movzx ebx, byte [edi + 0x1e]
shl ebx, 0x10
or ebx, esi
movzx esi, byte [edi + 0x1f]
shl esi, 0x18
or esi, ebx
mov ebx, eax
mov eax, 0x27d4eb4f
mul ebp
imul ebp, ebp, 0xc2b2ae3d
imul esi, esi, 0x27d4eb4f
add edx, esi
add ebp, edx
lea edx, [ecx + edi]
mov edi, dword [esp + 0x3c]
lea ecx, [edi - 0x20]
nop
mov edi, dword [esp + 0xc]
add edi, eax
adc ebx, ebp
mov ebp, edi
shr edi, 1
mov eax, ebx
shl ebx, 0x1f
or edi, ebx
imul ebx, edi, 0x85ebca87
shl ebp, 0x1f
shr eax, 1
or eax, ebp
mov ebp, eax
mov eax, 0x85ebca87
mov esi, edx
mul ebp
mov edi, dword [esp + 0x5c]
mov dword [edi + 0x20], eax
add ebx, edx
imul ebp, ebp, 0x9e3779b1
add ebx, ebp
mov dword [edi + 0x24], ebx
mov ebx, dword [esp + 0x4c]
mov edx, esi
mov eax, ebx
mov esi, edi
mov dword [esp + 0x3c], ecx
cmp ecx, 0x20
jl 0x516981
mov dword [esp + 0x40], eax
mov dword [esp + 0x50], edx
mov ebx, dword [esi + 8]
mov ebp, dword [esi + 0xc]
lea edi, [ecx - 8]
mov dword [esp + 0x38], edi
movzx eax, byte [edx]
movzx ecx, byte [edx + 1]
mov dword [esp + 0x44], ecx
shl ecx, 8
or eax, ecx
mov edi, dword [esp + 0x44]
shr edi, 0x18
movzx ecx, byte [edx + 2]
mov dword [esp + 0x44], ecx
shr ecx, 0x10
or ecx, edi
mov edi, dword [esp + 0x44]
shl edi, 0x10
or edi, eax
movzx eax, byte [edx + 3]
mov dword [esp + 0x44], eax
shr eax, 8
or eax, ecx
mov ecx, esi
mov esi, dword [esp + 0x44]
shl esi, 0x18
or esi, edi
movzx edi, byte [edx + 4]
or edi, eax
movzx eax, byte [edx + 5]
shl eax, 8
or eax, edi
movzx edi, byte [edx + 6]
shl edi, 0x10
or edi, eax
movzx eax, byte [edx + 7]
shl eax, 0x18
or eax, edi
mov edi, eax
mov eax, 0x27d4eb4f
mul esi
imul esi, esi, 0xc2b2ae3d
imul edi, edi, 0x27d4eb4f
add edx, edi
add edx, esi
nop
add ebx, eax
adc ebp, edx
mov edx, ebx
shr ebx, 1
mov esi, ebp
shl ebp, 0x1f
or ebp, ebx
imul ebx, ebp, 0x85ebca87
shl edx, 0x1f
shr esi, 1
or esi, edx
mov eax, 0x85ebca87
mul esi
mov dword [ecx + 8], eax
add edx, ebx
imul ebx, esi, 0x9e3779b1
add edx, ebx
mov dword [ecx + 0xc], edx
mov edx, dword [esp + 0x38]
cmp edx, 7
jbe 0x5169c3
mov edx, dword [ecx + 0x10]
mov dword [esp + 0x14], edx
mov ebx, dword [ecx + 0x14]
mov ebp, dword [esp + 0x3c]
lea esi, [ebp - 0x10]
mov dword [esp + 0x34], esi
mov edi, dword [esp + 0x50]
movzx eax, byte [edi + 8]
movzx ebp, byte [edi + 9]
mov dword [esp + 0x44], ebp
shl ebp, 8
or eax, ebp
mov ebp, dword [esp + 0x44]
shr ebp, 0x18
movzx esi, byte [edi + 0xa]
mov dword [esp + 0x44], esi
shr esi, 0x10
or esi, ebp
mov ebp, dword [esp + 0x44]
shl ebp, 0x10
or ebp, eax
movzx eax, byte [edi + 0xb]
mov dword [esp + 0x44], eax
shr eax, 8
or eax, esi
mov esi, dword [esp + 0x44]
shl esi, 0x18
or esi, ebp
movzx ebp, byte [edi + 0xc]
or ebp, eax
movzx eax, byte [edi + 0xd]
shl eax, 8
or eax, ebp
movzx ebp, byte [edi + 0xe]
shl ebp, 0x10
or ebp, eax
movzx eax, byte [edi + 0xf]
shl eax, 0x18
or eax, ebp
mov ebp, eax
mov eax, 0x27d4eb4f
mul esi
imul esi, esi, 0xc2b2ae3d
imul ebp, ebp, 0x27d4eb4f
add edx, ebp
add edx, esi
nop
mov ebp, dword [esp + 0x14]
add ebp, eax
adc edx, ebx
mov ebx, ebp
shr ebp, 1
mov esi, edx
shl edx, 0x1f
or ebp, edx
imul edx, ebp, 0x85ebca87
shl ebx, 0x1f
shr esi, 1
or ebx, esi
mov eax, 0x85ebca87
mov ebp, edx
mul ebx
mov dword [ecx + 0x10], eax
add edx, ebp
imul ebx, ebx, 0x9e3779b1
add edx, ebx
mov dword [ecx + 0x14], edx
mov edx, dword [esp + 0x34]
cmp edx, 7
jbe 0x5169b7
mov edx, dword [ecx + 0x18]
mov dword [esp + 0x10], edx
mov ebx, dword [ecx + 0x1c]
mov ebp, dword [esp + 0x3c]
lea esi, [ebp - 0x18]
mov dword [esp + 0x30], esi
movzx eax, byte [edi + 0x10]
movzx ebp, byte [edi + 0x11]
mov dword [esp + 0x44], ebp
shl ebp, 8
or eax, ebp
mov ebp, dword [esp + 0x44]
shr ebp, 0x18
movzx esi, byte [edi + 0x12]
mov dword [esp + 0x44], esi
shr esi, 0x10
or esi, ebp
mov ebp, dword [esp + 0x44]
shl ebp, 0x10
or ebp, eax
movzx eax, byte [edi + 0x13]
mov dword [esp + 0x44], eax
shr eax, 8
or eax, esi
mov esi, dword [esp + 0x44]
shl esi, 0x18
or esi, ebp
movzx ebp, byte [edi + 0x14]
or ebp, eax
movzx eax, byte [edi + 0x15]
shl eax, 8
or eax, ebp
movzx ebp, byte [edi + 0x16]
shl ebp, 0x10
or ebp, eax
movzx eax, byte [edi + 0x17]
shl eax, 0x18
or eax, ebp
mov ebp, eax
mov eax, 0x27d4eb4f
mul esi
imul esi, esi, 0xc2b2ae3d
imul ebp, ebp, 0x27d4eb4f
add edx, ebp
add edx, esi
nop
mov ebp, dword [esp + 0x10]
add ebp, eax
adc ebx, edx
mov edx, ebp
shr ebp, 1
mov esi, ebx
shl ebx, 0x1f
or ebx, ebp
imul ebx, ebx, 0x85ebca87
shl edx, 0x1f
shr esi, 1
or esi, edx
mov eax, 0x85ebca87
mul esi
mov dword [ecx + 0x18], eax
add edx, ebx
imul ebx, esi, 0x9e3779b1
add edx, ebx
mov dword [ecx + 0x1c], edx
mov edx, dword [esp + 0x30]
cmp edx, 7
ja 0x5165f0
jmp 0x5169ab
test ecx, ecx
je 0x5169a7
lea eax, [esi + 0x28]
cmp edx, eax
je 0x5169a4
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call sym.runtime.memmove
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x5c]
mov dword [esi + 0x48], ecx
add esp, 0x58
ret
mov eax, 7
mov ecx, edx
call sym.runtime.panicIndex
mov eax, 7
mov ecx, edx
call sym.runtime.panicIndex
mov eax, 7
mov ecx, edx
call sym.runtime.panicIndex
mov edx, eax
mov eax, ecx
mov ecx, edx
call sym.runtime.panicSliceB
mov ecx, 0x20
call sym.runtime.panicSliceB
nop
call sym.runtime.morestack_noctxt
jmp sym.internal_zstd._xxhash64_.update